使用MPI优化对共享文件的写入

时间:2016-03-20 10:46:53

标签: c parallel-processing mpi mpi-io

在我的MPI程序中,我需要将一些计算的结果写入单个(共享)文件,其中每个MPI进程以不同的偏移量写入其部分数据。很简单。我已经实现了它:

offset = rank * sizeof(double) * N;

for (i = 0; i < N; i++) {
   data = ...;
   MPI_File_write_at(file, offset, &data, 1, MPI_DOUBLE, &status);
   offset += sizeof(double);
}

这有点简化,因为data实际上是一个数组,但为了简洁起见,我们假设它是单个值。所有进程同时调用此例程,并且它可以正常工作。但是,我不确定这是使用MPI执行IO的最佳方式。使用MPI_File_write_at_allMPI_File_write_ordered会带来更好的效果吗?

不幸的是,我在集群上的时间非常有限(有Lustre),所以我无法广泛测试所有可能的实现,而在我的笔记本电脑上进行测试显然不能很好地衡量IO性能。

0 个答案:

没有答案