[mpich-discuss] Problems with multiple calls to MPI_Reduce?
Elliot Parkin
phy1erp at leeds.ac.uk
Tue Jul 1 04:32:10 CDT 2008
Thanks for the reply guys, very much appreciated.
Just to set the scene of how and why I'm using MPI_Allreduce:
I'm using MPI to parallelize a hydrodynamics code. The hydro grid is
split into sections and to output a data file containing the whole
grid requires the separate parts to be pieced together. The separate
parts of the grid pass their part to a dummy array and then
MPI_Allreduce fits this together and broadcasts the parts back to all
processors. Here's a chunk of the code:
c Multiple calls to glue for various parameters
call glue(lzro,zro) ! density
call glue(lzpr,zpr) ! pressure
call glue(lzco,zco) ! colour
call glue(lzux,zux) ! x-velocity
call glue(lzuy,zuy) ! y-velocity
call glue(lzuz,zuz) ! z-velocity
c The glue subroutine looks like this:
all = (imax*jmax*kmax)
do k=1,kmax
do j=1,jmax
do i=1,imax
dummy(i,j,k) = -1.0e50
end do
end do
end do
do k=1,mpikmax
do j=1,mpijmax
do i=1,mpiimax
a = j + rank*mpijmax
dummy(i,a,k) = input(i,j,k)
end do
end do
end do
call MPI_Allreduce (dummy,output,all,MPI_2DOUBLE_PRECISION,
: MPI_MAXLOC,comm,ierr)
Michael Ahlmann suggested that the problem could be due to using
non-unique tags for the calls. At the minute the calls all use the
same communicator, but I have to apologise about my lack of knowledge
about MPI because I don't really know if that would be a problem or not.
Thanks again,
Elliot Parkin
Quoting Rajeev Thakur <thakur at mcs.anl.gov>:
> Can you send us a small code fragment?
>
> Rajeev
>
>> -----Original Message-----
>> From: owner-mpich-discuss at mcs.anl.gov
>> [mailto:owner-mpich-discuss at mcs.anl.gov] On Behalf Of Elliot Parkin
>> Sent: Friday, June 27, 2008 6:28 AM
>> To: mpich-discuss at mcs.anl.gov
>> Subject: [mpich-discuss] Problems with multiple calls to MPI_Reduce?
>>
>> Hello everyone,
>>
>> I've ran into some difficulties using MPI_Reduce. It seems
>> that after
>> it has been called some of the parameters in the code get set to
>> bizarre values. Also, if I call MPI_Reduce consecutively (to fill an
>> array with the maximum values across the processes) it
>> doesn't appear
>> to work the third time and sets all values of the array to zero. Has
>> anybody else had this problem, and if so is there any way to
>> explain/fix this?
>>
>> Cheers,
>>
>> Elliot Parkin.
>>
>> ----------------------------------------------------------------
>> This message was sent using IMP, the Internet Messaging Program.
>>
>>
>
>
More information about the mpich-discuss
mailing list