WDL - 任务引擎

WDL 怎么运行

执行引擎 Cromwell

Cromwell 是 Broad Institute 开发的工作流管理引擎。具有如下的优势:

  • 支持 WDL 和 CWL 两种工作流描述语言
  • 多平台支持,包括本地服务器、SGE集群、云计算平台等
  • 阿里云批量计算是官方支持的云平台之一
  • 丰富的元数据,展示工作流执行过程
  • 支持多种高级特性,优化 workflow 的执行

image

语法检查工具

WDL 编写完成后,在真正执行之前,我们可以使用官方工具进行语法检查:

1
java -jar wdltool.jar validate myWorkflow.wdl

使用 Cromwell 运行 WDL

使用 Cromwell 运行 WDL 有两种模式

  • Run 模式
    用来执行单个 WDL,适用于调试初期,快速执行一个WDL。

    1
    $ java -jar cromwell.jar run echo.wdl --inputs input.json
  • Server 模式
    用下面的命令启动一个 HTTP server

    1
    $ java -Dconfig.file=application.conf -jar cromwell.jar server

再使用 RESTful API 提交工作流到 server 执行:

1
$ java -jar cromwell.jar submit -t wdl -i input.json -o option.json -h http://localhost:8000

相比 Run 模式,Server 模式有以下优势:

  • 可以并行处理多个 workflow,适用于生产环境
  • 有 Call caching 等高级特性(下文会讲到),优化 workflow 的执行
  • 提供丰富的 workflow metadata,来展示 workflow 的执行过程

注意:不管是使用Run 模式还是 Server模式,要使用批量计算作为后端运行 WDL,都需要对应的配置文件支持,配置文件详解请参考批量计算官方文档Cromwell 官方文档

-------------本文结束感谢您的阅读-------------