调试MPI程序主要靠打印。如果使用printf,所有的输出都是stdout,不易辨认。把不同rank的log打印到不同文件使得log更清楚,通过fprintf实现。
#include "mpi.h"
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char **argv)
{
int rank, size;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
FILE *fp;
char fn[64];
sprintf(fn, "output%d.log",rank);
fp = fopen(fn,"w");
fprintf(fp,"log %d\n",rank);
fclose(fp);
MPI_Finalize();
return 0;
}