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