|
From: | Jeffrey D. Oldham |
Subject: | Re: [pooma-dev] Re: [PATCH] Robustify async MPI request handling |
Date: | Tue, 17 Aug 2004 08:25:42 -0700 |
User-agent: | Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040413 Debian/1.6-5 |
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 <address@hidden> * 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 address@hidden-- Richard Guenther <richard dot guenther at uni-tuebingen dot de> WWW: http://www.tat.physik.uni-tuebingen.de/~rguenth/
-- Jeffrey D. Oldham address@hidden
[Prev in Thread] | Current Thread | [Next in Thread] |