独立I / O尝试(MPI + C)

时间:2018-03-09 20:34:43

标签: c io mpi

我正在尝试写入文件,这是一个示例代码:

#include <stdio.h>
#include <stdlib.h>
#include <mpi.h>

int main(int argc, char * argv[])
{
    MPI_File mf;

    int buf[1000], rank, i;
    MPI_Init(0,0);
    MPI_Comm_rank(MPI_COMM_WORLD, &rank);
    MPI_File_open(MPI_COMM_WORLD, "test.txt", MPI_MODE_CREATE|MPI_MODE_RDWR, MPI_INFO_NULL, &mf);


    if(rank==0) {
        for(i=0; i<1000; i++) {
            buf[i]=1; printf("bf[%d]=%d\n",i,buf[i]);
        } 

        MPI_File_write(mf, buf, 1000, MPI_INT, MPI_STATUS_IGNORE);
    }

    MPI_File_close(&mf);

    MPI_Finalize();

    return 0;
}

它不是写作,但它确实从rank = 0的线程打印东西。

理想情况下,我喜欢它只是从所有线程写入一个文件,顺序无关紧要。

代码取自here

p.s。:mpi新手。

其他资源:

刚刚找到很酷的教程here

Here它说MPI_File_write“从通话中返回并不能保证数据已写入存储设备”......它没有变得更好......

说明:

我试图编译并运行多个代码e.g.。他们编译,运行没有错误,但甚至不创建数据文件! SOS!

0 个答案:

没有答案