asynchcronous get/puts

Jianwei Li jianwei at ece.northwestern.edu
Fri Jun 9 09:51:40 CDT 2006


Hi Gene,

We have recently added the asynchronous gets/puts support
in our C interface, e.g.,

int ncmpi_iput_vara(int ncid, int varid,
               const MPI_Offset start[], const MPI_Offset count[],
               const void *buf, int bufcount,
               MPI_Datatype datatype, NCMPI_Request *request);


int ncmpi_iget_vara(int ncid, int varid,
               const MPI_Offset start[], const MPI_Offset count[],
               void *buf, int bufcount,
               MPI_Datatype datatype, NCMPI_Request *request);

where the last argument "NCMPI_Request *request" is something
like MPI_Request for the non-blocking I/O purpose. 

As in MPI-IO non-blocking I/O, these functions work in independent
data access mode (enclosed by ncmpi_begin_indep_data() and 
ncmpi_end_indep_data(), as in our API documentation).


And there are functions like

int ncmpi_wait(NCMPI_Request *request);

int ncmpi_waitall(int count, NCMPI_Request array_of_requests[]);

int ncmpi_waitany(int count, NCMPI_Request array_of_requests[], 
		int *index);

int ncmpi_waitsome(int count, NCMPI_Request array_of_requests[],
               int *outcount, int array_of_indices[]);

and other functions for waiting/testing I/O completion.


All the asynchronous I/O function prototypes can be found near
the end of your "pnetcdf.h". And there is an example/test
code at parallel-netcdf/test/test_dtype/test_nonblocking.c.


Thanks.

Jianwei

On Thu, 2006-06-08 at 18:57 -0700, Gene Wagenbreth wrote:
> Does pnetcdf support asynchronous gets/puts ?  I want to
> initiate io, then continue processing and wait for later
> completion.
> 
> Gene W




More information about the parallel-netcdf mailing list