我在集羣上使用openMPI-1.6,集羣上有8個節點,每個節點有8個內核。我正在使用此命令來運行我的應用程序。集羣上的openMPI命令
/path/to/mpirun --mca btl self,sm,tcp --hostfile $PBS_NODEFILE -np $num_core /path/to/application
我已經運行實驗,得到了以下數據。
num node | num core per node | total core | exe time of application |
1 2 2 8.5 sec
1 4 4 5.3 sec
1 8 8 7.1 sec
2 1 2 11 sec
2 2 4 9.5 sec
2 4 8 44 sec //this is too slow
正如您可以看到最後一行(2個節點,8個內核)的執行時間比其他節點慢得多。我假定使用多個節點的開銷,但我並沒有預料到這種指數衰減。
所以,我的問題是,是否有任何openMPI性能參數我缺少在使用多個節點的羣集上運行作業?我認爲mca btl self,sm,tcp
參數會自動使用共享內存選項來進行節點內部的通信,並將使用'tcp'選項來發送到節點外部的通信。我理解正確嗎?
我知道很難說不知道應用程序,但我要求一個通用的參數調整應該是獨立於應用程序。