c++ - 为 OpenMP + MPI 应用程序定位资源

标签 c++ mpi openmp pbs

我目前正在使用 C++ 开发一个混合程序。我同时使用 openMP 和 MPI。但是,我不知道如何为我的作业指定处理器和线程的数量。假设我想使用 5 个节点,每个节点上有一个 MPI 处理器,每个节点有 24 个线程。

这就是我现在提交 my_job 的方式:

qsub -l select=5:ncpus=24:mpiprocs=5 -l place=scatter:exclhost my_job

my_job 脚本上,我正在做这个

#PBS -l select=5:ncpus=24:mpiprocs=5
export OMP_NUM_THREADS=24
mpic++ -O3 myprogram.cpp -o out -fopenmp -lquadmath -std=gnu++11
mpirun -n 5 ./out

但是,性能非常慢,这让我觉得我定位资源的方式可能有问题。

有什么建议吗?

最佳答案

关于c++ - 为 OpenMP + MPI 应用程序定位资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47277587/

相关文章:

c++ - 将套接字绑定(bind)到非临时端口范围内的空闲端口

c++ - 为什么数组元素长度的地址计算可以被 2 的幂整除更有效?

opencv - craycc 和 OpenCV

parallel-processing - OpenMP 程序比顺序程序慢

c++ - GCC 中的 OpenHMPP

c++ - Qt Creator 没有名为 stackedWidget 的成员

c++ - 你对 typedef'ing shared_ptr 的约定是什么?

c++ - C 中的 MPI 编程 - MPI_Send() 和 MPI_Recv() 地址问题

macos - 切换互联网连接后,gethostbyname失败

c - 如何使用 openmp 产生一次线程