指定作业的数据需求

LSF 调度要执行的作业之前,使用 bsub -data 命令指定要复制到登台区域中的文件或文件夹。

关于本任务

通过使用以下格式定义源主机和所需文件或文件夹的完整路径,指定每个必需的数据文件或文件夹:
  • 对于文件: "[host_name:]/absolute_file_path"
  • 对于文件夹: "[host_name:]/absolute_folder_path/[*]"

使用此格式通过 bsub -data 命令指定单个或多个数据文件或文件夹。

在路径末尾使用星号字符时,数据文件需求必须使用引号。

注:
  • 缺省情况下,如果未在数据文件需求中指定主机名,那么 LSF 将使用提交主机名。
  • 如果请求的数据文件位于与提交主机不同的主机上,那么提交用户必须对指定主机配置无密码 ssh 。 配置无密码 ssh 允许 LSF 收集有关该文件的数据文件信息,以确定该文件是否已在高速缓存中。
  • 源文件名只能包含字母数字字符,点 (.) ,下划线 (_) 和连字符 (-)。 文件名不能包含空格。
  • 文件和文件夹的路径名可以包含冒号字符 (:)。
  • 如果您请求包含符号链接的文件夹,那么将遵循符号链接。 检查文件夹中的符号链接以确定这些链接是否有效。 如果检测到中断的符号链接,那么将拒绝提交。
  • 如果您请求文件夹,那么必须有权访问该文件夹及其内容。 您必须具有对文件夹的读和执行许可权,以及对常规文件的读许可权。 如果您无权访问顶级文件夹和文件夹内容,那么将拒绝提交。

请求的每个数据文件都会导致 LSF 数据管理器提交到 LSF 的单个传输作业,除非该文件已存在于 LSF 数据管理器高速缓存中。

将文件夹指定为数据需求会生成单个传输作业,而不是为文件夹中的每个文件生成单独的传输作业。

过程

  • 通过在 bsub -data 命令中定义单个源主机和文件路径来指定单个数据文件需求。
    bsub -data "hostA:/data/file1.dat" myjob
  • 使用多个 -data 选项指定多个数据文件需求。
    bsub –data "hostA:/data/file1.dat" –data "hostA:/data/file2.dat" myjob
  • 通过定义以空间分隔的源主机和文件路径列表,在单个 -data 选项中指定多个数据文件需求。
    bsub –data "hostA:/data/file1.dat hostA:/data/file2.dat" myjob
  • 通过将目录定义为 -data 选项中的文件路径,以递归方式指定整个目录。
    bsub –data "hostA:/data/" myjob

    此命令请求文件夹 data中的所有文件,并以递归方式请求所有子文件夹中的所有文件作为所需的数据文件。

  • 通过在 -data 选项中定义带有星号字符 (*) 作为文件路径的目录来指定目录的直接内容 (但不以递归方式指定)。
    bsub –data "hostA:/data/*" myjob

    此命令请求文件夹 data 顶级的所有文件作为必需的数据文件,但不递归定义任何子文件夹。

  • 通过在 -data 选项的文件名中使用 %I 特殊字符并使用 -J 选项定义作业数组,指定由作业数组元素建立索引的一组数据文件。
    bsub –data "hostA:/data/file%I.dat" –J "MyJobArray[1-10]" myjob

    %I 特殊字符将替换为每个数组下标,并且每个文件被视为每个作业数组元素的数据文件需求。 因此, /data/file1.datMyJobArray[1]的数据文件需求, /data/file2.datMyJobArray[2]的数据文件需求,而其余作业数组元素具有类似的数据文件需求。