我希望计算我的MPI应用程序的速度与并行进程/节点的数量。
应用程序主要并行执行巨大的矩阵计算。
我可以使用MPI_Wtime()
测量经过的时间,就像这样..
double start = MPI_Wtime();
....
double end = MPI_Wtime();
double elapsed = end - start;
但是如何在并行化程度上实现这一目标呢?
答案 0 :(得分:2)
加速的通常定义是1个进程的时间除以p
进程的时间。
如果您希望展示代码的效果,最好从1到最高金额中选择一系列p
来运行并以加速对比绘制结果。 p
情节。
请注意,严格来说,加速应该将p
进程的时间与最佳可能的顺序代码进行比较,而不仅仅是按顺序运行并行代码。这似乎是一个没有实际意义的点,但在某些领域,并行代码在顺序情况下非常糟糕。例如,在稀疏矩阵世界中,您可以找到比顶部顺序代码慢10-50倍的并行代码。