diff --git a/README.md b/README.md index 5fa97a6b..687a2579 100644 --- a/README.md +++ b/README.md @@ -99,7 +99,7 @@ Supported Runtime Systems HPX (Louisiana State University) --------------------------------- -HPX (High Performance ParalleX) is the original implementation of the ParalleX model. Developed and maintained by the Ste||ar Group at Louisiana State University, HPX is implemented in C++. For more information, see [http://stellar.cct.lsu.edu/tag/hpx/](http://stellar.cct.lsu.edu/tag/hpx/). For a tutorial on HPX with APEX (presented at SC'17, Austin TX) see [http://www.nic.uoregon.edu/~khuck/SC17-HPX-APEX.pdf](http://www.nic.uoregon.edu/~khuck/SC17-HPX-APEX.pdf). +HPX (High Performance ParalleX) is the original implementation of the ParalleX model. Developed and maintained by the Ste||ar Group at Louisiana State University, HPX is implemented in C++. For more information, see [http://stellar.cct.lsu.edu/tag/hpx/](http://stellar.cct.lsu.edu/tag/hpx/). For a tutorial on HPX with APEX (presented at SC'17, Austin TX) see [http://www.nic.uoregon.edu/~khuck/SC17-HPX-APEX.pdf](http://www.nic.uoregon.edu/~khuck/SC17-HPX-APEX.pdf). The integration specification is available [here](http://www.nic.uoregon.edu/~khuck/Phylanx/2019_report.pdf). HPX5 (Indiana University) ------------------------- diff --git a/cmake/Modules/APEX_SetupHPXMP.cmake b/cmake/Modules/APEX_SetupHPXMP.cmake new file mode 100644 index 00000000..7da1f3fe --- /dev/null +++ b/cmake/Modules/APEX_SetupHPXMP.cmake @@ -0,0 +1,15 @@ +# Copyright (c) 2019 University of Oregon +# +# Distributed under the Boost Software License, Version 1.0. (See accompanying +# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +add_library(apex::hpxmp INTERFACE IMPORTED) +set_property(TARGET apex::hpxmp PROPERTY + INTERFACE_INCLUDE_DIRECTORIES ${HPXMP_INCLUDE_DIRS} ${CMAKE_SOURCE_DIR}/hpxmp/src) +set_property(TARGET apex::hpxmp PROPERTY + INTERFACE_LINK_LIBRARIES ${HPXMP_LIBRARIES}) +set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_RPATH} ${HPXMP_LIBRARY_DIR}) +message(INFO " Using binutils: ${HPXMP_LIBRARY_DIR} ${HPXMP_LIBRARIES}") + +list(APPEND _apex_imported_targets apex::hpxmp) + diff --git a/src/apex/CMakeLists.hpx b/src/apex/CMakeLists.hpx index 19896e84..c1064ce6 100644 --- a/src/apex/CMakeLists.hpx +++ b/src/apex/CMakeLists.hpx @@ -260,6 +260,13 @@ if(APEX_WITH_OTF2) set(otf2_sources otf2_listener.cpp) endif() +if(HPX_WITH_HPXMP) + set(ompt_sources apex_ompt.cpp) + include(APEX_SetupHPXMP) + set(ompt_dependency apex::hpxmp) +endif(HPX_WITH_HPXMP) + + ################################## # Setup main apex static library # set(apex_headers @@ -308,11 +315,13 @@ set(apex_sources ${bfd_sources} ${sensor_sources} ${otf2_sources} + ${ompt_sources} ) include(GNUInstallDirs) # APEX has one dependency in HPX, just the main library. +# Unless HPXMP is also used. add_hpx_library(apex DYNAMIC NOLIBS EXCLUDE_FROM_ALL @@ -321,6 +330,7 @@ add_hpx_library(apex HEADERS ${apex_headers} DEPENDENCIES ${_dependencies} hpx + ${ompt_dependency} FOLDER "Core/Dependencies") target_include_directories(apex PUBLIC