中文
注册

并行IO调优

原理

MPI程序读写文件有三种模式。

  • 只用1个进程读写:一个进程(P0)将文件中的所有数据读入自己的缓冲区(buffer),然后用MPI发送接收函数将大部分数据传递给其他进程。计算结束后,其他进程将计算结果传给进程P0,P0负责将所有数据结果写到文件。这个模式下负责读写文件的进程是性能瓶颈,读写带宽受限于P0所在计算服务器的网络带宽、存储系统的单进程性能上限。
  • 多个进程分别读写:每个进程只操作自己的文件 ,彼此间不协调,相互独立。这种模式既能同时使用计算服务器的多个网络通道,又能发挥并行存储系统的多客户端接入能力。缺点是供读取的源数据文件可能没有进程数量多,造成负载不均,输出的文件数据太多,后续处理困难。
  • 多个进程读写同一个文件:多个进程相互配合,避免无用操作。这种模式下MPI并行IO性能有望达到最好。

Parallel-NetCDF是一个使用MPI-IO和一个定制版本的NETCDF API来实现高性能I/O的库。如果应用程序支持Parallel-netcdf库,那么可以通过启用Parallel-netcdf库来提升IO性能。气象、海洋、环境领域的应用有可能可以使用到,如流行的WRF气象模式应用。

同样HDF5库也可以在编译时启用并行模式,对于支持HDF5并行接口的应用也可以带来性能提升。

使用方法

  1. 执行以下命令安装PNETCDF。
    tar -xvf parallel-netcdf-1.9.0.tar.bz2
    cd parallel-netcdf-1.9.0
    mkdir -p /path/to/PNETCDF
    ./configure --prefix=/path/to/PNETCDF --build=aarch64-unknown-linux-gnu CFLAGS="-fPIC -DPIC" CXXFLAGS="-fPIC -DPIC" FCFLAGS="-fPIC" FFLAGS="-fPIC"
    make -j 16
    make install
  2. 执行以下命令设置PNETCDF环境变量。
    export PATH=/path/to/PNETCDF/bin:$PATH
    export LD_LIBRARY_PATH=/path/to/PNETCDF/lib:$LD_LIBRARY_PATH
  3. 编译应用软件时通过设置CPPFLAGS和LDFLAGS将PNETCDF链接到应用软件。
    export PNETCDF=/path/to/PNETCDF
    export CPPFLAGS="-I$PNETCDF/include"
    export LDFLAGS="-L$PNETCDF/lib -lpnetcdf"
搜索结果
找到“0”个结果

当前产品无相关内容

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