diff --git a/CMakeLists.txt b/CMakeLists.txt index 2da94d87a..450bd7dde 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -61,7 +61,7 @@ set( EDO_SRC_DIR "${CMAKE_SOURCE_DIR}/edo" CACHE INTERNAL "ParadisEO- set( MO_SRC_DIR "${CMAKE_SOURCE_DIR}/mo" CACHE INTERNAL "ParadisEO-MO source directory" FORCE) set( MOEO_SRC_DIR "${CMAKE_SOURCE_DIR}/moeo" CACHE INTERNAL "ParadisEO-MOEO source directory" FORCE) set( SMP_SRC_DIR "${CMAKE_SOURCE_DIR}/smp" CACHE INTERNAL "ParadisEO-SMP source directory" FORCE) -set( MPI_SRC_DIR "${CMAKE_SOURCE_DIR}/eo/src/mpi" CACHE INTERNAL "ParadisEO-MPI source directory" FORCE) +set( EOMPI_SRC_DIR "${CMAKE_SOURCE_DIR}/eompi" CACHE INTERNAL "ParadisEO-EOMPI source directory" FORCE) set(EOSERIAL_SRC_DIR "${CMAKE_SOURCE_DIR}/eoserial" CACHE INTERNAL "ParadisEO-EOSERIAL source directory" FORCE) set(PROBLEMS_SRC_DIR "${CMAKE_SOURCE_DIR}/problems" CACHE INTERNAL "Problems dependant source directory" FORCE) @@ -74,17 +74,16 @@ set( EDO_BIN_DIR "${CMAKE_BINARY_DIR}" CACHE INTERNAL "ParadisEO-EDO bi set( MO_BIN_DIR "${CMAKE_BINARY_DIR}" CACHE INTERNAL "ParadisEO-MO binary directory" FORCE) set( MOEO_BIN_DIR "${CMAKE_BINARY_DIR}" CACHE INTERNAL "ParadisEO-MOEO binary directory" FORCE) set( SMP_BIN_DIR "${CMAKE_BINARY_DIR}" CACHE INTERNAL "ParadisEO-SMP binary directory" FORCE) -set( MPI_BIN_DIR "${CMAKE_BINARY_DIR}" CACHE INTERNAL "ParadisEO-MPI binary directory" FORCE) +set( EOMPI_BIN_DIR "${CMAKE_BINARY_DIR}" CACHE INTERNAL "ParadisEO-EOMPI binary directory" FORCE) set(EOSERIAL_BIN_DIR "${CMAKE_BINARY_DIR}" CACHE INTERNAL "ParadisEO-EOSERIAL binary directory" FORCE) - set(EO_ONLY "false" CACHE BOOL "Only build EO and not the other modules") set(ENABLE_OPENMP "false" CACHE BOOL "Build EO with the OpenMP support (shared-memory parallel evaluators on multi-core)") set(ENABLE_GNUPLOT "false" CACHE BOOL "Build EO with the GNUplot support (real-time convergence plotting)") set(EDO "false" CACHE BOOL "Build the EDO module") set(EDO_USE_LIB "Eigen3" CACHE STRING "Which linear algebra library to use to build EDO ('UBlas' or 'Eigen3', Eigen3 is recommended)") set(SMP "false" CACHE BOOL "Build the SMP module") -set(MPI "false" CACHE BOOL "Build the MPI module") +set(EOMPI "false" CACHE BOOL "Build the MPI module") ## EO Module set(EO_MODULE_NAME "Evolving Object") @@ -116,14 +115,14 @@ if(NOT EO_ONLY) add_subdirectory(${SMP_SRC_DIR}) endif() - ## MPI Module - if(MPI) + ## EOMPI Module + if(EOMPI) find_package(MPI REQUIRED) add_definitions(-DWITH_MPI) set(CMAKE_CXX_COMPILE_FLAGS ${CMAKE_CXX_COMPILE_FLAGS} ${MPI_COMPILE_FLAGS}) set(CMAKE_CXX_LINK_FLAGS ${CMAKE_CXX_LINK_FLAGS} ${MPI_LINK_FLAGS}) - include_directories(${MPI_INCLUDE_PATH}) - add_subdirectory(${MPI_SRC_DIR}) + include_directories(${EOMPI_INCLUDE_PATH}) + add_subdirectory(${EOMPI_SRC_DIR}) endif() ## EOSERIAL Module diff --git a/cmake/module/FindParadiseo.cmake b/cmake/module/FindParadiseo.cmake index 7737a89b3..de8535349 100644 --- a/cmake/module/FindParadiseo.cmake +++ b/cmake/module/FindParadiseo.cmake @@ -22,6 +22,7 @@ # - smp # - peo # - eoserial +# - eompi # You can use find_package(Paradiseo COMPONENTS ... ) to enable one or several components. If you not specifie component, all components will be load except SMP for compatibility reasons. # # Output @@ -86,14 +87,19 @@ foreach(COMP ${PARADISEO_LIBRARIES_TO_FIND}) PATHS ${PARADISEO_SRC_PATHS}) elseif(${COMP} STREQUAL "peo") set(PEO_FOUND true) - find_path(EDO_INCLUDE_DIR edo - PATH_SUFFIXES include${INSTALL_SUB_DIR}/edo edo/src + find_path(EDO_INCLUDE_DIR peo + PATH_SUFFIXES include${INSTALL_SUB_DIR}/peo peo/src PATHS ${PARADISEO_SRC_PATHS}) elseif(${COMP} STREQUAL "edo") set(EDO_FOUND true) - find_path(EDO_INCLUDE_DIR peo - PATH_SUFFIXES include${INSTALL_SUB_DIR}/peo peo/src + find_path(EDO_INCLUDE_DIR edo + PATH_SUFFIXES include${INSTALL_SUB_DIR}/edo edo/src PATHS ${PARADISEO_SRC_PATHS}) + elseif(${COMP} STREQUAL "eompi") + set(EOMPI_FOUND true) + find_path(EOMPI_INCLUDE_DIR eompi + PATH_SUFFIXES include${INSTALL_SUB_DIR}/eompi eompi/src + PATHS ${PARADISEO_SRC_PATHS}) endif() endforeach() @@ -107,6 +113,10 @@ if(PEO_FOUND) set(PARADISEO_INCLUDE_DIR ${PARADISEO_INCLUDE_DIR} ${PEO_INCLUDE_DIR}) endif() +if(EOMPI_FOUND) + set(PARADISEO_INCLUDE_DIR ${PARADISEO_INCLUDE_DIR} ${EOMPI_INCLUDE_DIR}) +endif() + # find the requested modules set(PARADISEO_FOUND true) # will be set to false if one of the required modules is not found @@ -133,6 +143,7 @@ set(PARADISEO_LIB_PATHS_SUFFIXES smp/lib peo/lib eoserial/lib + eompi/lib lib lib32 lib64 @@ -171,6 +182,9 @@ if(PARADISEO_FOUND) if(PEO_FOUND) message(${PEO_INCLUDE_DIR}) endif() + if(EOMPI_FOUND) + message(${EOMPI_INCLUDE_DIR}) + endif() else() # include directory or library not found message(FATAL_ERROR "Could NOT find ParadisEO (missing : ${FIND_PARADISEO_MISSING})") diff --git a/eompi/CMakeLists.txt b/eompi/CMakeLists.txt new file mode 100644 index 000000000..d1a7e3d87 --- /dev/null +++ b/eompi/CMakeLists.txt @@ -0,0 +1,5 @@ +###################################################################################### +### Include subdirectories +###################################################################################### +#add_subdirectory(doc) +add_subdirectory(src) \ No newline at end of file diff --git a/eo/src/mpi/CMakeLists.txt b/eompi/src/CMakeLists.txt similarity index 90% rename from eo/src/mpi/CMakeLists.txt rename to eompi/src/CMakeLists.txt index b33c19f6a..c35f65e2b 100644 --- a/eo/src/mpi/CMakeLists.txt +++ b/eompi/src/CMakeLists.txt @@ -10,7 +10,7 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}) ### 2) Define the eompi target ###################################################################################### -set(EOMPI_LIB_OUTPUT_PATH ${EO_BIN_DIR}/lib) +set(EOMPI_LIB_OUTPUT_PATH ${EOMPI_BIN_DIR}/lib) set(LIBRARY_OUTPUT_PATH ${EOMPI_LIB_OUTPUT_PATH}) set(EOMPI_SOURCES @@ -24,7 +24,7 @@ add_library(eompi STATIC ${EOMPI_SOURCES}) install(TARGETS eompi ARCHIVE DESTINATION ${LIB} COMPONENT libraries) file(GLOB HDRS *.h) -install(FILES ${HDRS} DESTINATION include${INSTALL_SUB_DIR}/eo/mpi COMPONENT headers) +install(FILES ${HDRS} DESTINATION include${INSTALL_SUB_DIR}/eompi COMPONENT headers) ###################################################################################### ### 3) Optionnal diff --git a/eo/src/mpi/eoMpi.cpp b/eompi/src/eoMpi.cpp similarity index 100% rename from eo/src/mpi/eoMpi.cpp rename to eompi/src/eoMpi.cpp diff --git a/eo/src/mpi/eoMpi.h b/eompi/src/eoMpi.h similarity index 100% rename from eo/src/mpi/eoMpi.h rename to eompi/src/eoMpi.h diff --git a/eo/src/mpi/eoMpiAssignmentAlgorithm.cpp b/eompi/src/eoMpiAssignmentAlgorithm.cpp similarity index 100% rename from eo/src/mpi/eoMpiAssignmentAlgorithm.cpp rename to eompi/src/eoMpiAssignmentAlgorithm.cpp diff --git a/eo/src/mpi/eoMpiAssignmentAlgorithm.h b/eompi/src/eoMpiAssignmentAlgorithm.h similarity index 100% rename from eo/src/mpi/eoMpiAssignmentAlgorithm.h rename to eompi/src/eoMpiAssignmentAlgorithm.h diff --git a/eo/src/mpi/eoMpiNode.cpp b/eompi/src/eoMpiNode.cpp similarity index 100% rename from eo/src/mpi/eoMpiNode.cpp rename to eompi/src/eoMpiNode.cpp diff --git a/eo/src/mpi/eoMpiNode.h b/eompi/src/eoMpiNode.h similarity index 100% rename from eo/src/mpi/eoMpiNode.h rename to eompi/src/eoMpiNode.h diff --git a/eo/src/mpi/eoMultiStart.h b/eompi/src/eoMultiStart.h similarity index 100% rename from eo/src/mpi/eoMultiStart.h rename to eompi/src/eoMultiStart.h diff --git a/eo/src/mpi/eoParallelApply.h b/eompi/src/eoParallelApply.h similarity index 100% rename from eo/src/mpi/eoParallelApply.h rename to eompi/src/eoParallelApply.h diff --git a/eo/src/mpi/eoTerminateJob.h b/eompi/src/eoTerminateJob.h similarity index 100% rename from eo/src/mpi/eoTerminateJob.h rename to eompi/src/eoTerminateJob.h diff --git a/eo/src/mpi/implMpi.cpp b/eompi/src/implMpi.cpp similarity index 100% rename from eo/src/mpi/implMpi.cpp rename to eompi/src/implMpi.cpp diff --git a/eo/src/mpi/implMpi.h b/eompi/src/implMpi.h similarity index 100% rename from eo/src/mpi/implMpi.h rename to eompi/src/implMpi.h