0

如何多次運行相同的程序,但通過PBS提交的集羣上的每個實例都有不同的參數。另外,是否有可能將這些程序中的每一個指定給單獨的節點?目前,如果我有一個PBS與下面的腳本:使用不同參數運行同一程序的多個實例的PBS

#PBS -l nodes=1:ppn=1 
/myscript 

它將運行單個程序一次,在一個節點上。如果我使用下面的腳本:

#PBS -l nodes=1:ppn=1 
/mscript -arg arg1 & 
/myscript -arg arg2 

我相信這會運行每個程序在串行,但它只會使用一個節點。我可以聲明多個節點,然後將特定的節點委託給我希望運行的程序的每個實例嗎?

任何幫助或建議將非常感激。我很抱歉,如果我不清楚任何事情或者使用不正確的術語......我對集羣計算非常陌生。

回答

0

你想用MPI的形式來做到這一點。 MPI代表消息傳遞接口,並且有許多實現接口的庫。我建議使用OpenMPI,因爲它與PBS很好地集成。正如你說你是新的,你可能會明白這一點tutorial.

0

GNU Parallel將是理想的用於這一目的。一個例子PBS腳本您的情況:

#PBS -l nodes=2:ppn=4 # set ppn for however many cores per node on your cluster 
#Other PBS directives 

module load gnu-parallel # this will depend on your cluster setup 

parallel -j4 --sshloginfile $PBS_NODEFILE /mscript -arg {} \ 
    ::: arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 

GNU Parallel將處理SSH連接到各個節點。我已經在命令行中寫出了帶有參數的示例,但您可能想要從文本文件中讀取參數。這裏有鏈接到man pagetutorial。選項-j4應該與ppn(每個節點的核心數量)匹配。

相關問題