Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

From: Åke Sandgren (ake.sandgren_at_[hidden])
Date: 2006-09-09 03:44:09


On Fri, 2006-09-08 at 20:31 -0400, Jeff Squyres wrote:
> Thanks Harald -- I filed bug 356 on this:
>
> http://svn.open-mpi.org/trac/ompi/ticket/356
>
>
> On 9/6/06 10:39 AM, "Harald Forbert"
> <Harald.Forbert_at_[hidden]> wrote:
>
> > I think I traced a bug found by blacs testers with various versions
> > of openmpi in ompi/datatype/datatype_unpack.c (ompi/datatype/dt_unpack.c
> > in 1.0.x). This might be related to ticket #65. At least after
> > applying the following patch (for 1.1.[01]), the blacs reduce amax seems
> > to work correctly:
> >
> > --- openmpi-1.1/ompi/datatype/datatype_unpack.c.orig
> > +++ openmpi-1.1/ompi/datatype/datatype_unpack.c
> > @@ -221,6 +221,8 @@
> >
> > length = pConv->bConverted / pData->size; /* already done */
> > length = pConv->bConverted - length * pData->size; /* still left
> > on the last element */
> > + length = pData->size - length;
> > + if (length > remaining) length = 0;
> > /* complete the last copy */
> > if( length != 0 ) {
> > OMPI_DDT_SAFEGUARD_POINTER( user_memory, length,
> > pConv->pBaseBuf,

In the same function at the bottom of the loop, is the
stack->disp = user_memory - pConv->pBaseBuf;
really the correct thing to do considering the two statements
user_memory = pConv->pBaseBuf + initial_displ;
and in the else part
user_memory += stack->disp;

-- 
Ake Sandgren, HPC2N, Umea University, S-90187 Umea, Sweden
Internet: ake_at_[hidden]   Phone: +46 90 7866134 Fax: +46 90 7866126
Mobile: +46 70 7716134 WWW: http://www.hpc2n.umu.se