Parallel NetCDF 1.0.1 relies on MPI routines not in MPICH 1.2.x releases

Jianwei Li jianwei at ece.northwestern.edu
Mon Apr 17 12:08:43 CDT 2006


Hi Troy,

Thanks for your effort to investigate these.

All of them are only related to the new non-blocking I/O interface.
Applications not making use of this feature are not affected.

We fixed the pointer type for the malloc's of arrays of MPI_Request.
as you suggested.

For MPI_Request_get_status(), it is required by the corresponding
ncmpi_request_get_status(), and can't be just replaced by 
MPI_Test() which functions a little bit differently and is already
used accordingly in ncmpi_test().

And replacing the MPI_Type_dup() by direct MPI_Datatype assignment
may be unreliable because it at least requires the original user 
type not being freed.

For the latter two, we'll come up with some other workaround and/or 
provide a configure option for users to choose and decide whether 
the non-blocking I/O feature will be enabled or disabled.

Thanks again for using our software!

Jianwei

On Mon, 2006-04-17 at 11:46 -0400, Troy Baer wrote: 
> ...
> /usr/local/mpich/bin/mpicc -o ncmpigen -D_FILE_OFFSET_BITS=64 -
> D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  main.o
> load.o ncgentab.o escapes.o getfill.o init.o genlib.o -L../../../src/lib
> -lpnetcdf
> ../../../src/lib/libpnetcdf.a(mpinetcdf.o)(.text+0xd7e5): In function
> `ncmpi_request_get_status':
> : undefined reference to `MPI_Request_get_status'
> ../../../src/lib/libpnetcdf.a(mpinetcdf.o)(.text+0xdf12): In function
> `ncmpi_iget_var1':
> : undefined reference to `MPI_Type_dup'
> ../../../src/lib/libpnetcdf.a(mpinetcdf.o)(.text+0xe6f9): In function
> `ncmpi_iget_var':: undefined reference to `MPI_Type_dup'
> ../../../src/lib/libpnetcdf.a(mpinetcdf.o)(.text+0xef24): In function
> `ncmpi_iget_vara':
> : undefined reference to `MPI_Type_dup'
> ../../../src/lib/libpnetcdf.a(mpinetcdf.o)(.text+0xf77d): In function
> `ncmpi_iget_vars':
> : undefined reference to `MPI_Type_dup'
> ../../../src/lib/libpnetcdf.a(mpinetcdf.o)(.text+0xfeba): In function
> `ncmpi_iget_varm':
> : undefined reference to `MPI_Type_dup'
> make[4]: *** [ncmpigen] Error 1
> make[4]: Leaving directory `/usr/local/src/netcdf/parallel-
> netcdf-1.0.1/src/utils/ncgen'
> make[3]: *** [ncmpigen] Error 2
> ...
> 
> These routines are not implemented in MPICH releases before MPICH2.
> Obviously, this is a problem for those of us for whom MPICH2 is not yet
> a viable option performance-wise.  Attached is a patch which makes
> Parallel NetCDF more friendly to MPICH1 and also fixes some warnings on
> malloc()'s of arrays of MPI_Request's.
> 
> 	--Troy




More information about the parallel-netcdf mailing list