Version 2.3.1
The PIO team is pleased to release version 2.3.1 of the PIO library. This release includes a build system improvements, performance improvements, bug fixes, and more tests.
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
PIO uses an internal buffer for data written/read through the darray functions. In this release, the size of this buffer was increased from 10 MB to 100 MB. The buffer size may now also be set by the user in either the CMake or autotools build with the PIO_BUFFER_SIZE parameter.
Autotools Build System Improvements
The autotools build system is independant from the CMake build system. It builds and tests the C library only. Fortran users should continue to use the CMake build system.
In this release the autotools build system was improved:
- Supports setting the PIO_BUFFER_SIZE parameter.
- Supports turning logging on/off (off by default).
Bug fixes
- More reasonable maxblock value.
- Limit to 2GiB due to romio bug.
More Tests
This release includes more testing of async functionality, including tests with more than one computation component.
Required Libraries
This release requires:
- netcdf-4.4.1 or newer.
- pnetcdf-1.8.1 or newer (unless PIO is built without pnetcdf support).