目標是測量運行時間與#個進程。MPI中的一般運行時間測量C
我只是MPI的初學者,遇到困難。
我寫了一個hello world程序,想測試全局運行時。
我試過使用屏障,以確保所有進程在測量系統時間之前終止,但我得到了分段錯誤。
我的代碼:
#include <mpi.h>
#include <stdio.h>
int main(int argc, char *argv[]) {
double time1, time2;
double duration=0.0000;
int npes, myrank;
time1 = clock();
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &npes);
MPI_Comm_rank(MPI_COMM_WORLD, &myrank);
printf("From process %d out of %d, Hello World!\n", myrank, npes);
time2 = clock();
if (time2-time1>duration) {
duration = time2-time1;
}
duration = time2-time1;
MPI_BARRIER(MPI_COMM_WORLD);
printf("runtime is %f ", duration);
MPI_Finalize();
return 0;
}
幫我找出爲什麼我收到分段錯誤?
C是區分大小寫的。 MPI_BARRIER將在鏈接時抓取Fortran符號。 – Jeff
僅供參考這是用mpicc編譯並由mpirun運行 –