<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7036.0">
<TITLE>RE: [mpich-discuss] [mpich2-maint] #428: MPI_Win_fencememoryconsumption</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT SIZE=2>Hi,<BR>
<BR>
&gt;&gt; But the memory layout of an array of double3 and...<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Any *tricks* like the one you tried would make your code non-portable.<BR>
<BR>
&gt;&gt; Is MPI_Type_create_struct able to infer from the input data, whether the struct is a contiuguous block ...<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Looks like MPICH2 does. However I don't think the standard says anything about this (Don&#8217;t make any assumptions which are not in the std)...<BR>
<BR>
&gt;&gt; ...I'm just sending my array as a MPI_DOUBLE array...<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; I think this is the *right* approach in your case.<BR>
<BR>
Regards,<BR>
Jayesh<BR>
<BR>
-----Original Message-----<BR>
From: mpich-discuss-bounces@mcs.anl.gov [<A HREF="mailto:mpich-discuss-bounces@mcs.anl.gov">mailto:mpich-discuss-bounces@mcs.anl.gov</A>] On Behalf Of Dorian Krause<BR>
Sent: Wednesday, March 04, 2009 2:52 PM<BR>
To: mpich-discuss@mcs.anl.gov<BR>
Cc: mpich2-maint@mcs.anl.gov<BR>
Subject: Re: [mpich-discuss] [mpich2-maint] #428: MPI_Win_fencememoryconsumption<BR>
<BR>
Hi<BR>
<BR>
(sorry for sending the message twice ...)<BR>
<BR>
Jayesh Krishna wrote:<BR>
&gt;&nbsp; Hi,<BR>
&gt;&nbsp;&nbsp; A contiguous MPI derived type consisting of 3 MPI_DOUBLEs is not<BR>
&gt; equivalent to a C structure with 3 doubles. Try using an array of 3<BR>
&gt; doubles (double[3])<BR>
<BR>
But the memory layout of an array of double3 and an array of double[3] is the same since all data is aligned to an 8 byte boundary, so no padding is necessary (I checked it).<BR>
But in the end, MPI gets a void* passed so the actual data layout in the buffer is irrelevant since it just greps what it thinks is the correct data (if it isn't (e.g., for padding reasons), this is the users fault). It this is the problem I would expect the problems to be on the origin side, not on the target side?!<BR>
<BR>
&gt; or using an equivalent MPI datatype (eg:<BR>
&gt; MPI_Type_create_struct()).<BR>
&gt;&nbsp;&nbsp;<BR>
<BR>
With MPI_Type_create_struct I don't observe the mentioned problems.<BR>
<BR>
Is MPI_Type_create_struct able to infer from the input data, whether the struct is a contiuguous block or data? I read that strided data still yields a significant drop down of performance so I this wouldn't be a good alternative if the overhead is too large.<BR>
<BR>
At the moment I'm just sending my array as a MPI_DOUBLE array of 3x the size. This works for the moment ...<BR>
<BR>
Thanks + Regards,<BR>
Dorian<BR>
<BR>
&gt;&nbsp;&nbsp; Let us know if it works for you.<BR>
&gt;<BR>
&gt; Regards,<BR>
&gt; Jayesh<BR>
&gt;<BR>
&gt; -----Original Message-----<BR>
&gt; From: mpich-discuss-bounces@mcs.anl.gov<BR>
&gt; [<A HREF="mailto:mpich-discuss-bounces@mcs.anl.gov">mailto:mpich-discuss-bounces@mcs.anl.gov</A>] On Behalf Of Rajeev Thakur<BR>
&gt; Sent: Friday, February 27, 2009 9:07 PM<BR>
&gt; To: mpich-discuss@mcs.anl.gov<BR>
&gt; Subject: Re: [mpich-discuss] MPI_Win_fence memory consumption<BR>
&gt;<BR>
&gt; OK, thanks. We will look into it.<BR>
&gt;<BR>
&gt; Rajeev<BR>
&gt;&nbsp;<BR>
&gt;&gt; -----Original Message-----<BR>
&gt;&gt; From: mpich-discuss-bounces@mcs.anl.gov<BR>
&gt;&gt; [<A HREF="mailto:mpich-discuss-bounces@mcs.anl.gov">mailto:mpich-discuss-bounces@mcs.anl.gov</A>] On Behalf Of Dorian Krause<BR>
&gt;&gt; Sent: Friday, February 27, 2009 7:44 PM<BR>
&gt;&gt; To: mpich-discuss@mcs.anl.gov<BR>
&gt;&gt; Subject: Re: [mpich-discuss] MPI_Win_fence memory consumption<BR>
&gt;&gt;<BR>
&gt;&gt; Rajeev Thakur wrote:<BR>
&gt;&gt;&nbsp;&nbsp;&nbsp;<BR>
&gt;&gt;&gt; Does that happen only with Nemesis or even with ch3:sock?<BR>
&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>
&gt;&gt; The behaviour is the same with the configure flag<BR>
&gt;&gt; --with-device=ch3:sock.<BR>
&gt;&gt;<BR>
&gt;&gt; Dorian<BR>
&gt;&gt;<BR>
&gt;&gt;&nbsp;&nbsp;&nbsp;<BR>
&gt;&gt;&gt; Rajeev<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>
&gt;&gt;&gt;&gt; -----Original Message-----<BR>
&gt;&gt;&gt;&gt; From: mpich-discuss-bounces@mcs.anl.gov<BR>
&gt;&gt;&gt;&gt; [<A HREF="mailto:mpich-discuss-bounces@mcs.anl.gov">mailto:mpich-discuss-bounces@mcs.anl.gov</A>] On Behalf Of<BR>
&gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>
&gt;&gt; Dorian Krause<BR>
&gt;&gt;&nbsp;&nbsp;&nbsp;<BR>
&gt;&gt;&gt;&gt; Sent: Friday, February 27, 2009 7:16 AM<BR>
&gt;&gt;&gt;&gt; To: mpich-discuss@mcs.anl.gov<BR>
&gt;&gt;&gt;&gt; Subject: [mpich-discuss] MPI_Win_fence memory consumption<BR>
&gt;&gt;&gt;&gt;<BR>
&gt;&gt;&gt;&gt; Hi List,<BR>
&gt;&gt;&gt;&gt;<BR>
&gt;&gt;&gt;&gt; the attached test program uses<BR>
&gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>
&gt;&gt; MPI_Accumulate/MPI_Win_fence for one<BR>
&gt;&gt;&nbsp;&nbsp;&nbsp;<BR>
&gt;&gt;&gt;&gt; sided communication with derived datatype.<BR>
&gt;&gt;&gt;&gt; The program runs fine with mpich2-1.1a2 except for my debugging<BR>
&gt;&gt;&gt;&gt; version of MPICH2 compiled with<BR>
&gt;&gt;&gt;&gt;<BR>
&gt;&gt;&gt;&gt; ./configure --with-device=ch3:nemesis --enable-g=dbg,mem,meminit<BR>
&gt;&gt;&gt;&gt;<BR>
&gt;&gt;&gt;&gt; In this case the MPI_Win_fence on the target side comuses<BR>
&gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>
&gt;&gt; about 90%<BR>
&gt;&gt;&nbsp;&nbsp;&nbsp;<BR>
&gt;&gt;&gt;&gt; of main memory (e.g. &gt; 3 GB). As the behaviour is completely<BR>
&gt;&gt;&gt;&gt; different for predefined datatypes, I suspect that the memory<BR>
&gt;&gt;&gt;&gt; consumption is related to the construction of the derived<BR>
&gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>
&gt;&gt; datatype on<BR>
&gt;&gt;&nbsp;&nbsp;&nbsp;<BR>
&gt;&gt;&gt;&gt; the target side.<BR>
&gt;&gt;&gt;&gt;<BR>
&gt;&gt;&gt;&gt; Is there a workaround for this?<BR>
&gt;&gt;&gt;&gt;<BR>
&gt;&gt;&gt;&gt; Thanks + Best regards,<BR>
&gt;&gt;&gt;&gt; Dorian<BR>
&gt;&gt;&gt;&gt;<BR>
&gt;&gt;&gt;&gt;<BR>
&gt;&gt;&gt;&gt;<BR>
&gt;&gt;&gt;&gt;<BR>
&gt;&gt;&gt;&gt;<BR>
&gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;<BR>
&gt;<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;<BR>
<BR>
</FONT>
</P>

</BODY>
</HTML>