【问题标题】:Torque PBS vs Python MultiprocessingTorque PBS 与 Python 多处理
【发布时间】:2015-04-19 18:21:26
【问题描述】:
我有一个 Python 脚本,它在具有 512 个 CPU 和 4TB 内存的服务器上运行。该脚本使用 Python 的 Multiprocessing 模块通过分叉 30 个并行子进程来进行并行处理。我现在需要编写一个 PBS 脚本来从另一台服务器远程调用该脚本。我可以看到有两种方法:
1、保持脚本不变,使用qsub提交运行脚本的作业。然后脚本将使用 Multiprocessing 模块进行并行化。
2. 将脚本改为串行处理,然后使用 PBS 提交 30 个不同参数的作业进行并行化。
谁能给我一些关于不同方法的利弊的线索?谢谢。
【问题讨论】:
标签:
python
pbs
python-multiprocessing
torque
【解决方案1】:
据我所见,每种方法的优缺点都不是很重要,因为无论哪种方式,您都在运行多个单独的作业,而不是单个 512 进程 MPI 作业。
由于 Torque 是您工作流程中的一个新部分,您需要确定要使用的队列以及对该队列设置的限制。限制通常由管理员设置,并且可以设置为有利于少量大型作业,第一种方法,或大量小型作业,第二种方法。跑步
qmgr -c 'p s'
将向您展示其中的一些信息,但与管理员交谈会让您了解他们打算如何使用该系统,并希望让您对如何运行您的工作有所了解。
如果您发现没有设置任何限制,您可能要考虑使用大量小作业的方法。通过队列获得 20 个处理器的作业比让 200 个处理器的作业在共享系统上运行更容易。