科学工作流中间表示语言
项目描述
SWIRL:科学工作流中间表示语言
SWIRL是一种用于分布式科学工作流的低级中间表示语言。与其他产品无关的工作流语言不同,SWIRL不是为了人类交互而设计的,而是作为分布式工作执行计划的低级编译目标。它将具有位置感知的工作流程图的执行计划建模为具有发送/接收通信原语的分布式系统。优化后的SWIRL表示可以编译成一个或多个自包含的可执行包,使其能够适应特定的执行环境并接受异构性。此存储库包含名为swirlc
的参考SWIRL编译器工具链,用Python 3编写,并依赖于ANTLR解析器生成器。
安装
PyPI
swirlc
软件包可在PyPi上找到,因此您可以使用pip安装它。
pip install swirlc
请注意,SWIRL编译器需要python >= 3.8
。然后您可以通过swirlc
CLI使用它。
Docker
SWIRL Docker镜像可在Docker Hub上获取。下面的脚本展示了在Docker容器中调用swirlc
CLI的示例。
mkdir -p SWIRL
docker run \
--user $(id -u):$(id -g) \
--volume $(pwd):/data \
--workdir /data \
alphaunito/swirlc:latest \
swirlc \
COMMAND \
[OPTION]
使用SWIRL
swirlc
CLI提供两个主要功能:translate
和compile
。前者将支持的高级语言之一编写的分布式工作流转换为低级SWIRL中间表示形式。后者将SWIRL表示形式编译为目标可执行包。
翻译
swirlc translate
命令可以将现有的、用支持的高级语言编写的工作流表示形式转换为SWIRL低级中间表示形式,通常存储在*.swirl
文件中,以及包含一组元数据的*.yml
文件中。以下命令可以用来从一个由Pegasus WMS生成的DAX工作流中生成SWIRL表示形式。
swirlc translate --language dax [DAX_DIRECTORY]
注意,DAX_DIRECTORY
必须包含四个文件:replica.yml
、sites.yml
、transformations.yml
和workflow.yml
。
编译
swirlc compile
命令可以从SWIRL表示形式创建不同编程语言的可执行跟踪。命令的结果是可执行包,可在高度分布式的执行环境中运行(例如,HPC、云或边缘)。以下命令可以用来从一个SWIRL_FILE
和一个METADATA_FILE
生成基于Python的可执行包。
swirlc compile [SWIRL_FILE] [METADATA_FILE]
注意,所有目标位置都必须安装Python解释器。
SWIRL团队
Iacopo Colonnelli iacopo.colonnelli@unito.it(设计师和维护者)
Doriana Medić doriana.medic@unito.it(设计师和维护者)
Alberto Mulone alberto.mulone@unito.it(维护者)
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
构建分布
swirlc-0.0.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | dcbda5786f0e74a85da5c8f678c7d34af5d03358cf31be5d696edf78d2c496fe |
|
MD5 | 02fb04e2990740ddc22d062033f83052 |
|
BLAKE2b-256 | 81911f339d7bfb7df094b7cfe0a361ee1da903a91be060e8f0334f5de58d290b |
swirlc-0.0.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4982bffc10ac768fd60c9b4999f09e6c776a72077984ee6d622ad6605e1a461c |
|
MD5 | 9950365259f34c70877a4bc57cebe4f1 |
|
BLAKE2b-256 | 9b4b81ec2f7922b7484a7bb46164d15f4c015fa446172adc19dc272ba59b5fa4 |