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