Skip to content

WorkFlow

Li Jiang edited this page Mar 29, 2017 · 5 revisions

Main Work Flow

work flow main

流程图 修改

eHPC API 是一套API接口,方便用户通过网站或本地程度,通过REST API 来直接访问 HPC 的资源。

目前 eHPC API 采用 NERSC-NEWT 的基本API 框架

用户可以通过调用这些API 来完成对HPC 资源的访问。

经过考虑,推荐将 eHPC API Server 部署在HPC 集群环境内,这样更方便 eHPC API Server 进行对集群的管理。

核心功能:

认证 Auth

通过调用Auth api , 用户可以进行系统的登录,通过用户名和密码认证通过后,用户可以获得认证的Token , 通过Token 来进行其他API 接口的安全访问。

详细文档

文件 File

通过File api , 用户可以进行小文件的上传、下载;方便用户进行在线的编译、测试、作业提交的进行。

详细文档

这个模块目前尚还有些问题,待完善

任务 Job

详细文档

通过 Job Api , 可以进行 命令的执行(api/command) , 计算任务的提交(api/job)等。

通过(api/command) , 其实就已经可以进行几乎所有对 hpc 环境的操作。

而通过(api/job),可以屏蔽不同HPC集群的调度系统的差异来进行作业的提交和管理。

示意使用 eHPC api 来进行一个教育平台的编译执行流程

1, 用户登录系统

调用 API/AUTH 进行登录认证

curl -X POST -D cookie.txt -d "username=xxx&password=xxx" http://hpc-api-server/api/auth

2, 用户编辑好或上传源码文件

调用 API/FILE 进行文件的上传或创建

curl -T ../main.c http://hpc-api-server/api/file/workdir/main.c

3, 编译文件

直接执行简单的编译命令

curl -X POST -d "command=mpicc main.c -o a.out" -b cookie.txt http://hpc-api-server/api/command/localhost

对于较为复杂的编译过程,建议先创建Makefile 通过 api/file 上传上来, 然后再用 api/command 执行 ‘make’ 命令

4, 提交计算任务

根据用户在前端的设置, 先生成提交作业的脚本,然后通过 api/file 上传上来, 然后调用 api/job 来进行任务的提交

curl -X POST -d "jobscript=date" -b cookie.txt http://hpc-api-server/api/job/localhost/

具体的API 的用法见各个版本的说明