Netcdf
NetCDF(Network Common Data Form)是一种用于存储科学数据的文件格式和软件库。它是一种自描述、可移植且可扩展的数据格式,广泛应用于气象学、海洋学、地球科学和其他领域的科学研究。
NetCDF文件以二进制形式存储,结构化为变量、维度和属性的集合。每个变量可以具有多个维度,例如时间、空间坐标和其他自定义维度。每个维度都具有一个名称和长度,用于定义数据的形状。变量存储实际的科学数据,可以是标量、数组或更复杂的数据结构。属性是与文件、变量或维度相关联的元数据,用于存储描述性信息,如单位、缺失值和数据源。NetCDF提供了一组用于读取、写入和操作NetCDF文件的软件库和工具。这些库和工具支持多种编程语言,如C、C++、Python和Java,使科学家能够方便地处理和分析NetCDF数据。用户可以使用这些库来读取和写入NetCDF文件,提取特定的变量和维度,进行数据切片、重采样和统计分析等操作。
NetCDF的一个重要特点是其自描述性和可扩展性。数据文件中的元数据允许科学家描述数据的含义和结构,使得数据在不同的环境中能够被理解和使用。同时,NetCDF文件可以包含多个数据集,允许科学家将相关的数据组织在一起。
Pnetcdf
PnetCDF 项目于 2001 年启动,独立于 Unidata 的 NetCDF 项目。应用程序可以完全使用PnetCDF库,而无需NetCDF库。 PnetCDF 的最初目标是开发一个并行 I/O 库,供应用程序在并行计算机上访问 CDF-1 和 2 格式。其重点是实现高 I/O 性能。由于其实现与 MPI 紧密耦合,该设计采用了一组新的 API(前缀名称为“ncmpi_”)。为了鼓励 NetCDF 用户采用,PnetCDF API 的语法与 NetCDF 的语法基本相同。通过充分利用 MPI-IO 实现中现有的优化,PnetCDF 已被证明能够提供高性能并行 I/O。
PnetCDF 是一个高性能并行 I/O 库,用于访问 Unidata 的 NetCDF经典格式文件,特别是 CDF-1、2 和 5 格式。CDF-1 是默认的 NetCDF 经典格式。 CDF-2 是通过使用标志 NC_64BIT_OFFSET 创建的扩展格式,以支持 64 位文件偏移量。 CDF-5 文件格式是 CDF-2 的扩展,通过使用标志 NC_64BIT_DATA 创建,支持无符号数据类型并使用 64 位整数,允许用户定义大维度、属性和变量(> 2B 数组元素)。除了传统的 netCDF 读写 API 之外,PnetCDF 还提供了一组新的非阻塞 API。非阻塞API允许用户首先发出多个读写请求,并让PnetCDF将它们聚合成一个大请求,从而获得更好的性能。
下载
https://parallel-netcdf.github.io/wiki/Download.html
选择合适的版本下载,最新版本是1.13.0,谁能拒绝新版本尝鲜呢。
github:https://github.com/Parallel-NetCDF/PnetCDF
官网:https://parallel-netcdf.github.io/
编译安装
autoreconf -i
export PATH=/home/mpich-install/bin:$PATH
export LD_LIBRARY_PATH=/home/mpich-install/lib:$LD_LIBRARY_PATH
./configure --prefix=/home/fakerth/pnetcdf
make && make install
autoconf与automake升级
由于机器的原因,autoconf与automake并没有满足pnetcdf的最低要求。autoconf要求版本2.70以上,automake要求版本1.16.5以上。吸取教训,共享环境自己用还是设置安装路径,使用的时候添加环境变量。
1.autoconf
http://ftp.gnu.org/gnu/autoconf/
./configure --prefix=/home/fakerth/autoconf
make && make install
2.automake
http://ftp.gnu.org/gnu/automake/
./configure --prefix=/home/fakerth/automake
make && make install