扭矩PBS-运行多个串行Python进程

时间:2018-07-17 23:46:00

标签: python parallel-processing cluster-computing pbs torque

我想第一次进行并行计算,但我不知道应该从哪里开始。

问题是我有一个庞大的文件列表(大约7000个csv文件),我想处理该列表并从数据中获取单个文件。对于此任务,我想使用与Torque PBS配合使用的校园集群。

到目前为止,我最想实现的目标是this one。与我应该使用Torque的主要区别(真的吗?)。

因此,为了简单起见,我的问题是:如何使用Torque PBS实现所引用问题的解决方案?

1 个答案:

答案 0 :(得分:1)

好吧,我设法通过以下方式做到这一点:

假设有一个名为process.py的python串行进程,一次可处理100个csv文件。

然后我们需要一个文件call_pyprocess.pbs,该文件使用以下语法调用process.py

#!/bin/bash
#PBS -l nodes=1:ppn=1
#PBS -o out.varx
#PBS -e error.varx

source activate p2.7    """ if need to specify python environment  """

python /path/to/file/process.py varx   """ varx is the iteration number """

请注意,process.py文件需要参数解析器才能将varx用作内部变量。

然后使用以下命令从bash发送作业:

for i in {00..70} ; do cp call_pyprocess.pbs temp.pbs ;
 perl -pi -e "s/varx/$i/" temp.pbs; qsub temp.pbs; done