首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将并行I/O与netCDF-4结合使用?

如何将并行I/O与netCDF-4结合使用?
EN

Stack Overflow用户
提问于 2013-10-11 14:41:21
回答 4查看 1.8K关注 0票数 1

我想从R.中的一个netCDF-4文件中读写该文件,该文件将同时被多个节点进程访问(~100用于开发,~1000用于生产)。

从R内部访问netCDF中的并行I/O特性的最佳方法是什么?

我所发现的:

  • 从Unidata页面上看,我所需要做的就是使用启用的并行特性(--enable-parallel)进行编译。这真的是我要做的?
  • 我在ncdf4包描述中找不到任何提到并行io的地方。
  • 考虑到I/O是我计算中的瓶颈,任何关于如何优化我的计算的提示--在什么情况下最好在计算过程中写入多个文件(例如本地文件),然后将文件合并(例如使用nco)?
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-10-11 22:20:31

有关在Unidata NetCDF中使用并行I/O的信息可以在这里找到:

io.html

配置--enable-parallel时不再需要netCDF标志;它将检查文档并在需要时更新它。然而,在构建hdf5库时,该标志是必要的。

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

  • 如果它们是,则假定netcfd-4并行I/O。
  • 如果它们不是,则关闭netCDF-4文件的并行I/O。

如果您自己正在安装netCDF库,则可以在配置时指定--enable-parallel-tests标志;当您运行make check时,将运行并行测试。您还可以扫描config.log中的输出,以查看是否在hdf5库中找到并行I/O功能;应该有一条消息通知您是否启用了它。

请注意,netCDF-4的并行I/O有一些限制,特别是:

NetCDF-4提供了访问netcfd-4/ HDF5 5文件的HDF5并行I/O功能。NetCDF经典和64位偏移格式不能打开或创建用于并行I/O (它们可以打开和创建,但并行I/O是不可用的)。

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

票数 4
EN

Stack Overflow用户

发布于 2017-01-02 19:50:27

还有一个专用于并行处理NetCDF文件的R包,称为pbdNCDF4。

该解决方案基于标准的ncdf4包,因此语法非常类似于“传统”方法。关于CRAN的更多信息:https://cran.r-project.org/web/packages/pbdNCDF4/vignettes/pbdNCDF4-guide.pdf

票数 2
EN

Stack Overflow用户

发布于 2015-02-23 15:54:48

沃德回答得很好。我想补充的是,还有另一种方法可以从UnidataNetCDF-4中获得并行I/O功能。

NetCDF-4有一个将API与后端存储实现分开的体系结构。通常,这是NetCDF后端的HDF5 API。但是,这里有一件很好的事情:您也可以在西北/阿贡的“Parallel”(http://cucis.ece.northwestern.edu/projects/PnetCDF/http://www.mcs.anl.gov/parallel-netcdf)后端上使用http://www.mcs.anl.gov/parallel-netcdf API。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19320942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档