Materials MarketPlace HPC网关应用。
项目描述
MarketPlace HPC网关应用
通过MarketPlace代理使用SDK与HPC交互
本存储库提供SDK,用于使用或集成HPC网关应用至其他MarketPlace应用。
首先,使用以下命令创建一个hpc
实例:
python
from marketplace_hpc import HpcGatewayApp
hpc = HpcGatewayApp(
client_id=<app_id>, # This is the HPC gateway app.
access_token=<your_access_token>,
)
以下功能受支持,可以使用SDK调用。
- 检查系统可用性:
hpc.heartbeat()
- 创建新的计算:
hpc.new_job()
,资源id将用于在远程工作目录中列出文件、上传/下载/删除文件以及启动/删除作业。 - 上传文件:
hpc.upload_file(resourceid=<resourceid>, source_path=<file_local_path>
). - 下载文件:
hpc.download_file(resourceid=<resourceid>, filename=<filename>
). - 删除文件:
hpc.delete_file(resourceid=resourceid, filename=<filename>)
- 列出作业(仅限CSCS部署):
hpc.list_jobs()
。 - 启动作业:
hpc.run_job(resourceid=<resourceid>)
- 删除作业:
hpc.delete_job(resourceid=resourceid)
示例可在此找到: https://github.com/materials-marketplace/hpc-sdk/blob/main/hpc_api.ipynb
Materials Cloud (CSCS) 部署
相应的 HPC-Gateway 应用程序是部署在生产服务器上的 https://www.materials-marketplace.eu/app/hpc-app(ID:5fd66c68-50e9-474a-b55d-148777ae3efd
),它使用了由EPFL提供的Materials Cloud CSCS资源。
由于它使用Materials Cloud CSCS资源部署,因此仅用于测试目的。想要使用它的MarketPlace用户需要联系Jusong Yu @unkpcz(jusong.yu@epfl.ch),以便将您的MarketPlace账户添加到白名单,然后通过以下方式注册您的账户
curl -X POST \
-H "Authorization:Bearer <put_your_token_here>" \
'https://mp-hpc.herokuapp.com/user'
IWM 部署
相应的 HPC-Gateway 应用程序是部署在测试服务器上的 HPC网关(代理服务器)(ID:dc67d85e-7945-49fa-bf85-3159a8358f85
),因为需要RPC代理服务器。
开发和本地运行以进行测试
- 创建一个虚拟环境,激活它并安装依赖项。
pip install -U ".[dev]"
- 运行
python app.py
以启动开发服务器。 - 导航到 http://localhost:5005/。如果更改了任何源文件,应用程序将自动重新加载。
将应用程序注册到MarketPlace
https://materials-marketplace.readthedocs.io/en/latest/apps/registration.html
如何将应用程序部署到Heroku(针对Materials Cloud部署)
在Heroku仪表板中设置所有ENV变量(https://devcenter.heroku.com/articles/config-vars)。检查cscs.env.template
以获取所有需要的变量。
安装Heroku CLI 下载并安装Heroku CLI。
如果您还没有,请登录到您的Heroku账户并按照提示创建一个新的SSH公钥。
$ heroku login --interactive
克隆存储库 使用Git将mp-hpc的源代码克隆到您的本地机器。
$ heroku git:clone -a mp-hpc
$ cd mp-hpc
或者在存储库中添加heroku远程存储库以推送
$ git remote add heroku https://git.heroku.com/mp-hpc.git
部署您的更改 对您刚刚克隆的代码进行一些更改,并使用Git将其部署到Heroku。
$ git add .
$ git commit -am "make it better"
$ git push heroku master
如何在IWM HPC上部署基础设施和运行hpc-app
Firecrest 部署
MarketPlace的firecrest服务器上的firecrest需要启动。转到docker-compose up -d
。MarketPlace HPC上需要的firecrest部署更改可以在https://github.com/unkcpz/firecrest/pull/1中找到
HPC-GW 应用程序和rpc-broker 服务器
[.deploy/docker-compose.yml] 然后需要启动hpc-gateway-app以与firecrest通信。由于hpc-app处于私有内部网络中,我们使用MarketPlace代理与公共网络通信。转到hpc-app存储库并运行python app.py
(WIP:使用docker-compose启动,因此不需要依赖项)。这将启动hpc-app和rpc-broker
(对于在公共网络上可访问的hpc-app,应该是可选的)。
对于维护者
发布是为了SDK,而不是部署。对于部署,始终克隆存储库,并使用docker-compose将其部署到系统。
要创建新的SDK发布,请克隆存储库,使用pip install '.[dev]'
安装开发依赖项,然后执行bumpver update
。这将
- 创建带有提升版本的标记版本并将其推送到存储库。
- 触发GitHub actions工作流程以创建GitHub发布。
附加说明
- 使用
--dry
选项预览发布更改。 - 发布标签(例如 a/b/rc)由上一个发布版本决定。使用
--tag
选项来切换发布标签。
MIT 许可证
版权所有(c)2021 吴俊松(洛桑联邦理工学院)
版权所有。
特此许可,任何获得此软件及其相关文档副本(“软件”)的人,可以不受限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许获得该软件的人进行上述操作,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和无侵权性的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论基于合同、侵权或其他原因,是否因软件或其使用或其他方式而产生。
致谢
本工作由瑞士国家科学基金会资助的 MARVEL 国家研究中心能力建设项目 支持,以及由 地平线2020 项目资助的 MarketPlace 项目(H2020-NMBP-25-2017 号项目,资助号 760173)。
项目详情
下载文件
下载适合您平台文件的文件。如果您不确定选择哪一个,请了解更多关于 安装包 的信息。
源分发
构建分发
marketplace_hpc-2.0.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 96ea82e3a92c1a6fe9901ddc8c3265ad4baf26bfc01f837e2773383f820f0f7a |
|
MD5 | 28bcec810d1022a8a510a6e4234c9ecb |
|
BLAKE2b-256 | 9bcadd83a3c0b5a010135508a1003a586371af36c0708431dc031d158812334d |
marketplace_hpc-2.0.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a4b2d6262fbca9ee194dbeaf0f53a5cda75dc88473b2999925a9573f9ce35d52 |
|
MD5 | 799f0616f4d3da1c3913e935b96549e6 |
|
BLAKE2b-256 | 45889d654229f99b194340ca8b2c345bcaa5523824e42cc6bc81a95aa73fccaa |