问题标签 [mpi-io]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 使用 MPI_File_write_at 格式化输出?
我正在尝试使用 MPI 编写并行 IO 程序,我需要将数据写入文件,格式为:02 03 04
在文件中而不是2 3 4
.
将是我正在尝试做的串行对应物。我环顾四周,但到目前为止找不到任何答案。关于我如何解决这个问题的任何想法?
fortran - 如何使用 MPI-IO 在单个格式化(可读)文件中使用 MPI 进行绘图
我在 fortran-90 框架中使用 MPI。
我想在一个文件中写入从不同处理器计算的所有数据。我还想以可读格式而不是二进制格式写入数据。此时此刻,在我的程序中,每个处理器编写一个不同的文件。因此,我有另一个后处理程序来读取文件以创建单个文件。
在这里,具体问题:
1) 可以使用 MPI-IO 选项编写格式化文件吗?
2)我可以在哪里学习?
在此先感谢您,
此致
mpi - 同步 MPI 共享文件指针
是否有同步 MPI 共享文件指针的标准方法,以便MPI_File_get_position_shared
在所有进程上返回相同的值?
例如下面的程序:
将打印
如果我MPI_File_sync(fh)
用MPI_Barrier(MPI_COMM_WORLD)
: 替换它确实有效,可以保证正常工作吗?
io - Fortran 流访问与 MPI-IO 的效率
我有一段代码的并行部分,我在块中写出 n 个大型数组(代表一个数字网格),然后在不同大小的块中读取。为此,我使用了 Stream 访问,因此每个处理器独立写入其块,但在本节测试 2 个处理器组时,我发现时间不一致,耗时 0.5-4 秒。
我知道你可以用 MPI-IO 做类似的事情,但我不确定有什么好处,因为不需要同步。我想知道是否有办法提高我的写入性能,或者 MPI-IO 是否有理由成为本节的更好选择。
这是代码部分的示例,我在其中创建文件以norb
使用两组(mygroup
= 0 或 1] 写入数组:
c++ - MPI_File_write_at :两次写入相同的结构会导致二进制文件中的数据块略有不同
我有以下简单的 MPI 代码:
运行和编译
所以在上面的代码中,我基本上想两次写入同一个文件。每次来自不同的过程。数据是格式为 int、double、double 的结构体,因此 4+8+8=20 字节的数据。我们有该结构的两个对象,但都使用相同的值初始化。因此,我们将两个 20 字节的数据块写入文件 test.bin,我希望在二进制表示中看到这种“对称性”,但我得到:(我提供了两个不同 cli 工具的两个不同输出。)
现在,如果我们查看 xxd 的输出,我们会看到:
前 20 个字节:
- 整数:0100 0000
- 双倍:fe7f 0000 0000 0000
- 双倍:0000 e03f 0000 e03f
第二个 20 字节:
- 整数:0100 0000
- 双倍:ff7f 0000 0000 0000
- 双倍:0000 e03f 0000 0000
现在基本上,我不完全确定为什么这里的双打不同。
mpi - MPI 使用 MPI_Type_create_subarray 读取文件
我想使用 MPIMPI_File_read_all
读取input.txt
包含二进制整数的文件0,1,2,...,1000
。
在我的实现中,我使用从 10*10 数组MPI_Type_create_subarray
中创建一个 5*5 子数组。mysub
希望从文件中读取以下矩阵。
但是我的程序改为读取以下整数(也会导致程序最后阶段的分段错误):
这是我的代码
input - MPI 读取简单的数据框或 txt 文件
我有这个数据框:
我想是否可以使用 MPI I/O 范例来阅读它。
特别是,我想根据处理器的数量来划分行。假设你有 4 个处理器。我希望每个处理器读取两行:处理器 0,第 1,2 行;处理器 1,第 3,4 行;等等。
我研究了一些材料。据我所知,我必须做一种偏移并将文件写在一行中。另一种可能性是使用与子网格相关的东西。
但是,正如您所注意到的,每一行都有不同类型的变量。
你们有人可以给胶水吗?到目前为止,我发现的有关 MPI I/O 的内容非常理论化,没有实际示例。
谢谢,迭戈
fortran - 这个使用 MPI-IO set_view 和 write_all 的示例有什么问题?
当我尝试构建一个简单的数组并使用 MPIIO 写入输出文件时,输出文件非常大且不正确。简单数组“buff”为 2 * 3,每个元素都等于 1。我首先创建了 1 * 1 的子数组文件类型,然后创建了一个新的输出文件“out.dat”。我使用 set_view 函数和 write_all 来编写这个 buff 数组。我编译它并使用 6 个内核运行它,以便一个内核编写一个元素。我希望我能得到一个“out.dat”和一个值为 1 的 2*3 数组。
我成功编译运行这段代码,结果都是0,而且体积很大。
结束程序测试
multiprocessing - MPI_IO write_all 子数组和组件号
我正在尝试使用 MPI_SET_VIEW 和 MPI_WRITE_ALL 编写一个 4 * 4 数组。xx 是一个 4 * 4 数组,我希望此代码为 xx = (0,1,2,3; 0,1,2,3; 0,1,2,3; 0,1,2,3)。globle_size 和 local_size 等于 4 和 2。我首先创建了一个子数组 2 * 2 文件类型,因此我将这个 4 * 4 数组分成 4 个部分,即 2 * 2。然后我设置了这个文件类型的视图,并且写xx。结果应该等于 (0,1,2,3; 0,1,2,3; 0,1,2,3; 0,1,2,3),但事实并非如此。结果有些是对的,有些是错的。
1 当我做 j=ls2,le2, i = ls1,le1, xx(i,j)=i 时,数组 xx() 是 4*4 数组还是 2*2 数组?ls1=ls2=0,le1=le2=1。
2 对于 MPI_WRITE_ALL,我应该使用 4 * 4 数组还是 2 * 2 数组?我应该算什么?1 还是 4?
3 对于 MPI_WRITE_ALL,我应该使用文件类型作为类型样式吗?
multiprocessing - MPI-IO MPI_INTEGER 和 MPI_DOUBLE_PRECISION 给出不同的结果
下面的问题是使用 mpiio 写一个 4 * 4 buff 数组。我使用 4 个核心,所以子数组应该是 2 * 2。问题是,当我将 buff 设置为 integer(2,2),并将所有 MPI_DOUBLE_PRECISION 设置为 MPI_INTEGER 时,代码运行良好。但是,MPI_DOUBLE_PRECISION 给出了错误的结果。这很奇怪,因为我认为设置 buff 数组时没有错误。