Skip to content

Commit

Permalink
fixed docs
Browse files Browse the repository at this point in the history
  • Loading branch information
edhartnett committed Apr 30, 2019
1 parent 7d33589 commit 4e1897e
Showing 1 changed file with 34 additions and 6 deletions.
40 changes: 34 additions & 6 deletions doc/source/GettingStarted.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,21 +20,49 @@

/*! \page intro Introduction

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 <a href=http://www.unidata.ucar.edu/software/netcdf/docs/html_guide/index.html#user_guide> netcdf </a> and <a href=http://trac.mcs.anl.gov/projects/parallel-netcdf> pnetcdf </a>.
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 <a
href=http://www.unidata.ucar.edu/software/netcdf/docs/html_guide/index.html#user_guide>
netcdf </a> and <a
href=http://trac.mcs.anl.gov/projects/parallel-netcdf> pnetcdf </a>.

Basic description of how to optimize IO in a parallel environment...

PIO calls are collective. A MPI communicator is set in a call to \ref PIO_init and all tasks associated with that communicator must participate in all subsequent calls to PIO. An application can make multiple calls to \ref PIO_init in order to support multiple MPI communicators.
PIO calls are collective. A MPI communicator is set in a call to \ref
PIO_init and all tasks associated with that communicator must
participate in all subsequent calls to PIO. An application can make
multiple calls to \ref PIO_init in order to support multiple MPI
communicators.

Begin by checking out a copy from [gitHub](https://github.com/PARALLELIO/ParallelIO) and installing on your system as per the instructions in the [Installation](@ref install) document. Take a look at examples of PIO usage in both complex and simple test programs in the [Examples](@ref examp) document. Finally, read through the [FAQ](@ref faq) to see if any remaining questions can be answered.
Begin by getting and unpacking the most recent release of PIO from
[gitHub](https://github.com/PARALLELIO/ParallelIO/releases) and
installing on your system as per the instructions in the
[Installation](@ref install) document. Take a look at examples of PIO
usage in both complex and simple test programs in the [Examples](@ref
examp) document. Finally, read through the [FAQ](@ref faq) to see if
any remaining questions can be answered.

### Using PIO has three basic steps. ###

1. Your program should call the \ref 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.
1. Your program should call the \ref 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 \ref PIO_createfile or \ref 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.
2. You can open a file for reading or writing with a call to \ref
PIO_createfile or \ref 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 \ref 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?)
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 \ref 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.


*/

0 comments on commit 4e1897e

Please sign in to comment.