The PIO Library distribution contains a testpio subdirectory with a number of programs to test the PIO library. Please see the Examples page for details.
+The PIO Library distribution contains tests for PIO. They are run my 'make check'. The tests use mpiexec to run tests on 4, 8, or 16 processors.
The Parallel I/O (PIO) library has been developed over several years to improve the ability of component models of the Community Earth System Model (CESM) to perform I/O. We believe that the interface is sufficiently general to be useful to a broader spectrum of applications. The focus of development has been on backend tools that use the NetCDF file format. PIO currently supports NetCDF and PnetCDF as backend libraries, both can be linked and used with runtime options controlling which is used for a given file.
-PIO2 represents a significant rewrite of the PIO library and includes a C API as well as the original F90 API. A new decomposition strategy has been introduced which gives the user more ability to tune io communications.
-This user's guide provides information about the PIO library and examples on how it can be used. Please review the ChangeLog that is included with the distribution for up-to-date release information.
+The Parallel IO libraries (PIO) are high-level parallel I/O C and Fortran libraries 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.
+This user's guide provides information about the PIO library and examples on how it can be used. Please watch the PIO GitHub site [https://github.com/NCAR/ParallelIO] for announcements and new releases.
The PIO code is currently stored on github at https://github.com/PARALLELIO/ParallelIO. For questions about downloading or developing this code, consult the CIME Git Wiki or email jedwa. rds@ ucar. edu
PIO can use NetCDF (version 4.3.3+) and/or PnetCDF (version 1.6.1+) for I/O. Ideally, the NetCDF version should be built with MPI, which requires that it be linked with an MPI-enabled version of HDF5. Optionally, NetCDF can be built with DAP support, which introduces a dependency on CURL. Additionally, HDF5, itself, introduces dependencies on LIBZ and (optionally) SZIP.
+PIO can use NetCDF (version 4.6.1+) and/or PnetCDF (version 1.9.0+) for I/O. Ideally, the NetCDF version should be built with MPI, which requires that it be linked with an MPI-enabled version of HDF5. Optionally, NetCDF can be built with DAP support, which introduces a dependency on CURL. Additionally, HDF5, itself, introduces dependencies on LIBZ and (optionally) SZIP.
To configure the build, PIO requires CMake version 2.8.12+. The typical configuration with CMake can be done as follows:
> CC=mpicc FC=mpif90 cmake [-DOPTION1=value1 -DOPTION2=value2 ...] /path/to/pio/source @@ -110,7 +110,7 @@Examples
PIO is a software interface layer designed to encapsolate the complexities of parallel IO and make it easier to replace the lower level software backend. It currently supports netcdf and pnetcdf .
Basic description of how to optimize IO in a parallel environment...
-PIO calls are collective. A MPI communicator is set in a call to PIO_init and all tasks associated with that communicator must participate in all subsequent calls to PIO. An application can make multiple calls to PIO_init in order to support multiple MPI communicators.
-Begin by checking out a copy from gitHub and installing on your system as per the instructions in the Installation document. Take a look at examples of PIO usage in both complex and simple test programs in the Examples document. Finally, read through the FAQ to see if any remaining questions can be answered.
+PIO calls are collective. A MPI communicator is set in a call to PIO_init and all tasks associated with that communicator must participate in all subsequent calls to PIO. An application can make multiple calls to PIO_init() in order to support multiple MPI communicators.
+Begin by getting and unpacking the most recent release of PIO from gitHub and installing on your system as per the instructions in the Installation document. Take a look at examples of PIO usage in both complex and simple test programs in the [Examples](Examples) document. Finally, read through the FAQ to see if any remaining questions can be answered.