Sun Grid Engine中是否有可能在每个子任务都有独特要求的情况下进行arrays作业? 例如,我可能有一个arrays工作,每个任务都有一个小的独特需求,但我不想单独启动每个工作。
我假设你的意思是资源需求。 如果是(甚至可能不),答案是否定的。 数组作业的定义是它是一组共享通用作业定义的任务。 资源需求是在工作层面设定的。
有关参考,请参阅作业定义(JB_Type:source / libs / sgeobj / sge_job_JB_L.h)与任务定义(JAT_Type:source / browse / gridengine / source / libs / sgeobj / sge_ja_task_JAT_L.h)。 JB_Type是关于定义作业的参数,而JAT_Type是跟踪任务的执行。
如果您正在寻找一种方便的方式来自动提交和跟踪大量的工作,看看DRMAA。 SGE的API绑定可以在C,Java,Python,Ruby和Perl中获得。
丹尼尔
每个子任务都知道它是作业ID。 这可以从环境中拉出(SGE_TASK_ID)。
在使用数组作业时,我使用包装器代码来处理每个作业的唯一参数。
我开始为每个作业生成参数的平面文件。 这可以是CSV,JSON,文本,只要您可以根据SGE_TASK_ID进行查找。 这个文件被保存到一些常见的位置。
作业是通过此文件的path提交的。 当每个作业运行时,它都知道要查看这个文件,并find它的一堆参数来执行。