strerror

michael bane michael.bane at manchester.ac.uk
Fri Jun 22 10:48:53 CDT 2007


Folks, I've only just had the chance to think more about this. But it
seems to me that 'start' isn't anything to do with the file (it's not
been defined for the file)... I think what's meant (comparing with F77
netcdf interface) is that:

START
        A vector of integers specifying the index in the variable where
        the first of the data values will be written. {...}
        
Michael




On Wed, 2007-06-20 at 19:48 -0500, Wei-keng Liao wrote:
> Argument "start" in nfmpi_put_vara_double() is used by the variable 
> defined in the file, not by the local array.
> 
> 
> Wei-keng
> 
> On Wed, 20 Jun 2007, michael bane wrote:
> 
> > On Wed, 2007-06-20 at 12:48 -0500, Wei-keng Liao wrote:
> >> Your val array passed in nfmpi_put_vara_double() should contain 51,52,...
> >> for myPE == 1. This array will be used from index 1, 2, 3 ...
> >>
> >
> > (This top posting is making this hard to read!)
> >
> > If my val array is val(i)=i, for i=1,100
> > and PE#0 has start=1, count=50
> > and PE#1 has start=51, count=50
> > then I do not follow why PE#1 is even looking at val(j) j=1,2,3...
> > Surely it should print val(k), k=51,52,...
> >
> >
> >>
> >>
> >> On Wed, 20 Jun 2007, michael bane wrote:
> >>
> >>> On Wed, 2007-06-20 at 10:30 -0500, Wei-keng Liao wrote:
> >>>> The default I/O mode for pnetcdf is collective, to switch to independent
> >>>> mode, wrap the indep I/O calls by
> >>>>          stat = nfmpi_begin_indep_data(ncfileID)   and
> >>>>          stat = nfmpi_end_indep_data(ncfileID)
> >>>
> >>> thanks!
> >>>
> >>>> I don't know the answer to the error messages between F77 and F90.
> >>>> I also wonder if they are defined the same in NetCDF (the serial version).
> >>>
> >>> f77 and f90 seem the same for those error msgs I've seen (eg -35 =
> >>> 'netCDF file exists && NC_NOCLOBBER')
> >>>
> >>> But returning to my example (full main Fortran s/prog unit below), I
> >>> can't see why I'm not getting series 1,2,..,100 in the output file
> >> (last
> >>> part of the code, the /tmp/newFile_p2.ncf o/p file), but rather on 2 PEs
> >>> both processes seem to be writing 1,2,..50 so I'm guessing I'm missing
> >>> something (my impression was that each PE would write val(start),
> >>> val(start+1) for its local value of start)
> >>>
> >>> also attached is /tmp/out which is output from
> >>> ~/Fortran/MPI/parallel_netCDF$ rm /tmp/new*ncf && prun -B3 -l "%m%n:
> >>> rank %g: " -n 2 -p login ./speed_1d_f90  > /tmp/out 2>&1
> >>>
> >>> cheers, michael
> >>> ---
> >>>
> >>
> >
-- 
Michael Bane
Centre for Atmospheric Science
University of Manchester, U.K.
http://cloudbase.phy.umist.ac.uk/people/bane/bane.htm




More information about the parallel-netcdf mailing list