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:
Jonathan R. Madsen
2021-10-01 16:46:03 -05:00
zatwierdzone przez GitHub
rodzic 02f59ec9dc
commit c56b49a0bd
15 zmienionych plików z 188 dodań i 36 usunięć
+41
Wyświetl plik
@@ -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()
+21 -4
Wyświetl plik
@@ -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)