我想从R.中的一个netCDF-4文件中读写该文件,该文件将同时被多个节点进程访问(~100用于开发,~1000用于生产)。
从R内部访问netCDF中的并行I/O特性的最佳方法是什么?
我所发现的:
--enable-parallel)进行编译。这真的是我要做的?发布于 2013-10-11 22:20:31
有关在Unidata NetCDF中使用并行I/O的信息可以在这里找到:
配置--enable-parallel时不再需要netCDF标志;它将检查文档并在需要时更新它。然而,在构建hdf5库时,该标志是必要的。
为了在netCDF-4中使用并行I/O,您需要确保它是针对启用并行I/O的hdf5库构建的。在配置时,netCDF将查询hdf5库以查看是否存在并行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。
发布于 2017-01-02 19:50:27
还有一个专用于并行处理NetCDF文件的R包,称为pbdNCDF4。
该解决方案基于标准的ncdf4包,因此语法非常类似于“传统”方法。关于CRAN的更多信息:https://cran.r-project.org/web/packages/pbdNCDF4/vignettes/pbdNCDF4-guide.pdf
发布于 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位偏移量格式化数据集。
https://stackoverflow.com/questions/19320942
复制相似问题