【问题标题】:Parallel computing efficiency - Number of cores or MPI processes?并行计算效率 - 内核数或 MPI 进程数?
【发布时间】:2015-05-15 15:07:41
【问题描述】:

我正在 2 + 2(超线程)核心机器上测试并行程序。并行化是通过 MPI 例程实现的。

在评估并行代码的效率时,我必须将加速除以内核数还是将加速除以 MPI 进程数?

谁能帮帮我?

【问题讨论】:

  • 请帮忙!!我很绝望!!! XD

标签: parallel-processing processing-efficiency


【解决方案1】:

在某些情况下两者都有意义,因此这取决于您要衡量的内容。

例如,可以尝试使用 1、2、3 和 4 个 MPI 进程运行程序,并测量每次运行的加速。然后可以将测量结果绘制为 y 轴上的加速和 x 轴上的 MPI 进程数的图形,从而说明算法的可伸缩性(或不可伸缩性......)(假设仅使用例如两个 MPI 进程与在只有两个内核的充分利用的计算机上运行算法是一样的。

效率也是如此。

但这种推理仅在 MPI 进程数小于或等于您拥有的物理内核数时才有效。例如,如果您尝试在 4 核机器上使用 5 个 MPI 进程,您可能不会获得与在 5 核机器上相同的加速,因此这可能无法衡量您想要的 - 至少不是计算绑定问题。

同样是为了效率。

因此,如果您的 MPI 进程多于物理内核,那么谈论与物理内核数量相关的加速和效率是有意义的(至少就我所见而言)。例如,在上面的 4 核机器示例上继续 5 个 MPI 进程:假设与 4 个 MPI 进程相比,使用 5 个 MPI 进程(例如,因为 MPI 进程有时会阻塞 IO)获得(仅)一些改进的加速,那么 MPI 进程数量的效率会下降,但物理核心数量的效率会上升。所以在这种情况下,使用 5 个 MPI 进程会比 4 个更好,即使 MPI 进程数量的效率会更低(与使用 4 个 MPI 进程相比)。

当然,与往常一样,如果您提供了更多关于您正在尝试做什么的信息,那么回答起来会更容易。

【讨论】:

  • 感谢您的帮助! :) 我已经构建了并行代码来并行化蒙特卡洛模拟。我需要检查我的代码的性能,并且我计算了测量 3、4、5、6、7、8、9 和 10 MPI 进程的顺序和并行代码的执行时间的加速因子:Speedup(#Processes) = time_sequential / time_parallel(#Processes) 然后我想检查不同工作负载的不可并行代码 (f) 的比例是否减少。为了评估 f,我使用了反向 Amdahl 定律:f = (p - Speedup(p)) / (Speedup(p) * (p - 1)) 待续……
  • 在我想通过公式评估效率之后:效率(p)= time_parallel(p)/p 我无法确定 p(对于反向阿姆达尔定律和效率)是进动数还是核心数。这是我的问题! XD
  • 我在通过网络连接的PC集群上进行了测量。内核总数为 32。在这种情况下,问题不存在,因为我测量了不同数量的进程(总是
  • 抱歉,您的要求还不是很清楚。这是作业题吗?
【解决方案2】:

据我了解,您的问题出在公式中: 效率(p) = time_parallel(p) / p。 这里的“p”是您执行它的 MPI 进程的数量。正如 cic 所提到的,程序员的责任是他有足够的内核来匹配 MPI 进程的数量。重复一遍,如果您只有 2 个内核并使用 5 个 MPI 进程运行,那么您的效率结果是错误的。同样,如果您有一台 8 核机器并使用 2 个 MPI 进程运行您的代码,您的 "p" = 2

【讨论】:

  • 感谢您的帮助! :) 我认为正确的答案是 p 始终是处理器/内核的数量,因为效率降低了您的代码性能如何趋向于理想值。所以效率的一般公式是“E=your_performance/best_performance”。最佳速度(理想情况)是处理器/内核数 p。你同意吗?
【解决方案3】:

我认为正确的答案是 p 始终是处理器/内核的数量,因为效率降低了您的代码性能如何趋向于理想值。所以效率的一般公式是

E=your_performance/best_performance

最佳速度(理想情况)是处理器/内核的数量 p。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 2016-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多