Parallel Netcdf Feature
Rajeev Thakur
thakur at mcs.anl.gov
Mon Jun 27 10:55:38 CDT 2005
Yu-Heng,
Can you send us the exact code you are using to set up the subarray
type.
Thanks,
Rajeev
> -----Original Message-----
> From: owner-parallel-netcdf at mcs.anl.gov
> [mailto:owner-parallel-netcdf at mcs.anl.gov] On Behalf Of Yu-Heng Tseng
> Sent: Sunday, June 26, 2005 3:15 AM
> To: Jianwei Li
> Cc: parallel-netcdf at mcs.anl.gov
> Subject: Re: Parallel Netcdf Feature
>
> Jianwei,
>
> Thanks for your explanation.
> Do I really need to use MPI subarray datatype?
> I attempted to use subarray function put_vara_*
> It seems I couldn't get what I want.
>
> Do you have any test example to verify this function?
> I tested it using the test code in test/fandc/pnf_test.F
>
> For example, ARRAY has dimension (4,3), e.g.
> ARRAY=[ 1, 2, 3,
> 5, 6, 7,
> 9,10,11,
> 13,14,15]
> So ARRAY(1,1)=1; ARRAY(1,2)=2; ARRAY(1,3)=3;
> ARRAY(2,1)=5; ARRAY(2,2)=6;
>
> If I use two processes to output by using nfmpi_put_vara()
> setting start()=[1,1],count()=[3,2] for process 0
> Process 0 outputs
> 1,2,3,
> 5,6,7,
>
> setting start()=[1,3],count()=[3,2] for process 1
> process 1 outputs
> 9,10,11,
> 13,14,15
>
> So I use "ncdump pnf_test.nc" and get
> 1, 2, 3,
> 5, 6, 7,
> 9,10,11,
> 13,14,15
> This looks fine to output the whole array.
> However, when I modify start() and count() as you suggested
> to output only part of the subarray, I didn't get what I want.
> In process 0, I set start()=[1,2], count()=[3,1] (ignore 1st row)
> In process 1, I set start()=[1,3], count()=[3,2] (the same)
>
> It gives me
> 0, 0, 0,
> 1, 2, 3,
> 9,10,11,
> 13,14,15
>
> It appears that the output always starts from
> the first element rather than the starting location I specify
> from the start(). Am I doing something wrong?
> My objective is to output
> 5, 6, 7,
> 9,10,11,
> 13,14,15
> (ignore 1st row)
>
> But I don't think it can work for parallel netCDF.
> It will be great if you can provide any example. Thanks!
>
> Yu-heng
>
> ----- Original Message -----
> From: Jianwei Li <jianwei at ece.northwestern.edu>
> Date: Monday, June 20, 2005 8:53 am
> Subject: Re: Parallel Netcdf Feature
>
> >
> > Yu-heng,
> >
> > I did not quite catch what you want, but basically
> > our subarray functions put/get_vara can exclude
> > boundary columns/rows as many as you want to.
> > You just need to specify start[] and count[] vectors
> > for the subarray, e.g., process 0 can specify
> > start[] = {0, 1} and count[] = {3, 1} while process 1
> > can specify start[] = {0, 2} and count[] = {3, 2}.
> >
> > Thanks,
> > Jianwei
> >
> > On Sun, 19 Jun 2005, Yu-Heng Tseng wrote:
> >
> > > Hi
> > >
> > > I am interested in doing some complicated output
> > > using parallel NETCDF so that each process outputs
> > > different sizes.
> > > For example, the total size has two dimensions (x,y).
> > > If the total size is (4,3), e.g.
> > >
> > > 1,2,3,4,
> > > 5,6,7,8
> > > 9,10,11,12
> > >
> > > If we use two processes:
> > > Process 0 has and process 1 has
> > > 1,2, 3,4,
> > > 5,6, 7,8,
> > > 9,10 11,12
> > > I don't want to output the first column
> > > (which includes 1,5,9). How can I output
> > > the rest 9 variables
> > > 2,3,4,
> > > 6,7,8,
> > > 10,11,12
> > >
> > > Can I obtain some examples? or can someone
> > > tell me any particular subroutine I can use?
> > > I can check it out. There are not many test
> > > examples in the current release.
> > > Thank you very much.
> > >
> > > Yu-heng
> > >
> >
> >
>
More information about the parallel-netcdf
mailing list