diff --git a/doc/images/I_O_on_Few.png b/doc/images/I_O_on_Few.png new file mode 100644 index 00000000000..8909c4e1b6a Binary files /dev/null and b/doc/images/I_O_on_Few.png differ diff --git a/doc/images/I_O_on_Many_Async.png b/doc/images/I_O_on_Many_Async.png new file mode 100644 index 00000000000..aa32ad7863e Binary files /dev/null and b/doc/images/I_O_on_Many_Async.png differ diff --git a/doc/images/I_O_on_Many_Intracomm.png b/doc/images/I_O_on_Many_Intracomm.png new file mode 100644 index 00000000000..e48efad2c25 Binary files /dev/null and b/doc/images/I_O_on_Many_Intracomm.png differ diff --git a/doc/images/Makefile.am b/doc/images/Makefile.am index b4d8ec5e447..1ab0bd06f21 100644 --- a/doc/images/Makefile.am +++ b/doc/images/Makefile.am @@ -4,5 +4,6 @@ # These are the images used in the documentation. EXTRA_DIST = block-cyclic.png block-cyclic-rearr.png dof.png \ -dof-rearr.png PIO_Intercomm1.png PIO_Intracomm1.png \ -PIO_Library_Architecture1.jpg PIO_Decomposition.png +dof-rearr.png PIO_Intracomm1.png PIO_Library_Architecture1.jpg \ +PIO_Decomposition.png I_O_on_Few.png I_O_on_Many_Intracomm.png \ +I_O_on_Many_Async.png PIO_Async.png diff --git a/doc/images/PIO_Async.png b/doc/images/PIO_Async.png new file mode 100644 index 00000000000..60711639a1c Binary files /dev/null and b/doc/images/PIO_Async.png differ diff --git a/doc/images/PIO_Intercomm1.png b/doc/images/PIO_Intercomm1.png deleted file mode 100644 index accd27400a4..00000000000 Binary files a/doc/images/PIO_Intercomm1.png and /dev/null differ diff --git a/doc/source/Introduction.txt b/doc/source/Introduction.txt index a5f72b49d53..888c44a84f8 100644 --- a/doc/source/Introduction.txt +++ b/doc/source/Introduction.txt @@ -1,17 +1,54 @@ @tableofcontents -/** @page intro Introduction +/** @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 netcdf and pnetcdf . - -@image html PIO_Library_Architecture1.jpg +href=http://trac.mcs.anl.gov/projects/parallel-netcdf> pnetcdf to +read and write the netCDF files (see @ref install). -Basic description of how to optimize IO in a parallel environment: +## 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 diff --git a/doc/source/faq.txt b/doc/source/faq.txt index 34f9c3db88c..c3c4bca3368 100644 --- a/doc/source/faq.txt +++ b/doc/source/faq.txt @@ -1,16 +1,42 @@ /*! \page faq Frequently Asked Questions - Here is a list of frequently asked questions and their answers. +Here is a list of frequently asked questions and their answers. +
-
How do I specify which tasks perform IO?
-
This is done in the call to \ref PIO_init which has two interfaces: init_intracom and init_intercom. -
*/ diff --git a/doc/source/iosystem.txt b/doc/source/iosystem.txt index 830b60823e2..5acce7fc928 100644 --- a/doc/source/iosystem.txt +++ b/doc/source/iosystem.txt @@ -12,13 +12,13 @@ When the user program is complete, the IOSystem should be released by calling C function PIOc_finalize() or Fortran function piolib_mod::finalize() for each open IOSystem. -@section intercomm_mode Intercomm Mode +@section intracomm_mode Intracomm Mode -@image html PIO_Intercomm1.png "PIO Intercomm Mode" +@image html PIO_Intracomm1.png "PIO Intracomm Mode" @section async_mode Async Mode -@image html PIO_Intracomm1.png "PIO Async Mode" +@image html PIO_Async.png "PIO Async Mode" */ diff --git a/src/clib/pioc.c b/src/clib/pioc.c index 5e7b51fa895..0d12225e9f7 100644 --- a/src/clib/pioc.c +++ b/src/clib/pioc.c @@ -1210,7 +1210,8 @@ PIOc_finalize(int iosysid) /* Free the MPI communicators. my_comm is just a copy (but not an * MPI copy), so does not have to have an MPI_Comm_free() * call. comp_comm and io_comm are MPI duplicates of the comms - * handed into init_intercomm. So they need to be freed by MPI. */ + * handed into PIOc_init_async(). So they need to be freed by + * MPI. */ if (ios->intercomm != MPI_COMM_NULL) MPI_Comm_free(&ios->intercomm); if (ios->union_comm != MPI_COMM_NULL) @@ -1732,7 +1733,7 @@ PIOc_init_async(MPI_Comm world, int num_io_procs, int *io_proc_list, if ((ret = MPI_Group_free(&world_group))) return check_mpi(NULL, NULL, ret, __FILE__, __LINE__); - LOG((2, "successfully done with PIO_Init_Async")); + LOG((2, "successfully done with PIOc_init_async")); return PIO_NOERR; }