[pooma-dev] Re: [PATCH] Robustify async MPI request handling
Jeffrey D. Oldham
oldham at codesourcery.com
Tue Aug 17 15:25:42 UTC 2004
Richard Guenther wrote:
>On Mon, 16 Aug 2004, Jeffrey D. Oldham wrote:
>
>
>
>>Richard Guenther wrote:
>>
>>
>>
>>>The following patch fixes an error and robustifies MPI request handling.
>>>
>>>Tested by having it in my local tree for a long time.
>>>
>>>Ok?
>>>
>>>Richard.
>>>
>>>
>>>2004Aug16 Richard Guenther <richard.guenther at uni-tuebingen.de>
>>>
>>> * src/Threads/IterateSchedulers/SerialAsync.h: Guard against
>>> LAM MPI automatically dragging in C++ support, fix message
>>> polling return value check, complete messages first, remove
>>> unused variable.
>>>
>>>
>>What problems does mpicxx.h cause? I am both curious and want to know
>>so I can approve the patch.
>>
>>
>
>The problem is incompatible C++ ABIs for the compiler used to build LAM
>(gcc 2.95) and the compiler I try to build POOMA with (gcc 3.4), so
>linking will fail either with ABI problems or missing symbols if not
>linking the C++ support libraries (as the header somehow manages to pull
>symbols regardless of not using any of the C++ support). As we don't use
>any of the MPI C++ API we don't need its declarations either. Other
>MPI implementations require you to explicitly pull mpicxx.h, but LAM aims
>to be clever in just doing
>
>#ifdef __cplusplus
>#include <mpicxx.h>
>#endif
>
>which I think is a bug in LAM, but can be easily worked around by us.
>
>But I can leave this chunk of the patch out, if you like.
>
>
I now understand:
o mpicxx.h contains the C++ interface to MPI.
o Pooma does not use this MPI interface.
I am confused about LAM and gcc 2.95 since I sometimes use LAM with gcc
3.x.y. If your problem goes away by using gcc 3.4 with LAM, let's omit
this special-purpose code and commit the rest of this patch. Otherwise,
the entire patch is fine.
>Richard.
>
>
>
>>>------------------------------------------------------------------------
>>>
>>>Index: SerialAsync.h
>>>===================================================================
>>>RCS file: /home/pooma/Repository/r2/src/Threads/IterateSchedulers/SerialAsync.h,v
>>>retrieving revision 1.11
>>>diff -u -u -r1.11 SerialAsync.h
>>>--- SerialAsync.h 8 Jan 2004 21:45:49 -0000 1.11
>>>+++ SerialAsync.h 16 Aug 2004 19:22:33 -0000
>>>@@ -72,6 +72,7 @@
>>>#include <stack>
>>>#include "Pooma/Configuration.h"
>>>#if POOMA_MPI
>>>+# define MPIPP_H // prevent lam mpicxx.h from being included
>>># include <mpi.h>
>>>#endif
>>>
>>>
>>>
>>>
>>--
>>Jeffrey D. Oldham
>>oldham at codesourcery.com
>>
>>
>>
>
>--
>Richard Guenther <richard dot guenther at uni-tuebingen dot de>
>WWW: http://www.tat.physik.uni-tuebingen.de/~rguenth/
>
>
>
--
Jeffrey D. Oldham
oldham at codesourcery.com
More information about the pooma-dev
mailing list