Commit a0296c11 authored by ESTERIE Pierre's avatar ESTERIE Pierre

Add Starpu section

parent d946b520
......@@ -370,141 +370,98 @@ if(MORSE_DISTRIB_DIR OR EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/morse_c
list(APPEND SCALFMM_CXX_FLAGS -Wcast-qual -Wconversion -Wcast-align -Woverloaded-virtual)
endif()
# ##################################################################
# # STARPU Section
# ##################################################################
# #
# message( STATUS "SCALFMM_USE_STARPU = ${SCALFMM_USE_STARPU}" )
# if( SCALFMM_USE_STARPU )
# # CUDA could be used with StarPU enabled
# option( SCALFMM_USE_CUDA "Set to ON to use CUDA with StarPU" OFF )
# if(SCALFMM_USE_CUDA)
# execute_process(COMMAND nvcc --version ERROR_VARIABLE cuda_error_output OUTPUT_QUIET)
# if(cuda_error_output)
# message( FATAL_ERROR "nvcc is needed with CUDA." )
# endif()
# if(NOT DEFINED CUSTOM_CUDA_FLAGS)
# set( CUSTOM_CUDA_FLAGS "-std=c++11;-arch=sm_20;--ptxas-options=-v;-use_fast_math" CACHE
# STRING "Set your CUDA flags, for example : -arch=sm_20;--ptxas-options=-v;-use_fast_math")
# endif()
# # This is needed to remove backslash after space in ADD_CUSTOM_COMMAND
# separate_arguments(CUSTOM_CUDA_FLAGS)
# message( STATUS "CUSTOM_CUDA_FLAGS = ${CUSTOM_CUDA_FLAGS}" )
# find_package(CUDA REQUIRED)
#
# if (CUDA_INCLUDE_DIRS)
# include_directories(${CUDA_INCLUDE_DIRS})
# endif()
# if (CUDA_LIBRARIES)
# set(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES};${CUDA_LIBRARIES}")
# endif()
#
# set(CUDA_NEEDED_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/Src)
# endif()
#
# # Find StarPU with a list of optional components
# set(SCALFMM_STARPU_VERSION "1.2" CACHE STRING " STARPU version desired")
# # create list of components in order to make a single call to find_package(starpu...)
# set(STARPU_COMPONENT_LIST "HWLOC")
#
#
# if(SCALFMM_USE_CUDA)
# list(APPEND STARPU_COMPONENT_LIST "CUDA")
# endif()
# list(APPEND FUSE_LIST "CUDA")
#
# if(SCALFMM_USE_MPI)
# list(APPEND STARPU_COMPONENT_LIST "MPI")
# endif()
# # TODO: replace this by a component of find starpu
# OPTION( SCALFMM_USE_OPENCL "Set to ON to use OPENCL with StarPU" OFF )
#
# if(SCALFMM_USE_OPENCL)
# list(APPEND STARPU_COMPONENT_LIST "OPENCL")
## include_directories($ENV{OPENCL_INC})
## SET(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES};-L$ENV{OPENCL_LIB};-lOpenCL")
# endif()
# list(APPEND FUSE_LIST "OPENCL")
#
#
# find_package(STARPU ${SCALFMM_STARPU_VERSION} REQUIRED
# COMPONENTS ${STARPU_COMPONENT_LIST})
#
# if(HWLOC_FOUND AND HWLOC_LIBRARY_DIRS)
# # the RPATH to be used when installing
# list(APPEND CMAKE_INSTALL_RPATH "${HWLOC_LIBRARY_DIRS}")
# endif()
#
# if(FXT_FOUND AND FXT_LIBRARY_DIRS)
# # the RPATH to be used when installing
# list(APPEND CMAKE_INSTALL_RPATH "${FXT_LIBRARY_DIRS}")
# endif()
# if(STARPU_FOUND AND STARPU_LIBRARY_DIRS)
# # the RPATH to be used when installing
# list(APPEND CMAKE_INSTALL_RPATH "${STARPU_LIBRARY_DIRS}")
# # Append list of libraries and include dirs
# include_directories(${STARPU_INCLUDE_DIRS_DEP})
# foreach (starpu_libdir ${STARPU_LIBRARY_DIRS_DEP})
# if (${starpu_libdir} MATCHES "^ *-L")
# set(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES};${starpu_libdir}")
# else()
# set(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES};-L${starpu_libdir}")
# endif()
# endforeach()
# foreach (starpu_lib ${STARPU_LIBRARIES_DEP})
# if (EXISTS ${starpu_lib} OR ${starpu_lib} MATCHES "^ *-")
# set(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES};${starpu_lib}")
# else()
# set(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES};-l${starpu_lib}")
# endif()
# endforeach()
# else()
# # StarPU not found
#
# endif()
#
# # TODO: is this very useful? CUDA is already a component of find starpu
# if (CUDA_LIBRARIES)
# set(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES};${CUDA_LIBRARIES}")
# endif()
#
# # Message
# if (STARPU_INCLUDE_DIRS)
# message(STATUS " STARPU_INCLUDES = ${STARPU_INCLUDE_DIRS}")
# LIST(APPEND SCALFMM_INCLUDES "${STARPU_INCLUDE_DIRS}")
# endif()
#
# # Adding SimGrid includes
# LIST(APPEND SCALFMM_INCLUDES "$ENV{SIMGRID_INCLUDE}")
# message(STATUS " Adding SIMGRID = $ENV{SIMGRID_INCLUDE}")
# endif(SCALFMM_USE_STARPU)
# list(APPEND FUSE_LIST "STARPU")
# # Additional options for developers
# if( SCALFMM_ONLY_DEVEL )
# if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
# option( SCALFMM_USE_OMP4 "Set to ON to disable the gcc/intel omp4" OFF )
# else()
# option( SCALFMM_USE_OMP4 "Set to ON to disable the gcc/intel omp4" ON )
# endif()
# option( SCALFMM_TIME_OMPTASKS "Set to ON to time omp4 tasks and generate output file" OFF )
# # SIMGRID and peformance models options
# option( SCALFMM_SIMGRID_NODATA "Set to ON to avoid the allocation of numerical parts in the group tree" OFF )
# option( STARPU_SIMGRID_MLR_MODELS "Set to ON to enable MLR models need for calibration and simulation" OFF )
# # OPENMP 4/5 support
# message(WARNING "OpenMP_VERSION: ${OpenMP_VERSION}")
# option( OPENMP_SUPPORT_PRIORITY "Set to ON to enable tasks priority (OMP4.x/KSTAR/StarPU compiler only)" OFF )
# # STARPU options
# cmake_dependent_option(OPENMP_SUPPORT_COMMUTE "Set to ON to let tasks commute (KSTAR/StarPU compiler only)" OFF
# "SCALFMM_USE_STARPU" OFF)
# cmake_dependent_option(OPENMP_SUPPORT_TASK_NAME "Set to ON to enable a taskname clause for tasks (KSTAR/StarPU compiler only)" OFF
# "SCALFMM_USE_STARPU" OFF)
# cmake_dependent_option(SCALFMM_STARPU_USE_COMMUTE "Set to ON to enable commute with StarPU" ON "SCALFMM_USE_STARPU" OFF)
# cmake_dependent_option(SCALFMM_STARPU_USE_REDUX "Set to ON to enable redux with StarPU" OFF "SCALFMM_USE_STARPU" OFF)
# cmake_dependent_option(SCALFMM_STARPU_USE_PRIO "Set to ON to enable priority with StarPU" ON "SCALFMM_USE_STARPU" OFF)
# cmake_dependent_option(SCALFMM_STARPU_FORCE_NO_SCHEDULER "Set to ON to disable heteroprio even if supported" OFF "SCALFMM_USE_STARPU" OFF)
# cmake_dependent_option(SCALFMM_USE_STARPU_EXTRACT "Set to ON to enable extract with StarPU mpi implicit" ON "SCALFMM_USE_STARPU" OFF)
# endif()
#
# STARPU Section
# --------------
message( STATUS "SCALFMM_USE_STARPU = ${SCALFMM_USE_STARPU}" )
CMAKE_DEPENDENT_OPTION( SCALFMM_USE_OPENCL "Set to ON to use OPENCL with StarPU" OFF "SCALFMM_USE_STARPU" OFF)
CMAKE_DEPENDENT_OPTION( SCALFMM_USE_CUDA "Set to ON to use OPENCL with StarPU" OFF "SCALFMM_USE_STARPU" OFF)
if( SCALFMM_USE_STARPU )
enable_language(C)
# CUDA could be used with StarPU enabled
option( SCALFMM_USE_CUDA "Set to ON to use CUDA with StarPU" OFF )
#if(SCALFMM_USE_CUDA)
# execute_process(COMMAND nvcc --version ERROR_VARIABLE cuda_error_output OUTPUT_QUIET)
# if(cuda_error_output)
# message( FATAL_ERROR "nvcc is needed with CUDA." )
# endif()
# if(NOT DEFINED CUSTOM_CUDA_FLAGS)
# set( CUSTOM_CUDA_FLAGS "-std=c++11;-arch=sm_20;--ptxas-options=-v;-use_fast_math" CACHE
# STRING "Set your CUDA flags, for example : -arch=sm_20;--ptxas-options=-v;-use_fast_math")
# endif()
# # This is needed to remove backslash after space in ADD_CUSTOM_COMMAND
# separate_arguments(CUSTOM_CUDA_FLAGS)
# message( STATUS "CUSTOM_CUDA_FLAGS = ${CUSTOM_CUDA_FLAGS}" )
# find_package(CUDA REQUIRED)
# if (CUDA_INCLUDE_DIRS)
# include_directories(${CUDA_INCLUDE_DIRS})
# endif()
# if (CUDA_LIBRARIES)
# set(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES};${CUDA_LIBRARIES}")
# endif()
# set(CUDA_NEEDED_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/Src)
#endif()
# Find StarPU with a list of optional components
set(SCALFMM_STARPU_VERSION "1.2.8" CACHE STRING " STARPU version desired")
# create list of components in order to make a single call to find_package(starpu...)
set(STARPU_COMPONENT_LIST "HWLOC")
if(SCALFMM_USE_CUDA)
list(APPEND STARPU_COMPONENT_LIST "CUDA")
endif()
list(APPEND FUSE_LIST "CUDA")
if(SCALFMM_USE_MPI)
list(APPEND STARPU_COMPONENT_LIST "MPI")
endif()
if(SCALFMM_USE_OPENCL)
list(APPEND STARPU_COMPONENT_LIST "OPENCL")
endif()
list(APPEND FUSE_LIST "OPENCL")
find_package(STARPU ${SCALFMM_STARPU_VERSION} REQUIRED
COMPONENTS ${STARPU_COMPONENT_LIST})
if(STARPU_FOUND)
target_link_libraries(${CMAKE_PROJECT_NAME} PUBLIC starpu::starpu_dep)
list(APPEND FUSE_LIST "STARPU")
if(SCALFMM_USE_CUDA)
list(APPEND FUSE_LIST "CUDA")
endif()
if(SCALFMM_USE_OPENCL)
list(APPEND FUSE_LIST "OPENCL")
endif()
else(STARPU_FOUND)
message(FATAL_ERROR "StarPU not found.")
endif(STARPU_FOUND)
endif(SCALFMM_USE_STARPU)
# Additional options for developers
if( SCALFMM_ONLY_DEVEL )
if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
option( SCALFMM_USE_OMP4 "Set to ON to disable the gcc/intel omp4" OFF )
else()
option( SCALFMM_USE_OMP4 "Set to ON to disable the gcc/intel omp4" ON )
endif()
option( SCALFMM_TIME_OMPTASKS "Set to ON to time omp4 tasks and generate output file" OFF )
# SIMGRID and peformance models options
option( SCALFMM_SIMGRID_NODATA "Set to ON to avoid the allocation of numerical parts in the group tree" OFF )
option( STARPU_SIMGRID_MLR_MODELS "Set to ON to enable MLR models need for calibration and simulation" OFF )
# OPENMP 4/5 support
message(WARNING "OpenMP_VERSION: ${OpenMP_VERSION}")
option( OPENMP_SUPPORT_PRIORITY "Set to ON to enable tasks priority (OMP4.x/KSTAR/StarPU compiler only)" OFF )
# STARPU options
cmake_dependent_option(OPENMP_SUPPORT_COMMUTE "Set to ON to let tasks commute (KSTAR/StarPU compiler only)" OFF
"SCALFMM_USE_STARPU" OFF)
cmake_dependent_option(OPENMP_SUPPORT_TASK_NAME "Set to ON to enable a taskname clause for tasks (KSTAR/StarPU compiler only)" OFF
"SCALFMM_USE_STARPU" OFF)
cmake_dependent_option(SCALFMM_STARPU_USE_COMMUTE "Set to ON to enable commute with StarPU" ON "SCALFMM_USE_STARPU" OFF)
cmake_dependent_option(SCALFMM_STARPU_USE_REDUX "Set to ON to enable redux with StarPU" OFF "SCALFMM_USE_STARPU" OFF)
cmake_dependent_option(SCALFMM_STARPU_USE_PRIO "Set to ON to enable priority with StarPU" ON "SCALFMM_USE_STARPU" OFF)
cmake_dependent_option(SCALFMM_STARPU_FORCE_NO_SCHEDULER "Set to ON to disable heteroprio even if supported" OFF "SCALFMM_USE_STARPU" OFF)
cmake_dependent_option(SCALFMM_USE_STARPU_EXTRACT "Set to ON to enable extract with StarPU mpi implicit" ON "SCALFMM_USE_STARPU" OFF)
endif()
#
# Set ScalFMM compile flags
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment