CWL is a way to describe command line tools and connect them together to create workflows. Because CWL is a specification and not a specific piece of software, tools and workflows described using CWL are portable across a variety of platforms that support the CWL standard.
CWL has roots in “make” and many similar tools that determine order of execution based on dependencies between tasks. However unlike “make”, CWL tasks are isolated and you must be explicit about your inputs and outputs. The benefit of explicitness and isolation are flexibility, portability, and scalability: tools and workflows described with CWL can transparently leverage technologies such as Docker and be used with CWL implementations from different vendors. CWL is well suited for describing large-scale workflows in cluster, cloud and high performance computing environments where tasks are scheduled in parallel across many nodes.
CWL是一种描述命令行的工具并能够使用命令行创建工作流,由于CWL是一种要求(类似规范)已经并不是一种特定的软件,工具。由CWL描述的工作流能够在支持CWL标准的多种平台上使用。
CWL任务是独立的,使用者必须明确输入和输出。这种明确和独立是复杂,可移植和可扩展的:工具和CWL描述的工作流能够轻易胜任一些工作例如在不同的平台上CWL Docker的实现。CWL非常适合描述大规模集群数据流,云数据流以及多点平行运行的高性能计算环境。
// CWL是一种规则,采用的是命令行与输入输出分开的方式。如果有人同样在做CWL相关工作或者在学习CWL的话,欢迎交流,感激涕零。如果对文章有任何问题和意见,感谢提出指正。