'localization_optional' 优化功能

适用于Cromwell 33及以上版本。

范围

'localization_optional'优化可以应用于任务中包含文件的单个输入声明,特别是FileFile?值以及任何包含它们的复杂类型。 通过识别任务成功运行不需要本地化的文件,该优化可以帮助您节省时间和成本。

条件

优化信号向Cromwell表明,某个任务的编写方式满足以下条件:

  • 如果Cromwell本地化了指定的文件输入,任务将正常工作
  • 例如,如果文件已针对本地Docker化执行环境进行了本地化。

并且:

  • 即使Cromwell本地化相同的文件输入,该任务仍将正常工作
  • 例如,文件仍保留在云对象存储中,命令是使用其URL而非本地路径构建的。

对文件本地化的影响

如果backend已设置为遵循localization_optional,Cromwell将选择不本地化相应的文件输入。

对调用缓存的影响:

无!

标记为可选本地化的文件在调用缓存时仍与其他File输入的处理方式完全相同。

语言支持

WDL 1.0 (或更高版本)

在WDL 1.0的task中,可以通过在任务的parameter_meta部分的输入条目中添加localization_optional字段来指定此优化。以下是一个示例:

task nio_task {
  input {
    File foo_file
    File bar_file
  }

  parameter_meta {
    foo_file: {
      description: "a foo file",
      localization_optional: true
    }
    bar_file: {
      description: "a bar file"
    }
  }

  command <<<
    # This tool must work for **BOTH** local file paths **AND** object store URL values:
    java -jar my_tool_1.jar ~{foo_file}

    # Because the optimization is not applied to 'bar_file' in parameter_meta, this file **WILL** be localized:
    java -jar my_tool_2.jar ~{bar_file}
  >>>
}

后端支持

此优化目前仅适用于Pipelines API (GCE)后端的本地化。