SCORPIO  1.7.0
Introduction

SCORPIO 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, PnetCDF and ADIOS.

SCORPIO 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.

Using SCORPIO has three basic steps.

  1. Your program should call the PIO_init function, and provide the MPI communicator (and the rank within that communicator) of the calling task. This call initializes an IO system type structure that will be used in subsequent file and decomposition functions.
  2. You can open a file for reading or writing with a call to PIO_createfile or PIO_openfile. In this call you will specify the file type: pio_iotype_netcdf, pio_iotype_pnetcdf, pio_iotype_netcdf4c or pio_iotype_netcdf4p; along with the file name and optionally the netcdf mode.
  3. Finally, you can read or write decomposed data to the output file. You must describe the mapping between the organization of data in the file and that same data in the application space. This is done in a call to PIO_initdecomp. In the simplest call to this function, a one dimensional integer array is passed from each task, the values in the array represent the offset from the beginning of the array on file. (what happens next?)