【问题标题】:How to calculate the speedup of MPI application?如何计算 MPI 应用程序的加速比?
【发布时间】:2015-04-27 13:53:36
【问题描述】:

我希望根据并行进程/节点的数量来计算我的 MPI 应用程序的加速。

应用程序主要并行执行巨大的矩阵计算。 我可以使用MPI_Wtime() 来测量经过的时间,就像这样..

double start = MPI_Wtime();  
....
double end = MPI_Wtime();
double elapsed = end - start;

但是我怎样才能在并行化的程度上做到这一点呢?

【问题讨论】:

  • 您的问题曾经是“加速”。 “并行度”不是一个术语。什么意思?
  • @Adam 简而言之,我想知道如果我增加并行进程的数量来执行特定任务,可以节省多少时间。
  • 您最好的选择是加速,或者如果您的问题非常具体,那么只需说明它的速度有多快。例如“10 核 5 小时,100 核 1 小时”。

标签: mpi


【解决方案1】:

加速的通常定义是 1 个进程的时间除以 p 进程的时间。

如果您希望展示代码的性能,最好选择从 1 到您有权运行的最大数量的 p 范围,并在加速比与 p 绘图上绘制结果。

请注意,严格来说,加速应该比较p 进程与可能的最佳顺序代码的时间,而不仅仅是顺序运行您的并行代码。这似乎是一个有争议的问题,但在某些领域,并行代码在顺序情况下非常糟糕。例如,在稀疏矩阵世界中,您会发现并行代码比顶级顺序代码慢 10-50 倍。

【讨论】:

  • 'p 进程的时间'究竟是什么意思?执行p 进程时是否花费了集体时间?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多