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

Joe Ratterman jratt0 at gmail.com
Tue Jun 9 15:04:04 CDT 2009


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/mpich2-dev/attachments/20090609/501fbf36/attachment.htm>


More information about the mpich2-dev mailing list