[CMake] How to compile MPI code

Todd Gamblin tgamblin at llnl.gov
Wed Jun 22 23:13:09 EDT 2011


On Jun 22, 2011, at 11:11 AM, Mª Dolores Villalobos Ortiz wrote:

> Thank you.
> 
> I have tried to compile my code using that version of CMakeLists, but it doesn't work. My program's output is still wrong.

Whether or not mpiexec launches properly isn't something CMake can control.  If you are getting rank 0 for all your processes when you launch mpiexec, this is more than likely a problem with your system.

Just out of curiosity, what version of MPI are you using?  And does the code work when you compile it *without* CMake?  e.g. if you just run:

	mpicxx -o hello hello.cpp
	mpiexec -n 2 ./hello

Does that work, or does that do the same thing?

-Todd



> This is completely, utterly wrong!
> 
> 
> # 2.7 was a development version, so you should either specify
> # 2.6 or 2.8...
> cmake_minim_required(VERSION 2.7)
> project(ITK_MPI)
> 
> find_package(MPI REQUIRED)
> 
> include_directories(${MPI_INCLUDE_PATH})
> 
> add_executable(hello hello.cpp)
> target_link_libraries(hello ${MPI_LIBRARIES})
> 
> if(MPI_COMPILE_FLAGS)
>   set_target_properties(hello PROPERTIES
>     COMPILE_FLAGS "${MPI_COMPILE_FLAGS}")
> endif()
> 
> if(MPI_LINK_FLAGS)
>   set_target_properties(hello PROPERTIES
>     LINK_FLAGS "${MPI_LINK_FLAGS}")
> endif()
> 
> 
> You should *NEVER* set CMAKE_<LANG>_COMPILER, this completely breaks
> things. Also, with CMake you shouldn't use the compiler wrappers (mpicxx
> etc.), because CMake figures out how to compile MPI programs without it.
> 
> HTH
> 
> Michael
> _______________________________________________
> Powered by www.kitware.com
> 
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
> 
> Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ
> 
> Follow this link to subscribe/unsubscribe:
> http://www.cmake.org/mailman/listinfo/cmake

______________________________________________________________________
Todd Gamblin, tgamblin at llnl.gov, http://people.llnl.gov/gamblin2
CASC @ Lawrence Livermore National Laboratory, Livermore, CA, USA



More information about the CMake mailing list