Version 2.4.1
The PIO team is pleased to release version 2.4.1 of the PIO library. This release includes performance improvements, bug fixes, and more tests. Get the latest release from the PIO GitHub site: https://github.com/NCAR/ParallelIO.
What is PIO?
The Parallel IO library (PIO) is a high-level parallel I/O C/Fortran library for structured grid applications. PIO provides a netCDF-like API, and allows users to designate some subset of processors to perform IO. Computational code calls netCDF-like functions to read and write data, and PIO uses the IO processors to perform all necessary IO.
PIO also supports the creation of multiple computation components, each containing many processors, and one shared set of IO processors. The computational components can perform write operation asynchronously, and the IO processors will take care of all storage interaction.
See the PIO web site for more information: http://ncar.github.io/ParallelIO/
New This Release
Performance Improvements
This release contains the following performance improvements:
- Linked list were replaced with hashtables for improved performance scaling.
- The sorting algorithm for out of order dofs was replaced with qsort.
Bug fixes
- Fixed over-sensitive testing of error messages in test_pioc. This tests have been made less sensitive so that they work with all recent versions of netCDF and parallel-netcdf.
More Tests
With this release we being using travis/GitHub for additional continuous integration testing, adding to our existing CI systems.
Required Libraries
We recommend always using the latest releases of netCDF and pnetcdf.
This release requires:
- netcdf-4.6.0 or newer.
- pnetcdf-1.9.0 or newer (unless PIO is built without pnetcdf support).
- If netCDF is built with HDF5 support, then HDF5-1.10.4 is required. Previous versions of HDF5 have a bug in parallel collective I/O which is triggered by a PIO unit test.