【问题标题】:Optimal way of running hybrid MPI – OpenMP jobs运行混合 MPI 的最佳方式 – OpenMP 作业
【发布时间】:2013-08-27 13:45:36
【问题描述】:

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

OMP_NUM_THREADS = 4 mpirun -np 2 code

我从一些同事那里听说,应该仔细选择这些参数,以获得最佳性能(取决于硬件布局)。对于运行混合作业的一些建议,我将不胜感激。

谢谢

【问题讨论】:

    标签: mpi openmp hybrid


    【解决方案1】:

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

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

    m x n 节点上,m 是处理器插槽的数量,n 是 CPU 内核的数量,这样的实验将涉及针对 MPI 进程数量@987654326 的所有可能整数值运行代码@ 和 OpenMP 线程 q 使得 p x q = m x n 用于每个可用的编译器。

    这是一个 4 x 12 AMD Opteron 节点的 pq 的不同组合获得的并行加速图。数据取自 HiPERiSM Consulting LLC technical report HCTR-2011-2,George Delic,2010 年。 您可以看到,对于这个特定的代码,处理器架构中每个 MPI 进程的最佳 OpenMP 线程数是 1。但是,4 个线程和 12 个 MPI 进程的情况紧随其后。

    【讨论】:

      猜你喜欢
      • 2016-02-15
      • 2015-03-26
      • 1970-01-01
      • 2013-02-17
      • 2012-10-20
      • 2016-02-08
      • 1970-01-01
      • 2018-05-29
      • 2015-12-13
      相关资源
      最近更新 更多