在LSF上执行作业时,您可以指定工作目录并创建输出目录,即
bsub -cwd / home / workDir -outdir / home / $ J程序输入文件
它将在指定的工作目录中查找输入文件。 -outdir将基于JobId创建一个新目录。
我想知道的是如何将从工作目录中的运行创建的结果通过管道传输到新创建的输出目录。
您不能添加类似的命令
mv * / home /%J
,因为底层操作系统不了解%J标识符。 LSF中是否有一个选项可用于将数据传递到作业中知道作业ID的位置?
答案 0 :(得分:0)
您可以使用环境变量$LSB_JOBID
。
mv * /data/${LSB_JOBID}/
如果在作业脚本中复制数据,则它将在数据复制期间保存计算资源。如果您要复制少量数据,那么这不是问题。但是,如果数据量很大,则可以使用bsub -f
,以便在进行数据复制的同时启动其他作业。
bsub -outdir "/data/%J" -f "/data/%J/final < bigfile" sh script.sh
bigfile
是您的作业在计算主机上创建的文件。作业完成后,它将被复制到/data/%J/final
。它甚至可以在非共享文件系统上工作。