gpt4 book ai didi

c - mpi 文件读取未结束

转载 作者:太空宇宙 更新时间:2023-11-04 07:12:01 27 4
gpt4 key购买 nike

我正在尝试通过以下方式使用 mpi 读取 txt 文件:

“主节点应该加载数据,将其划分并分发给工作处理器。”

但是我的代码没有结束。

这是相应的代码片段:

MPI_File_open(MPI_COMM_WORLD, argv[1], MPI_MODE_RDONLY, MPI_INFO_NULL, &in);

if (rank == 0){

printf("OK\n");

MPI_Offset filesize;
MPI_Offset localsize;
MPI_Offset start;
MPI_Offset end;
char *chunk;

MPI_File_get_size(in, &filesize);
//localsize = filesize/size;
start = 0;
end = filesize - 1;
printf("OK\n");

localsize = end - start + 1;

/* allocate memory */
chunk = malloc( (localsize + 1)*sizeof(char));

MPI_File_read_at_all(in, start, chunk, localsize, MPI_CHAR, MPI_STATUS_IGNORE);
printf("OK\n");
chunk[localsize] = '\0';
}

MPI_Finalize();

上面的代码没有打印第三个“OK”。因此,我猜问题出在 MPI_File_read_at_all() 中。

可能是什么问题?

最佳答案

MPI_File_read_at_allMPI_File_read_at集体 版本。集体行动只有在给定通讯器中的所有等级都发出调用后才能完成。在您的情况下,开放操作包含 MPI_COMM_WORLD 而您只调用排名 0 的 MPI_File_read_at_all

您应该将其替换为非集体 MPI_File_read_at,或者更好的是,改用标准 C I/O 例程。

关于c - mpi 文件读取未结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27667758/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com