跳转到主要内容

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需要启动。转到服务器的/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。这将

  1. 创建带有提升版本的标记版本并将其推送到存储库。
  2. 触发GitHub actions工作流程以创建GitHub发布。

附加说明

  • 使用--dry选项预览发布更改。
  • 发布标签(例如 a/b/rc)由上一个发布版本决定。使用 --tag 选项来切换发布标签。

MIT 许可证

版权所有(c)2021 吴俊松(洛桑联邦理工学院)

版权所有。

特此许可,任何获得此软件及其相关文档副本(“软件”)的人,可以不受限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许获得该软件的人进行上述操作,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和无侵权性的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论基于合同、侵权或其他原因,是否因软件或其使用或其他方式而产生。

致谢

本工作由瑞士国家科学基金会资助的 MARVEL 国家研究中心能力建设项目 支持,以及由 地平线2020 项目资助的 MarketPlace 项目(H2020-NMBP-25-2017 号项目,资助号 760173)。

MARVEL MarketPlace

项目详情


下载文件

下载适合您平台文件的文件。如果您不确定选择哪一个,请了解更多关于 安装包 的信息。

源分发

marketplace_hpc-2.0.0.tar.gz (16.9 kB 查看哈希值

上传时间

构建分发

marketplace_hpc-2.0.0-py3-none-any.whl (18.2 kB 查看哈希值

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面