[mpich2-dev] [opa-core] Problem with MPICH2 1.1 during MPI_Init() on PPC Linux 32bit

Dave Goodell goodell at mcs.anl.gov
Tue Jun 9 15:57:50 CDT 2009


I'm not sure that we've ever tried nemesis on PPC.  If you just want  
to test the datatypes code on linux/PPC you might have better luck  
with ch3:sock instead for now.  General PPC support is something we  
want to do, we just haven't gotten around to implementing it yet.

-Dave

On Jun 9, 2009, at 3:52 PM, Brian Smith wrote:

>
> Joe is building on one of our front-ends because we are seeing some  
> weirdness in datatype stuff inside MPIR_Gather. We wanted to see if  
> it was having problems on multiple platforms.
>
> But, yes, on BGP for the compute nodes it needs to be at least 8- 
> byte aligned (and 16 might be better for performance), but you  
> probably want to generalize the type sizing on other platforms.
>
>
> Brian Smith
> BlueGene MPI Development
> IBM Rochester
> Phone: 507 253 4717
> smithbr at us.ibm.com
>
>
>
> Darius Buntinas <buntinas at mcs.anl.gov>
> Sent by: opa-core-bounces at lists.mcs.anl.gov
> 06/09/2009 03:23 PM
>
> To
> Joe Ratterman <jratt0 at gmail.com>
> cc
> OpenPA Core <opa-core at lists.mcs.anl.gov>, MPICH2 Dev <mpich2-dev at mcs.anl.gov 
> >
> Subject
> Re: [opa-core] Problem with MPICH2 1.1 during MPI_Init() on PPC  
> Linux 32bit
>
>
>
>
>
> I see that there is a comment in opa_gcc_ppc.h that "these need to be
> aligned on an 8-byte boundary to work on a BG/P."  Do you know if this
> is true?
>
> Dave, this looks like your comment.  Can you comment?
>
> Should this be changed to "OPA_ATTRIBUTE((aligned (SIZEOF_VOID_P)))"  
> to
> handle different pointer sizes (similarly for SIZEOF_INT for ints)?
>
> -d
>
> On 06/09/2009 03:04 PM, Joe Ratterman wrote:
> > This is the error I'm seeing:
> >
> >     Assertion failed in file mpid_nem_init.c at line 89:
> >     sizeof(MPID_nem_cell_rel_ptr_t) == 4
> >
> >
> >
> > This appears to be the important code from the pre-processed version
> > of mpid_nem_init.c
> >
> >
> >     # 11
> >     "/bglhome/usr1/jratt/src-sles10/mpich2/mpich2-1.1/src/openpa/ 
> src/primitives/opa_gcc_ppc.h"
> >     typedef struct { volatile int v __attribute__ ((aligned (8))); }
> >     OPA_int_t;
> >     typedef struct { void * volatile v __attribute__ ((aligned  
> (8))); }
> >     OPA_ptr_t;
> >
> >     # 188 "../include/mpid_nem_datatypes.h"
> >     typedef struct MPID_nem_cell_rel_ptr
> >     {
> >         OPA_ptr_t p;
> >     }
> >     MPID_nem_cell_rel_ptr_t;
> >
> >     # 135 mpid/ch3/include/mpidi_ch3_conf.h
> >
> >     #define SIZEOF_VOID_P 4
> >
> >     # 85 mpid_nem_init.c
> >         /* The MPID_nem_cell_rel_ptr_t defined in  
> mpid_nem_datatypes.h
> >          * should only contain a pointer. Also, we don't support  
> compilers
> >          * which add random padding to the start of the structure.  
> The
> >          * below assert should blow up if any of these happens. */
> >         MPIU_Assert(sizeof(MPID_nem_cell_rel_ptr_t) ==  
> SIZEOF_VOID_P);
> >
> >
> >
> > Given the above code, the size of that type appears to be 8 in  
> both GCC
> > and XLC.  I see that the alignment is hard-coded to 8 in
> > src/openpa/src/primitives/opa_gcc_ppc.h.  Changing that first line  
> to an
> > alignment of 4, the type size shrinks to 4 (correspondingly,  
> increasing
> > it to 16 increases the type size as well).
> >
> > Changing the file to 4 and recompiling things allows a few simple  
> tests
> > to work fine--I haven't tried too much more.
> >
> >
> >
> > Thanks,
> > Joe Ratterman
> > jratt at us.ibm.com <mailto:jratt at us.ibm.com>
> >
> >
> >  
> ------------------------------------------------------------------------
> >
> > _______________________________________________
> > opa-core mailing list
> > opa-core at lists.mcs.anl.gov
> > https://lists.mcs.anl.gov/mailman/listinfo/opa-core
> _______________________________________________
> opa-core mailing list
> opa-core at lists.mcs.anl.gov
> https://lists.mcs.anl.gov/mailman/listinfo/opa-core
>
> _______________________________________________
> opa-core mailing list
> opa-core at lists.mcs.anl.gov
> https://lists.mcs.anl.gov/mailman/listinfo/opa-core



More information about the mpich2-dev mailing list