我正在尝试读取群集环境中的输入文件。不同的节点将读取它的不同部分。然而这些部分并没有明确的分离,而是交错在一个“网格”中。集群节点需要读取输入文件的不同部分 - 如何组织它?
例如,具有16个元件(假设整数)的文件:
0 1 2 3
4 5 6 7
8 9 A B
C D E F
如果使用四个节点,第一节点会读取左上角的2×2平方(0,1,4,5
),第二个节点将读取的右上2x2平方等。
我该如何处理?我可以使用MPI或OpenMP。我有两个想法,但我不知道哪个更好:
每个节点都会打开文件并拥有自己的句柄。每个节点将独立读取文件,仅使用所需文件的一部分,并跳过其余部分。在这种情况下,使用
fopen
或MPI_File_open
会有什么区别?哪一个会更好?使用一个节点读取整个文件并将输入的每个部分发送到需要它的节点。