使用MPI文件输出错误

时间:2016-11-17 23:10:46

标签: c mpi icc

我在带有MPIICC编译器的Xeon Phi协处理器上运行了一个MPI程序。

我的代码运行正常,直到我完成MPI并尝试将结果打印到文件。

我将首先描述最终定稿:

MPI_Win_free(&win);
MPI_Finalize();


// After finalizing, all print statements in this area of 
// the code print for all MPI nodes (even though they have 
// been finalized)
printf("testing\n");

return 0;
}

最终printf语句打印所有MPI节点,即使它们已经完成。

所以,好吧,奇怪的行为 - 我不在乎。我放了一个if语句,只有当rank等于0时才打印结果:

if (rank == 0) {...}

即使在最终确定之后,这仍然有效。接下来,我将print语句更改为文件写入语句:

...
MPI_Finalize();

if (rank == 0){
    FILE *file = fopen("output.txt","w"); 
    fclose(file);
}

return 0;

}

我遇到了分段错误。我无法弄清楚发生了什么。我环顾四周,尝试了一切......不确定发生了什么,甚至可能出现什么问题。我应该拥有所有必需的权限。

补充说明:如果我不关闭文件,我不会出现分段错误(或打印到它)。

这似乎一般都失败了。

0 个答案:

没有答案