R 如何将并行I/O与netCDF-4一起使用?

R 如何将并行I/O与netCDF-4一起使用?,r,io,parallel-processing,netcdf,nco,R,Io,Parallel Processing,Netcdf,Nco,我想从R中读取和写入一个netCDF-4文件。该文件将由多个节点进程同时访问(开发约100个,生产约1000个) 从R中访问netCDF中并行I/O功能的最佳方式是什么 我发现: 从Unidata页面可以看出,我所需要做的就是在启用并行功能的情况下编译(--enable parallel)。这真的是我需要做的全部吗 我在ncdf4包描述中找不到任何关于并行io的内容 考虑到I/O是我计算中的瓶颈,关于如何优化我的计算的任何提示-在计算过程中(例如,本地)写入多个文件并在以后合并文件(例如,使用

我想从R中读取和写入一个netCDF-4文件。该文件将由多个节点进程同时访问(开发约100个,生产约1000个)

从R中访问netCDF中并行I/O功能的最佳方式是什么

我发现:

  • 从Unidata页面可以看出,我所需要做的就是在启用并行功能的情况下编译(
    --enable parallel
    )。这真的是我需要做的全部吗
  • 我在ncdf4包描述中找不到任何关于并行io的内容
  • 考虑到I/O是我计算中的瓶颈,关于如何优化我的计算的任何提示-在计算过程中(例如,本地)写入多个文件并在以后合并文件(例如,使用)是否会更好

与Unidata NetCDF使用并行I/O相关的信息可在此处找到:

配置netCDF时不再需要启用并行标志;它将检查文档,并在需要时进行更新。但是,在构建
hdf5
库时,该标志是必需的

为了在netCDF-4中使用并行I/O,您需要确保它是根据启用并行I/O的hdf5库构建的。在配置时,netCDF将查询
hdf5
库以查看是否存在并行I/O符号

  • 如果是,则假定netCDF-4的并行I/O
  • 如果不是,则关闭netCDF-4文件的并行I/O
如果您自己安装netCDF库,则可以在配置时指定
--enable parallel tests
标志;当您运行
检查
时,将运行并行测试。您还可以扫描config.log中的输出,查看hdf5库中是否存在并行I/O功能;应该有一条消息通知您是否已启用

请注意,与netCDF-4并行I/O存在一些限制,具体而言:

NetCDF-4提供对NetCDF-4/HDF5文件的HDF5并行I/O功能的访问。NetCDF classic和64位偏移量格式可能无法打开或创建以用于并行I/O。(可以打开和创建它们,但并行I/O不可用。)


假设底层netCDF库已启用并行I/O,并且您正在对正确类型的文件进行操作,则ncdf4调用的标准API调用应自动利用并行I/O。

与Unidata netCDF使用并行I/O相关的信息可在此处找到:

配置netCDF时不再需要启用并行
标志;它将检查文档,并在需要时进行更新。但是,在构建
hdf5
库时,该标志是必需的

为了在netCDF-4中使用并行I/O,您需要确保它是根据启用并行I/O的hdf5库构建的。在配置时,netCDF将查询
hdf5
库以查看是否存在并行I/O符号

  • 如果是,则假定netCDF-4的并行I/O
  • 如果不是,则关闭netCDF-4文件的并行I/O
如果您自己安装netCDF库,则可以在配置时指定
--enable parallel tests
标志;当您运行
检查
时,将运行并行测试。您还可以扫描config.log中的输出,查看hdf5库中是否存在并行I/O功能;应该有一条消息通知您是否已启用

请注意,与netCDF-4并行I/O存在一些限制,具体而言:

NetCDF-4提供对NetCDF-4/HDF5文件的HDF5并行I/O功能的访问。NetCDF classic和64位偏移量格式可能无法打开或创建以用于并行I/O。(可以打开和创建它们,但并行I/O不可用。)


假设底层netCDF库启用了并行I/O,并且您正在对正确类型的文件进行操作,ncdf4调用的标准API调用应该自动利用并行I/O。

Ward给出了一个很好的答案。我想补充的是,有另一种方法可以从Unidata NetCDF-4中获得并行I/O功能

NetCDF-4的体系结构将API与后端存储实现分离。通常,这是HDF5后端上的NetCDF API。但是,这里有一件巧妙的事情:您也可以在Northwestern/Argonne“并行NetCDF”(和)后端使用NetCDF API


这种方法将为您提供一种对经典数据集和64位偏移量格式数据集的并行I/O方法。

Ward给出了一个很好的答案。我想补充的是,有另一种方法可以从Unidata NetCDF-4中获得并行I/O功能

NetCDF-4的体系结构将API与后端存储实现分离。通常,这是HDF5后端上的NetCDF API。但是,这里有一件巧妙的事情:您也可以在Northwestern/Argonne“并行NetCDF”(和)后端使用NetCDF API


这种方法将为您提供一种对经典数据集和64位偏移量格式数据集的并行I/O方法。

Ward和Rob都给出了很好的答案!;-)

但是,还有另一种方法可以通过标准的netCDF API在经典文件和64位偏移量文件上获得并行I/O

当使用--enable pnetcdf构建netCDF时,并行netCDF库在后台用于对classic、64位偏移量和CDF5执行并行I/O(尽管我没有使用并行I/O测试最后一种格式)


打开文件时,使用模式的NC_PNETCDF标志指示您要对该文件使用并行I/O。

Ward和Rob都给出了很好的答案!;-)

但是,还有另一种方法可以通过标准的netCDF API在经典文件和64位偏移量文件上获得并行I/O

当netCDF在wi中构建时