上我的本地集羣,我可以使用這個腳本OpenMP的超級計算機
#$ -S /bin/bash
#$ -N name_of_project
#$ -o output.out
#$ -pe orte 36
#$ -V
#$ -cwd
export OMP_NUM_THREADS=36
./my_programme
我可以用4個節點上運行跨36個內核的OpenMP的C++代碼的並行化的OpenMP我整個代碼36個核...
然而,在超級計算設施,是XSEDE的一部分:
https://portal.xsede.org/tacc-stampede
我被告知,我可以跨1個節點有16只跑的OpenMP核心。我有點困惑,所以如果我想用超過17個線程來並行化我的程序,我必須將我的程序重新編碼爲MPI程序?
我想問一下將OpenMP程序轉換爲MPI程序有多困難?謝謝。
您不應該嘗試將OpenMP轉換爲MPI。 OpenMP是一種共享內存編程模型。 MPI主要是分佈式內存編程模型。從共享到分佈式數據結構需要仔細設計。 – Jeff
OpenMPI是MPI的一個實現。這很令人困惑,但請嘗試區分兩者。 – Jeff
但是我的代碼需要非常大的並行(500線程+是必需的)......似乎唯一可行的方法是進行轉換...... – wasabi123