小编har*_*dkl的帖子

Fortran中的动态哈希数据结构

Fortran中是否有可用的库,它允许使用除Judy数组之外的稀疏动态数组(哈希/字典)?

fortran data-structures

10
推荐指数
2
解决办法
4356
查看次数

使用集体MPI-IO读取和写入大文件的最佳方法

我想使用MPI-IO在Fortran中读写大型数据集.我首选的方法是使用MPI_type_create_subarray定义的MPI类型和单个维度来描述文件的每个进程的视图.因此,我的Fortran代码如下所示:

  ! A contiguous type to describe the vector per element.
  ! MPI_TYPE_CONTIGUOUS(COUNT, OLDTYPE, NEWTYPE, IERROR)
  call MPI_Type_contiguous(nComponents, rk_mpi, &
    &                      me%vectype, iError)
  call MPI_Type_commit( me%vectype, iError )

  ! A subarray to describe the view of this process on the file.
  ! MPI_TYPE_CREATE_SUBARRAY(ndims, array_of_sizes, array_of_subsizes,
  !                          array_of_starts, order, oldtype, newtype, ierror)
  call MPI_Type_create_subarray( 1, [ globElems ], [ locElems ], &
    &                           [ elemOff ], MPI_ORDER_FORTRAN, &
    &                           me%vectype, me%ftype, iError)
Run Code Online (Sandbox Code Playgroud)

但是,描述全局量的array_of_sizes和array_of_starts只是MPI接口中的"正常"整数.因此,采用这种方法,约有20亿个元素存在限制.是否有另一个接口,它使用MPI_OFFSET_KIND来表示这些全局值?到目前为止,解决此问题的唯一方法是使用MPI_File_set_view中的置换选项,而不是在子阵列MPI类型的帮助下定义视图.然而,这"感觉"错了.您是否期望对集体IO的任何一种方法都会产生性能影响?有人知道,如果这个界面在MPI-3中有变化吗?也许我应该使用其他一些MPI类型?

这里有什么建议的解决方案可以有效地将具有集合IO的大型数据文件并行写入磁盘?

io fortran mpi

5
推荐指数
1
解决办法
1245
查看次数

标签 统计

fortran ×2

data-structures ×1

io ×1

mpi ×1