【问题标题】:Torque PBS - running several serial Python processesTorque PBS - 运行多个串行 Python 进程
【发布时间】:2018-07-17 23:46:00
【问题描述】:

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

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

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

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

【问题讨论】:

  • 您的校园集群应附带一些文档以帮助您入门。尝试先在集群上运行简单的作业。关于您的问题,您可以独立处理每个文件并将结果连接到一个文件中吗?
  • 您是在寻求帮助编写并行代码还是向 Torque 提交工作? Torque 只是一种提交作业以在托管集群中的一个或多个节点上运行的方式。

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


【解决方案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

【讨论】:

    猜你喜欢
    • 2015-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-16
    • 1970-01-01
    • 1970-01-01
    • 2015-07-24
    相关资源
    最近更新 更多