<br><font size=2 face="sans-serif">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.</font>
<br>
<br><font size=2 face="sans-serif">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.</font>
<br>
<br><font size=2 face="sans-serif"><br>
Brian Smith<br>
BlueGene MPI Development<br>
IBM Rochester<br>
Phone: 507 253 4717<br>
smithbr@us.ibm.com<br>
</font>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td width=40%><font size=1 face="sans-serif"><b>Darius Buntinas &lt;buntinas@mcs.anl.gov&gt;</b>
</font>
<br><font size=1 face="sans-serif">Sent by: opa-core-bounces@lists.mcs.anl.gov</font>
<p><font size=1 face="sans-serif">06/09/2009 03:23 PM</font>
<td width=59%>
<table width=100%>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">To</font></div>
<td><font size=1 face="sans-serif">Joe Ratterman &lt;jratt0@gmail.com&gt;</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">cc</font></div>
<td><font size=1 face="sans-serif">OpenPA Core &lt;opa-core@lists.mcs.anl.gov&gt;,
MPICH2 Dev &lt;mpich2-dev@mcs.anl.gov&gt;</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">Subject</font></div>
<td><font size=1 face="sans-serif">Re: [opa-core] Problem with MPICH2 1.1
during MPI_Init() on PPC Linux 32bit</font></table>
<br>
<table>
<tr valign=top>
<td>
<td></table>
<br></table>
<br>
<br>
<br><tt><font size=2>I see that there is a comment in opa_gcc_ppc.h that
&quot;these need to be<br>
aligned on an 8-byte boundary to work on a BG/P.&quot; &nbsp;Do you know
if this<br>
is true?<br>
<br>
Dave, this looks like your comment. &nbsp;Can you comment?<br>
<br>
Should this be changed to &quot;OPA_ATTRIBUTE((aligned (SIZEOF_VOID_P)))&quot;
to<br>
handle different pointer sizes (similarly for SIZEOF_INT for ints)?<br>
<br>
-d<br>
<br>
On 06/09/2009 03:04 PM, Joe Ratterman wrote:<br>
&gt; This is the error I'm seeing:<br>
&gt; <br>
&gt; &nbsp; &nbsp; Assertion failed in file mpid_nem_init.c at line 89:<br>
&gt; &nbsp; &nbsp; sizeof(MPID_nem_cell_rel_ptr_t) == 4<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; This appears to be the important code from the pre-processed version<br>
&gt; of mpid_nem_init.c<br>
&gt; <br>
&gt; <br>
&gt; &nbsp; &nbsp; # 11<br>
&gt; &nbsp; &nbsp; &quot;/bglhome/usr1/jratt/src-sles10/mpich2/mpich2-1.1/src/openpa/src/primitives/opa_gcc_ppc.h&quot;<br>
&gt; &nbsp; &nbsp; typedef struct { volatile int v __attribute__ ((aligned
(8))); }<br>
&gt; &nbsp; &nbsp; OPA_int_t;<br>
&gt; &nbsp; &nbsp; typedef struct { void * volatile v __attribute__ ((aligned
(8))); }<br>
&gt; &nbsp; &nbsp; OPA_ptr_t;<br>
&gt; <br>
&gt; &nbsp; &nbsp; # 188 &quot;../include/mpid_nem_datatypes.h&quot;<br>
&gt; &nbsp; &nbsp; typedef struct MPID_nem_cell_rel_ptr<br>
&gt; &nbsp; &nbsp; {<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; OPA_ptr_t p;<br>
&gt; &nbsp; &nbsp; }<br>
&gt; &nbsp; &nbsp; MPID_nem_cell_rel_ptr_t;<br>
&gt; <br>
&gt; &nbsp; &nbsp; # 135 mpid/ch3/include/mpidi_ch3_conf.h<br>
&gt; <br>
&gt; &nbsp; &nbsp; #define SIZEOF_VOID_P 4<br>
&gt; <br>
&gt; &nbsp; &nbsp; # 85 mpid_nem_init.c<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; /* The MPID_nem_cell_rel_ptr_t defined
in mpid_nem_datatypes.h<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* should only contain a pointer.
Also, we don't support compilers<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* which add random padding to the
start of the structure. The<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* below assert should blow up if
any of these happens. */<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; MPIU_Assert(sizeof(MPID_nem_cell_rel_ptr_t)
== SIZEOF_VOID_P);<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; Given the above code, the size of that type appears to be 8 in both
GCC<br>
&gt; and XLC. &nbsp;I see that the alignment is hard-coded to 8 in<br>
&gt; src/openpa/src/primitives/opa_gcc_ppc.h. &nbsp;Changing that first
line to an<br>
&gt; alignment of 4, the type size shrinks to 4 (correspondingly, increasing<br>
&gt; it to 16 increases the type size as well).<br>
&gt; <br>
&gt; Changing the file to 4 and recompiling things allows a few simple
tests<br>
&gt; to work fine--I haven't tried too much more.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; Thanks,<br>
&gt; Joe Ratterman<br>
&gt; jratt@us.ibm.com &lt;mailto:jratt@us.ibm.com&gt;<br>
&gt; <br>
&gt; <br>
&gt; ------------------------------------------------------------------------<br>
&gt; <br>
&gt; _______________________________________________<br>
&gt; opa-core mailing list<br>
&gt; opa-core@lists.mcs.anl.gov<br>
&gt; https://lists.mcs.anl.gov/mailman/listinfo/opa-core<br>
_______________________________________________<br>
opa-core mailing list<br>
opa-core@lists.mcs.anl.gov<br>
https://lists.mcs.anl.gov/mailman/listinfo/opa-core<br>
</font></tt>
<br>