2013-09-22 16 views
1

是否可以在PBS文件中跨for循環執行並行化?.pbbs文件中的天真並行化

下面是我的attempt.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個作業嗎?

謝謝。

回答

1

達到此目的的標準方法是通過消息傳遞接口(MPI)庫。打開MPI是您可以使用的良好實現。一些基本的例子可以在here找到,如果你想了解更多信息,這是OpenMPI的tutorial

+0

所以我會說:'mpiexec -n 16:./job1.sh:./job2.sh:./job3.sh:./job4.sh'並且每個作業都會在不同節點上打開16個進程? –

+0

我相信如此,但說實話我不是專家。我使用MPI代碼工作,但我不會經常寫它們。 – dbeer