Цель состоит в том, чтобы измерять время выполнения по сравнению с процессами #of.общее измерение времени выполнения в MPI C
Я просто новичок в MPI и где-то застрял.
Я написал программу приветствия и хочу протестировать глобальное время выполнения.
Я попытался использовать барьер, чтобы убедиться, что все процессы заканчиваются перед измерением системного времени, но я получаю ошибку сегментации.
Мой код:
#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
FYI Это скомпилировано с mpicc и работает mpirun –