source of put_vara
Rob Latham
robl at mcs.anl.gov
Mon Aug 13 09:21:04 CDT 2012
On Sun, Aug 12, 2012 at 03:46:14AM +0000, Liu, Jaln wrote:
> Hi,
>
> In the source code of netcdf4.1, I want to know the detail of their
> io part.
Hi. This mailing list is for the Argonne/Northwestern
"Parallel-NetCDF" project. I think you want the Unidata NetCDF4 (with
parallel I/O support)
mailing list.
> i found the definition of NC_Dispatch structor, in which
> there is a function pointer of put_vara, i.e., int (*put_vara)(int
> ,int ,const size_t *, const size_t *, const void*, nctype); But I
> couldn't find the implementation of this function through all the
> netcdf codes.
I'd suggest sending this request up netcdfgroup at unidata.ucar.edu . I
happen to know a tiny bit about Unidata NetCDF-4 source code.
You've found the NC_Dispatch struct. For parallel-io, that dispatch
structure is initiated in libsrc4/nc4dispatch.c
You can trace your way through the functions to find nc4_put_vara()
(in libsrc4/nc4hdf.c but hopefully you are using ctags or cscope and
do not need to particularly care in which file a function lives).
That function does the most work (and has a somewhat boisterous comment
declaring so).
beyond these landmarks, you'll have to talk to Unidata people for more
of the "why" and "how".
> I know this question may not belong to
> parallel-netcdf, but how the netcdf layer do the io is very
> interesting, and how the parallel-netcdf utilize the mpi-io to
> improve the io routine is important. Can anyone give me some ideas
> for those questions? I appreciate for any suggestion.
Unidata NetCDF-4 sits on top of HDF5. It's the HDF5 layer that does
the parallel I/O work, so perhaps you will need to experiment a bit
with HDF5 to really answer your question.
==rob
--
Rob Latham
Mathematics and Computer Science Division
Argonne National Lab, IL USA
More information about the parallel-netcdf
mailing list