混合动力MPI的最佳运行方式&x2013;OpenMP作业

混合动力MPI的最佳运行方式&x2013;OpenMP作业,mpi,openmp,hybrid,Mpi,Openmp,Hybrid,我正在尝试使用混合MPI OpenMP并行化运行代码。据我所知,只要OpenMP线程的数量小于物理处理器的数量,每个处理器就运行一个线程。假设这是真的,假设我有一个由两个计算卡组成的假设计算节点。每个计算卡都有4个处理器+内存的芯片。我的问题是:MPI和OpenMP参数的最佳选择是什么。我想说2个MPI作业和4个线程,对吗 OMP\u NUM\u THREADS=4 mpirun-np 2代码 我听一些同事说,应该仔细选择这些参数,以获得最佳性能(取决于硬件布局)。我希望你能给我一些关于混合工作

我正在尝试使用混合MPI OpenMP并行化运行代码。据我所知,只要OpenMP线程的数量小于物理处理器的数量,每个处理器就运行一个线程。假设这是真的,假设我有一个由两个计算卡组成的假设计算节点。每个计算卡都有4个处理器+内存的芯片。我的问题是:MPI和OpenMP参数的最佳选择是什么。我想说2个MPI作业和4个线程,对吗

OMP\u NUM\u THREADS=4
mpirun-np 2代码

我听一些同事说,应该仔细选择这些参数,以获得最佳性能(取决于硬件布局)。我希望你能给我一些关于混合工作的建议


感谢

为实际应用程序代码选择正确的并行化配置绝非易事。MPI进程和OpenMP线程到多处理器节点的最佳映射取决于算法的具体实现、OpenMP运行时、缓存内存层次结构的内部组织以及与处理器体系结构相关的其他因素

因此,建议用户在其特定硬件上运行不同的配置,以找到最佳分配。你可以在研究计算设施和HPC咨询公司的技术报告中找到许多关于此类研究的报告

m x n
节点上,其中
m
是处理器插槽的数量,
n
是CPU内核的数量,这样的实验将涉及对MPI进程数
p
和OpenMP线程数
q
的所有可能整数值运行代码,以便
pxq=mxn
可用的编译器

这是一个4 x 12 AMD Opteron节点的
p
q
不同组合的并行加速比图。数据由George Delic于2010年从HiPERiSM Consulting LLC获取。 您可以看到,对于这个特定的代码,处理器体系结构中每个MPI进程的OpenMP线程的最佳数量是1。然而,4个线程和12个MPI进程的情况紧随其后