扭矩 PBS - 运行 几个串行 Python 过程

Torque PBS - running several serial Python processes

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

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

到目前为止,我在 SO 中找到的最接近我想要实现的问题是 this one。主要区别在于我应该使用 Torque(真的吗?)。

所以,简而言之,我的问题是:我如何使用 Torque PBS 实现所引用问题的解决方案?

好吧,我设法通过以下方式做到了:

假设有一个名为 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