|
|
看你后文提到, 似乎有采用openMPI?
建议,在执行的脚本中,添加一句,
export OMP_NUM_THREADS=1
Or
export OMP_NUM_THREADS=2
看介绍信息:
CP2K is written in Fortran 2008 and can be run efficiently in parallel using a combination of multi-threading, MPI, and CUDA.
明显, cp2k是典型的openMP+MPI混合并行的模式。
对于openMP的程序,
多数情形下,
不指定 OMP_NUM_THREADS=1Or2,内存会爆浆的,
而且奇慢无比。
机器负载会飙升。
或者读读这个:
Conventionally, there are six versions:
Acronym Meaning
sdbg OpenMP + debug settings
popt OpenMP + OMP_NUM_THREADS=1
ssmp OpenMP
pdbg MPI + OpenMP + debug settings
popt MPI + OpenMP + OMP_NUM_THREADS=1
psmp MPI + OpenMP
可以自行测试,对于一台机器上的多核心并行,
是openMP快还是MPI快?
或者是混合模式快?
不是所有的并行计算,上来都是mpirun -np XXX来搞的。 |
|