Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] feature requests: mpic++ to report both release and debug flags
From: MM (finjulhich_at_[hidden])
Date: 2012-01-17 10:56:01

Yes this is what I'd need exactly. That sounds great to just include in the
released binaries then.

I believe most people who download the binaries will use them to link
against those mpi libraries and therefore they write source code, so they
debug it.

The user can built release, and would need to link against release mpi libs
(include the c++ runtime release version).

The user will also build debug, and woud need debug version of the mpi libs
(linked against the c++ runtime debug version)


The only way that the user would be ok to link their debug application vs
the release mpi libs, is if the release mpi libs are linked against debug
c++ runtime.

which maybe a way to do it too.


I think the cleanest however is to just provide on the website both release
and debug vesions of the mpic++, of the libs and of the dlls.


On RHEL for e.g., openmpi package contains release and debug versions of the

THe same issue applies to mpic++. However, the rpm package there contains
mpic++ only.


To be perfectionnist, mpic++d doesn't seem such a perfect solution because
we never really want to debug mpic++ itself, but user may want to debug
libmpid.dll in some cases.


my 2cents,


There is work to do to support openmpi properly in both boost and cmake.

boost build has a mpi jam file which doesn't properly call mpic++ on
windows. To use Option 3, mpi jam needs to change to call either mpic++ or

cmake findmpi also needs to change to account for both.





From: Shiqing Fan [mailto:fan_at_[hidden]]
Sent: 17 January 2012 15:06
To: MM
Cc: 'Open MPI Users'; Jeff Squyres
Subject: Re: feature requests: mpic++ to report both release and debug flags


Hi MM,

Actually option 3 has already been implemented for Windows build, and it
seems adequate. But it was not targeting for the windows binary, as only
quite a few users require this feature.

When enabling WANT_EXE_DEBUG_POSTFIX option in CMake GUI, the build system
will generate mpic++.exe (release) and mpic++d.exe (debug), and also their
wrapper data files. So it is possible so just use mpic++ -showsome for
release options and mpic++d -showsome for debug options.

Is this what you are looking for? If it is really necessary, I don't see any
problem to include it in the windows binary releases.

I don't know how this is done on Linux system, can anyone comment?


On 2012-01-16 3:51 PM, MM wrote:



It would be useful for the end user to use mpic++ to obtain the compile and
link flags for both release and debug builds.


There is a number of possible solutions:

1. add the showme flags of mpic++ and any other similar binary to
something like -showme:compile_debug -showme:compile_release
-showme:link_release -showme:link_debug

2. add a -showme_debug flag to tune the -showme:compile -showme:link

3. have 2 versions of the binary mpic++(release) and mpic++(debug)

4. have 1 version of the mpic++ but 2 versions of the of
wrapper-data.txt file

5. have 1 version of mpic++ and 1 version of the wrapper-data file, and
2 sections in the wrapper-data file


It would be great to have this delivered in the win binaries package
(include both release and debug libs, that's already the case), and advise
3rd party packagers on unix/linux/mac distributions to do similarily


It would be also useful to publish the cmake flags used by default to
produce the win binaries


I am available to test the packages if possible, also is there a wiki for
requests or a similar system where I should file the above.






From: Shiqing Fan [mailto:fan_at_[hidden]]
Sent: 19 November 2011 04:44
To: Open MPI Users
Cc: MM
Subject: Re: [OMPI users] mpic++-wrapper-data.txt msvc10 Release/Debug 1.5.4



There is no easy solution. But you can try to use WANT_EXE_DEBUG_POSTFIX
option in CMake GUI. Enabling this option will generate different
executable.library names for debug and release build. For example,
mpic++d.exe for debug and mpic++.exe for release.

For you case, just build both debug and release version of Open MPI 1.5.4,
and install them into the same path, you will get two sets of
executables/libraries (with "d" postfix for debug version) and mpic++ config
files (mpic++d-wrapper-data.txt for debug version). Then just append your
own debug/release compile options in the config files, and build with boost
mpi as you need.

Hope this helps.


On 2011-11-18 9:44 PM, MM wrote:



Compiling boost mpi library uses mpic++ to get the compile flags to pass to
cl.exe and link libs to pass to the linker.

In my case:

>>> mpic++ -showme:compile

/I"C:\Program Files\openmpi\bin/../include" /TP /EHsc /MD

>>> mpic++ -showme:link

/link /LIBPATH:"C:\Program Files\openmpi\bin/../lib" libmpi_cxx.lib
libmpi.lib libopen-pal.lib libopen-rte.lib advapi32.lib Ws2_32.lib


To choose Release build or Debug build, is it possible to use
mpic++-wrapper-data.txt to specify both options?




libmpi_cxx.lib libmpi.lib libopen-pal.lib libopen-rte.lib advapi32.lib
Ws2_32.lib shlwapi.lib




libmpi_cxxd.lib libmpid.lib libopen-pald.lib libopen-rted.lib advapi32.lib
Ws2_32.lib shlwapi.lib

is there a debug version of "advapi32.lib Ws2_32.lib shlwapi.lib"


For now, I will just override that file for Release, build boost mpi,
override for Debug, build for Debug.





users mailing list

Shiqing Fan
High Performance Computing Center Stuttgart (HLRS)
Tel: ++49(0)711-685-87234      Nobelstrasse 19
Fax: ++49(0)711-685-65832      70569 Stuttgart
email: fan_at_[hidden]
Shiqing Fan
High Performance Computing Center Stuttgart (HLRS)
Tel: ++49(0)711-685-87234      Nobelstrasse 19
Fax: ++49(0)711-685-65832      70569 Stuttgart
email: fan_at_[hidden]