EN
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

并行IO

原理

并行IO可以使多个进程同时进行IO操作,在HPC应用中有大量的IO操作,并行IO能够提高程序运行速度。并行IO有三种模式:

  • 只有一个进程读写

    一个进程(P0)将文件中的所有数据读入自己的缓冲区(buffer),然后用MPI发送接收函数将大部分数据传递给其他进程。计算结束后,其他进程将计算结果传给进程P0P0负责将所有数据结果写到文件。这个模式下负责读写文件的进程是性能瓶颈,读写带宽受限于P0所在计算服务器的网络带宽、存储系统的单进程性能上限。

  • 多个进程分别读写

    每个进程只操作自己的文件 ,彼此间不协调,相互独立。这种模式既能同时使用计算服务器的多个网络通道,又能发挥并行存储系统的多客户端接入能力。缺点是供读取的源数据文件可能没有进程数量多,造成负载不均,输出的文件数据太多,后续处理困难。

  • 个进程读写同一个文件

    多个进程相互配合,避免无用操作。该模式下需要每个进程计算文件偏移指针,避免数据冲突。这种模式下并行IO性能可能达到最好。

修改方式

并行IO有四种接口:POSIX I/O,MPI I/O,HDF5 I/O,NetCDF-4 I/O(parallel-netcdf),需要根据HPC应用支持的并行IO进行对应修改。这里以parallel-netcdf为例,parallel-netcdf是一个使用MPI-IO和一个定制版本的NETCDF API来实现高性能I/O的库,可以通过启用parallel-netcdf库来提升IO性能,常应用于气象、海洋、环境等领域。

修改步骤如下:

  1. 下载安装parallel-netcdf,方法参考链接:https://github.com/Parallel-NetCDF/PnetCDF
  2. 执行以下命令设置PNETCDF环境变量。
    1
    2
    export PATH=/path/to/PNETCDF/bin:$PATH
    export LD_LIBRARY_PATH=/path/to/PNETCDF/lib:$LD_LIBRARY_PATH
    
  3. 编译应用软件时通过设置CPPFLAGS和LDFLAGS将PNETCDF链接到应用软件。
    1
    2
    3
    export PNETCDF=/path/to/PNETCDF
    export CPPFLAGS="-I$PNETCDF/include"
    export LDFLAGS="-L$PNETCDF/lib -lpnetcdf"
    
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词