跳转到主要内容

科学工作流中间表示语言

项目描述

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提供两个主要功能:translatecompile。前者将支持的高级语言之一编写的分布式工作流转换为低级SWIRL中间表示形式。后者将SWIRL表示形式编译为目标可执行包。

翻译

swirlc translate命令可以将现有的、用支持的高级语言编写的工作流表示形式转换为SWIRL低级中间表示形式,通常存储在*.swirl文件中,以及包含一组元数据的*.yml文件中。以下命令可以用来从一个由Pegasus WMS生成的DAX工作流中生成SWIRL表示形式。

swirlc translate --language dax [DAX_DIRECTORY]

注意,DAX_DIRECTORY必须包含四个文件:replica.ymlsites.ymltransformations.ymlworkflow.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 (30.7 kB 查看哈希值)

上传时间

构建分布

swirlc-0.0.1-py3-none-any.whl (33.6 kB 查看哈希值)

上传时间 Python 3

由以下支持

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