我在并行阅读方面有点问题
我有一个如下所示的文本文件:
1 4 30 46
0 2 3 29
1 11 12 -1
1 4 5 -1
0 3 13 14
3 6 7 8
5 10 -1 -1
13 10 -1 -1
5 9 27 -1
我试图在每个进程中一次读取这些整数 4,文件的行数等于进程数,每行包含 4 个整数
int bufsize, count;
int *buf;
MPI::Status status;
MPI::File top = MPI::File::Open(MPI::COMM_WORLD, "top.txt", MPI::MODE_RDONLY, MPI::INFO_NULL);
MPI::Offset filesize = top.Get_size();
filesize = filesize / sizeof(int);
bufsize = filesize / wasteland_size + 1;
buf = new int[bufsize * sizeof(int)];
top.Set_view(my_rank * bufsize * sizeof(int), MPI_INT, MPI_INT, "native", MPI::INFO_NULL);
top.Read(buf, bufsize, MPI_INT, status);
count = status.Get_count(MPI_INT);
top.Close();
这是我正在使用的代码。
它编译时没有错误或警告,但会输出一些内容:
540287025 874524723 805969974 857748000
对于每个过程。