【问题标题】:Naive parallelization in a .pbs file.pbs 文件中的幼稚并行化
【发布时间】:2013-09-22 21:02:09
【问题描述】:

是否可以跨 PBS 文件中的 for 循环进行并行化?

下面是我的尝试.pbs 文件。我想分配 4 个节点并同时为每个节点分配 16 个进程。我已经成功完成了这项工作,但现在我有 4 个工作,我想向每个节点发送一个工作。 (我需要这样做,因为排队算法会让我等待几天才能在我正在使用的集群上提交 4 个单独的作业)

#!/bin/bash
#PBS -q normal
#PBS -l nodes=4:ppn=16:native
#PBS -l walltime=10:00:00
#PBS -N HuMiBi000
#PBS -o HuMiBi.000.out
#PBS -e HuMiBi.000.err
#PBS -A csd399
#PBS -m abe
#PBS -V

./job1.sh
./job2.sh
./job3.sh
./job4.sh

作业独立运行,不使用相同的数据。我可以从同一个 pbs 脚本为每个节点运行 1 个作业吗?

谢谢。

【问题讨论】:

    标签: parallel-processing job-scheduling pbs qsub supercomputers


    【解决方案1】:

    实现此目的的标准方法是通过消息传递接口 (MPI) 库。 Open MPI 是您可以使用的一个很好的实现。可以在here 找到一些基本示例,如果您想了解更多信息,这是 OpenMPI 的tutorial

    【讨论】:

    • 所以我会说:'mpiexec -n 16 : ./job1.sh : ./job2.sh : ./job3.sh : ./job4.sh' 并且每个进程会打开 16 个进程吗?作业都在不同的节点上?
    • 我相信是这样,但老实说我不是专家。我使用 MPI 代码,但我不经常编写它们。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-24
    • 2018-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多