Partial output problem
Rob Ross
rross at mcs.anl.gov
Fri Jul 22 08:59:24 CDT 2005
Hi,
Do you mean that you're passing a 0 as the first parameter to
MPI_Type_create_subarray()? Or that you're passing 0 as the bufcount
parameter to nfmpi_put_vara_all()?
The prototype for that call is:
MPI_TYPE_CREATE_SUBARRAY(ndims, array_of_sizes, array_of_subsizes,
array_of_starts, order, oldtype, newtype)
I'm guessing that your MPI implementation doesn't allow for 0 as a valid
number of dimensions, which kind of makes sense, if that is what you
tried to do.
If you're passing 0 as the bufcount to nfmpi_put_vara_all(), well, that
should work. If it doesn't, that's a bug that we need to fix.
Can you clarify which it is?
Thanks!
Rob
Yu-Heng Tseng wrote:
> Hi,
>
> I am testing nfmpi_vara_put_all() in Fortran
> which can output subarray using
> mpi_type_create_subarray() to specify partial
> array. The test example works fine if I output
> the subarrays from all processors.
>
> However, I got some problems when outputing only
> partial arrays from some of the processors (not all of them).
> the mpi_type_create_subarray() gives me error
> if I specify count=0 (not output from that particular processer).
>
> ERROR: 0032-309 Invalid array element (0) in
> MPI_Type_create_subarray, task 1
>
> For example, process 0 has array [1 2;3 4;5 6]
> process 1 has array [7 8; 9 10; 11 12].
> If I only want to output [1 2] from process 0.
> I specify count=0 in process 1. It seems this statment
> is not allowed in mpi_type_create_subarray().
>
> Any other way to avoid this problem using parallel netCDF?
>
> Thanks!
>
> Yu-heng
More information about the parallel-netcdf
mailing list