一个用于与FirecREST交互的简单异步工作流引擎。
项目描述
fireflow
一个用于与FirecREST交互的简单异步工作流引擎。
工作流引擎使用pyfirecrest来与REST API交互。
还可以查看https://github.com/eth-cscs/firecrest的演示服务器。
用法
安装软件包后,将提供fireflow命令。
然后您可以从YAML文件创建工作流数据库,例如example_setup.yml
clients:
  - label: test-client
    client_url: "https://:8000/"
    client_id: "firecrest-sample"
    client_secret: "b391e177-fa50-4987-beaf-e6d33ca93571"
    token_uri: "https://:8080/auth/realms/kcrealm/protocol/openid-connect/token"
    machine_name: "cluster"
    work_dir: "/home/service-account-firecrest-sample"
    small_file_size_mb: 5
codes:
  - label: test-code1
    client_label: test-client
    script: |
      #!/bin/bash
      #SBATCH --job-name={{ calc.uuid }}
      mkdir -p output
      echo '{{ calc.parameters.echo_string }}' > output.txt
calcjobs:
  - label: test-calcjob1
    code_label: test-code1
    parameters:
      echo_string: "Hello world!"
    download_globs:
    - output.txt
  - label: test-calcjob2
    code_label: test-code1
    parameters:
      echo_string: "Hello world 2!"
    download_globs:
    - output.txt
然后运行fireflow init -a example_setup.yaml,这将创建一个位于.fireflow_project文件夹中的数据库。
您可以使用以下命令列出所有calcjobs
$ fireflow calcjob tree
Calcjobs 1-2 of 2
└── 1 - test-client
    └── 1 - test-code1
        ├── 1 - test-calcjob1 ▶
        └── 2 - test-calcjob2 ▶
然后您可以运行所有calcjobs
$ fireflow run
2023-02-07 20:10:58:fireflow.process:REPORT: PK-1: Uploading files to remote
2023-02-07 20:11:00:fireflow.process:REPORT: PK-2: Uploading files to remote
2023-02-07 20:11:01:fireflow.process:REPORT: PK-1: submitting on remote
2023-02-07 20:11:03:fireflow.process:REPORT: PK-2: submitting on remote
2023-02-07 20:11:05:fireflow.process:REPORT: PK-1: polling job until finished
2023-02-07 20:11:06:fireflow.process:REPORT: PK-2: polling job until finished
2023-02-07 20:11:08:fireflow.process:REPORT: PK-1: copying from remote folder
2023-02-07 20:11:09:fireflow.process:REPORT: PK-2: copying from remote folder
2023-02-07 20:11:13:fireflow.process:REPORT: PK-1: parsing output files
2023-02-07 20:11:13:fireflow.process:REPORT: PK-1: paths: ['job.sh', 'output.txt', 'slurm-147.out']
2023-02-07 20:11:13:fireflow.process:REPORT: PK-2: parsing output files
2023-02-07 20:11:13:fireflow.process:REPORT: PK-2: paths: ['slurm-148.out', 'job.sh', 'output.txt']
calcjobs以异步方式运行,步骤如下
- 准备提交:创建作业脚本
- 复制到远程文件夹:将作业脚本和输入文件复制到远程文件夹
- 在远程提交:将作业脚本提交到调度器
- 轮询作业直到完成:轮询作业状态直到完成
- 从远程文件夹复制:从远程文件夹复制输出文件
- 解析输出文件:解析输出文件并将结果存储在数据库中
目标
- 最小化对服务器的请求数量
上游 o AiiDA
- 打印作业脚本,以进行调试
- 添加对sqlalchemy.engine日志的自定义https://docs.sqlalchemy.org.cn/en/20/core/engines.html#configuring-logging
https://chat.openai.com/chat/e453e10b-19fd-46a8-9cfb-0c8d31d1a60d
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源分布
         fireflow-0.0.1.tar.gz  (30.6 kB 查看散列值)
      
    构建分布
         fireflow-0.0.1-py3-none-any.whl  (30.5 kB 查看散列值)
      
    
    
       关闭
    
      
        
    
    
  
fireflow-0.0.1.tar.gz 的散列值
| 算法 | 散列值 | |
|---|---|---|
| SHA256 | c03b2335dbb5909c554a2b736a37fbd757bc405844f7b698b2345a2d7542190d | |
| MD5 | 72f44b6e0d50618bd57833ff1ee91967 | |
| BLAKE2b-256 | 7049aa93cc5e5444f69e64b88c44651b2140dbca4e6d0b8d396de0a8bc2496c0 | 
    
       关闭
    
      
        
    
    
  
fireflow-0.0.1-py3-none-any.whl 的散列值
| 算法 | 散列值 | |
|---|---|---|
| SHA256 | a7bae75fc0eb150981409c25efaf47651c122f966394fbfde7ef8ff67b547e73 | |
| MD5 | 38f8a31ee5a6bdb95b983fa2330dba04 | |
| BLAKE2b-256 | 51f9351cc626ab49c4426385baaccba0fa87bfac1f24db19f65a71ec54684776 |