从Python中的Slurm数组保存结果

时间:2019-06-01 06:19:46

标签: python-3.x slurm

由于我们的集群在调度方面的结构方式,对于长时间的计算,希望有很多(相对)短时间运行的工作。

通常,这意味着我有很多通用形式的Python脚本

def Function():
   results = numpy.zeros([1,3])
   a = random.uniform(hi,low)
   b = random.uniform(hi,low)
   c = LongComputation(a,b)
   results[0,0] = a
   results[0,1] = b
   results[0,2] = c
   return results

在此示例中忽略了这一点,在此示例中使用数组进行了一些过度设计。通常,从这里开始,我使用Slurm数组提交作业,每个脚本保存一个.csv文件,并在文件名后附加数组ID,因此我最终得到run_0.csv,run_1.csv等。

然后我将所有这些都cat在一起。我一直对将结果写入相同的.csv文件持谨慎态度,因为有两个作业同时完成,试图同时写入文件。 cat方法可以很好地工作,但是它确实使目录中保留了成千上万个文件-有一种显然更优雅的方法可以处理数组中的多个独立作业(而不是内部并行进程) )尝试同时写?

0 个答案:

没有答案