使用 MPI 进行不同的时间测量
Different time measurements with MPI
我每次 运行 我的 MPI 应用程序都得到不同的时间测量值。我是这样测量时间的:
MPIt1 = MPI_Wtime();
// do work
MPIt2 = MPI_Wtime();
MPIelapsed = MPIt2 - MPIt1;
行为是相同的,有或没有 MPI_Barrier(MPI_COMM_WORLD);
。程序的结果当然是每次执行运行s.
都是正确的
检查我得到的 5x5 矩阵的极差:
0.00025 seconds // first run
0.10728 seconds // second run
此外,问题出现在较大的矩阵上,例如 2000x2000:
0.55996 seconds // first run
0.83657 seconds // second run
我是不是测错时间了?或者这是 MPI 的已知问题?请注意,时间仅从主节点报告。
我正在 运行 在另一台计算机上安装该程序,我已使用 ssh
登录。我记得当我真正坐在那台电脑前时,执行速度更快了。我是唯一登录的用户:
gsamaras@pythagoras:~/konstantis/cholesky$ who
gsamaras my internet connection
gsamaras@pythagoras:~/konstantis/cholesky$
EDIT 有很多 运行s:
1.6035
0.422967
1.53891
0.347107
0.761991
1.22824
0.934829
0.45618
0.794225
0.554099
1.09323
0.421858
0.621015
0.889867
0.613867
0.459144
2.02273
0.67689
2.2390
1.0448
0.751333
编辑_2
- 通过在 run.sh.
中多次调用程序,我得到了计时
- 我运行在一台机器上安装程序,4核。
- 我正在使用 MPICH2。
我从一位同事和帕特里克那里得出结论:
- MPI 的启动时间可能有很大差异。
- 相对较小的执行时间不值得信赖,可能会有所不同
很多.
我每次 运行 我的 MPI 应用程序都得到不同的时间测量值。我是这样测量时间的:
MPIt1 = MPI_Wtime();
// do work
MPIt2 = MPI_Wtime();
MPIelapsed = MPIt2 - MPIt1;
行为是相同的,有或没有 MPI_Barrier(MPI_COMM_WORLD);
。程序的结果当然是每次执行运行s.
检查我得到的 5x5 矩阵的极差:
0.00025 seconds // first run
0.10728 seconds // second run
此外,问题出现在较大的矩阵上,例如 2000x2000:
0.55996 seconds // first run
0.83657 seconds // second run
我是不是测错时间了?或者这是 MPI 的已知问题?请注意,时间仅从主节点报告。
我正在 运行 在另一台计算机上安装该程序,我已使用 ssh
登录。我记得当我真正坐在那台电脑前时,执行速度更快了。我是唯一登录的用户:
gsamaras@pythagoras:~/konstantis/cholesky$ who
gsamaras my internet connection
gsamaras@pythagoras:~/konstantis/cholesky$
EDIT 有很多 运行s:
1.6035
0.422967
1.53891
0.347107
0.761991
1.22824
0.934829
0.45618
0.794225
0.554099
1.09323
0.421858
0.621015
0.889867
0.613867
0.459144
2.02273
0.67689
2.2390
1.0448
0.751333
编辑_2
- 通过在 run.sh. 中多次调用程序,我得到了计时
- 我运行在一台机器上安装程序,4核。
- 我正在使用 MPICH2。
我从一位同事和帕特里克那里得出结论:
- MPI 的启动时间可能有很大差异。
- 相对较小的执行时间不值得信赖,可能会有所不同 很多.