The PIO team is pleased to release version 2.5.2 of the PIO library. This
release includes enhanced netCDF integration, new API functions,
documentation improvements, bug fixes, and more tests. Get the latest
release from:
https://github.com/NCAR/ParallelIO/releases/download/pio2_5_2/pio-2.5.2.tar.gz
See https://ncar.github.io/ParallelIO/ for documentation.
What is PIO?
The Parallel IO libraries (PIO) are high-level parallel I/O C and Fortran
libraries for applications that need to do netCDF I/O from large numbers of
processors on a HPC system.
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
- Fix for bug appending to an existing file with PIO. (See #1670
<https://github.com/NCAR/ParallelIO/issues/1670>)
- Testing on GitHub actions. (See #1675
<https://github.com/NCAR/ParallelIO/issues/1675>)
- Inclusion of a build summary for autotools and cmake builds, and a
pio_meta.h file which contains info about the PIO build. (See #1658
<https://github.com/NCAR/ParallelIO/issues/1658>)
- Starting with netcdf-c-4.7.4 and HDF5-1.10.4, zlib compression may be
used with the NETCDF4P IOTYPE (that is, with parallel I/O netCDF/HDF5
files). (See #1642 <https://github.com/NCAR/ParallelIO/issues/1642>).
- Fixes for Fortran API functions
PIO_def_var_chunking/PIO_inq_var_chunking. (See #1740
<https://github.com/NCAR/ParallelIO/issues/1740> and #1739
<https://github.com/NCAR/ParallelIO/issues/1739>).
- Clean up handling of pre-processor defines, especially in CMake build.
(See #1721 <https://github.com/NCAR/ParallelIO/issues/1721> and #1686
<https://github.com/NCAR/ParallelIO/issues/1686>).
- Added --with-mpiexec option to configure (and WITH_MPIEXEC to CMake)
to allow user to set mpiexec command used in testing. This is useful on
openmpi, which requires the --oversubscribe argument. (See #1732
<https://github.com/NCAR/ParallelIO/issues/1732>)
- We started using GitHub actions for testing, and testing with OpenMPI.
(See #1675 <https://github.com/NCAR/ParallelIO/issues/1675> and #906
<https://github.com/NCAR/ParallelIO/issues/906>)
- Improvements to the Fortran documentation. (See #1745
<https://github.com/NCAR/ParallelIO/issues/1745>).
- Removed obsolete and no longer used bget memory optimization code.
(See #1371 <https://github.com/NCAR/ParallelIO/issues/1371>).
Required Libraries
We recommend always using the latest releases of netCDF and pnetcdf.
This release requires:
- netcdf-4.6.1 or newer. 4.7.3 or newer is required if
--enable-netcdf-integration is used.
- 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 or newer is
required. Previous versions of HDF5 have a bug in parallel collective I/O
which is triggered by a PIO unit test.