v0.0.3: MPI wrappers w/o full MPI support + setup-env.sh (#15)
* v0.0.3: MPI wrappers w/o full MPI support + setup-env.sh - bumped to v0.0.3 - enabled gotcha wrapping of MPI functions w/o enabling MPI - added setup-env.sh script - minor updates to testing - Update timemory submodule - fixes tim::component::configure_mpip undefined symbol - Script updates
This commit is contained in:
zatwierdzone przez
GitHub
rodzic
02f59ec9dc
commit
c56b49a0bd
@@ -0,0 +1,41 @@
|
||||
# ------------------------------------------------------------------------------#
|
||||
#
|
||||
# Finds headers for MPI
|
||||
#
|
||||
# ------------------------------------------------------------------------------#
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
||||
find_path(
|
||||
MPI_HEADERS_INCLUDE_DIR
|
||||
NAMES mpi.h
|
||||
PATH_SUFFIXES include include/mpich include/openmpi mpich openmpi
|
||||
HINTS ${MPI_ROOT_DIR}
|
||||
PATHS ${MPI_ROOT_DIR})
|
||||
|
||||
if(NOT MPI_HEADERS_INCLUDE_DIR)
|
||||
find_package(MPI QUIET)
|
||||
if(MPI_C_INCLUDE_DIRS)
|
||||
set(MPI_HEADERS_INCLUDE_DIR
|
||||
${MPI_C_INCLUDE_DIRS}
|
||||
CACHE PATH "Include directory for MPI" FORCE)
|
||||
elseif(MPI_CXX_INCLUDE_DIRS)
|
||||
set(MPI_HEADERS_INCLUDE_DIR
|
||||
${MPI_CXX_INCLUDE_DIRS}
|
||||
CACHE PATH "Include directory for MPI" FORCE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(MPI_HEADERS_INCLUDE_DIR)
|
||||
set(MPI_HEADERS_INCLUDE_DIRS ${MPI_HEADERS_INCLUDE_DIR})
|
||||
endif()
|
||||
|
||||
mark_as_advanced(MPI_HEADERS_INCLUDE_DIR)
|
||||
find_package_handle_standard_args(MPI-Headers REQUIRED_VARS MPI_HEADERS_INCLUDE_DIR)
|
||||
|
||||
if(MPI-Headers_FOUND)
|
||||
add_library(MPI::MPI_HEADERS IMPORTED INTERFACE)
|
||||
target_include_directories(
|
||||
MPI::MPI_HEADERS INTERFACE $<$<COMPILE_LANGUAGE:C>:${MPI_HEADERS_INCLUDE_DIR}>
|
||||
$<$<COMPILE_LANGUAGE:CXX>:${MPI_HEADERS_INCLUDE_DIR}>)
|
||||
endif()
|
||||
@@ -14,6 +14,7 @@ add_interface_library(
|
||||
hosttrace-dyninst
|
||||
"Provides flags and libraries for Dyninst (dynamic instrumentation)")
|
||||
add_interface_library(hosttrace-roctracer "Provides flags and libraries for roctracer")
|
||||
add_interface_library(hosttrace-mpi "Provides MPI or MPI headers")
|
||||
|
||||
# include threading because of rooflines
|
||||
target_link_libraries(hosttrace-headers INTERFACE hosttrace-threading)
|
||||
@@ -56,6 +57,22 @@ if(HOSTTRACE_USE_ROCTRACER)
|
||||
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_RPATH}:${roctracer_LIBRARY_DIRS}")
|
||||
endif()
|
||||
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
#
|
||||
# MPI
|
||||
#
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
|
||||
if(HOSTTRACE_USE_MPI)
|
||||
find_package(MPI ${hosttrace_FIND_QUIETLY} REQUIRED)
|
||||
target_link_libraries(hosttrace-mpi INTERFACE MPI::MPI_C MPI::MPI_CXX)
|
||||
elseif(HOSTTRACE_USE_MPI_HEADERS)
|
||||
find_package(MPI-Headers ${hosttrace_FIND_QUIETLY} REQUIRED)
|
||||
target_compile_definitions(hosttrace-mpi INTERFACE TIMEMORY_USE_MPI_HEADERS
|
||||
HOSTTRACE_USE_MPI_HEADERS)
|
||||
target_link_libraries(hosttrace-mpi INTERFACE MPI::MPI_HEADERS)
|
||||
endif()
|
||||
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
#
|
||||
# Dyninst
|
||||
@@ -153,7 +170,7 @@ else()
|
||||
|
||||
# useful for defining the location of the runtime API
|
||||
find_library(
|
||||
DYNINST_API_RT dyninstAPI_RT
|
||||
HOSTTRACE_DYNINST_API_RT dyninstAPI_RT
|
||||
HINTS ${Dyninst_ROOT_DIR} ${Dyninst_DIR}
|
||||
PATHS ${Dyninst_ROOT_DIR} ${Dyninst_DIR}
|
||||
PATH_SUFFIXES lib)
|
||||
@@ -174,9 +191,9 @@ else()
|
||||
PATH_SUFFIXES include)
|
||||
endif()
|
||||
|
||||
if(DYNINST_API_RT)
|
||||
target_compile_definitions(hosttrace-dyninst
|
||||
INTERFACE DYNINST_API_RT="${DYNINST_API_RT}")
|
||||
if(HOSTTRACE_DYNINST_API_RT)
|
||||
target_compile_definitions(
|
||||
hosttrace-dyninst INTERFACE DYNINST_API_RT="${HOSTTRACE_DYNINST_API_RT}")
|
||||
endif()
|
||||
|
||||
if(Boost_DIR)
|
||||
|
||||
Reference in New Issue
Block a user