10
我有一些代码可以将二维数组打印到标准输出。 问题是,当我运行它时,每个进程都会写入输出,并且数据发生重叠,导致其不可用。MPI中的关键部分?
我该如何构建MPI中的关键部分,以便每次只有一个进程进入显示输出的部分?
我正在使用OpenMPI。
我有一些代码可以将二维数组打印到标准输出。 问题是,当我运行它时,每个进程都会写入输出,并且数据发生重叠,导致其不可用。MPI中的关键部分?
我该如何构建MPI中的关键部分,以便每次只有一个进程进入显示输出的部分?
我正在使用OpenMPI。
使用MPI_Barriers将其分开。
rank = 0;
while (rank < total_processes) {
if (myrank == rank) {
printf ("Array printed by rank: %d\n", myrank);
print_array();
fflush (stdout);
}
rank ++;
MPI_Barrier();
}
你可能想在某处增加'rank'。 :) – suszterpatt 2012-01-12 19:45:09
嘿,谢谢。 _Too much_伪代码不好;-) – jman 2012-01-12 19:55:34
感谢您的回复!它有点更好,但仍然重叠:( – alexsardan 2012-01-12 21:42:18