使用 MPI 分析大型数据文件

Analyzing large data file with MPI

提问人:Zesty Physicist 提问时间:11/2/2023 更新时间:11/2/2023 访问量:13

问:

我有一个大文件,其中包含大小相等的规则间隔数据集。我需要对每个运行一些分析,这很慢,所以我想使用 MPI(我可以访问计算集群)来拆分内容。

有没有一种好方法可以将数据集分配给不同的进程?基本上,我假设我需要通读文件,每次遇到新集合时,我都会将该数据交给新进程。不过有两个问题。有多达 10,000 个数据集,我可能仅限于 5-10 个左右的进程。我还想按照与原始数据集相同的顺序写入分析的数据。请注意,不同的进程不需要进行太多通信 - 它们只需要同步,以便它们以正确的顺序写入分析的数据。

如果您想了解更多细节,数据集是系统的配置(粒子的 x,y 坐标),并按时间排序。分析的数据应为相同的按时间排序的 x,y 坐标,但也应包含额外的列。

我是 MPI 的新手,如果我的问题已经得到回答,或者这是错误的论坛,我深表歉意。我搜索了一会儿,找不到任何有帮助的东西。

按照我最初编写 MPI 脚本的方式,单独的进程都分析了所有数据集。显然,我想对分析进行划分,以便每个进程只处理一些数据集。

MPI的

评论

0赞 Victor Eijkhout 11/2/2023
如果数据集的大小是事先已知的,那么 MPI I/O 非常合适。如果没有,那么您必须在文件中查找;你可能想要一个经理流程和一群工人。
0赞 Zesty Physicist 11/2/2023
凉。我将进入 MPI I/O。每个的大小是 20002 行,所以我确切地知道每个行的开始和结束位置。
1赞 Victor Eijkhout 11/2/2023
这很容易:当您可以为每个进程定义文件的各个部分时,MPI I/O 非常有用。这些可以是连续的,甚至可以是交错的。

答: 暂无答案