Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

openshmem parcelport #6376

Open
wants to merge 155 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
155 commits
Select commit Hold shift + click to select a range
da9f879
updated merge
May 4, 2024
684aa7a
fixes to cmake script
ct-clmsn Oct 24, 2023
b9707c1
cmake-format applied
ct-clmsn Oct 24, 2023
66d3769
fixed misquote
ct-clmsn Oct 25, 2023
f28d8b4
cmake formatting reapplied
ct-clmsn Oct 25, 2023
740420c
fixed bugs in cmake script
ct-clmsn Oct 27, 2023
a7a97b4
cmake formatting updates
ct-clmsn Oct 27, 2023
90386c1
fixed arguments
ct-clmsn Oct 27, 2023
af3c83a
added debugging for build failures
ct-clmsn Oct 27, 2023
3a0091b
correctly post-processing PMI paths
ct-clmsn Oct 27, 2023
a151f0e
rm'd include of shmem
ct-clmsn Oct 27, 2023
9048070
shmem is already extern "C"
ct-clmsn Oct 27, 2023
b46ad1c
fixing header issues
ct-clmsn Oct 27, 2023
2c4b944
builder include issues
ct-clmsn Oct 28, 2023
43d9d19
adding maybe_unused to init arguments
ct-clmsn Oct 28, 2023
420bed6
cmake formatting
ct-clmsn Oct 28, 2023
c512b26
added maybe unused; corrected missing definition
ct-clmsn Oct 28, 2023
90882d8
working to sort out why is being declared undefined
ct-clmsn Oct 28, 2023
ab55f2d
removed preprocessor guards
ct-clmsn Oct 28, 2023
71b7656
added def header file
ct-clmsn Oct 28, 2023
761f753
added def header file
ct-clmsn Oct 28, 2023
a8315fd
adding support for openmpi's openshmem
ct-clmsn Oct 29, 2023
e0f15b8
updated merge
May 4, 2024
bdbebad
cmake format applied
ct-clmsn Oct 29, 2023
9c6de43
cmake format applied
ct-clmsn Oct 29, 2023
a1753e6
openmpi/openshmem pkgconfig file
ct-clmsn Oct 30, 2023
70a6a49
openmpi/openshmem pkgconfig file
ct-clmsn Oct 30, 2023
b0ab5ca
openmpi/openshmem pkgconfig file
ct-clmsn Oct 30, 2023
491e918
pkgconfig checks for openmpi's oshmem
ct-clmsn Oct 30, 2023
ee0fce6
cmake formatting
ct-clmsn Oct 30, 2023
8dd543e
added error handling and proper PKG_CONFIG_PATH appending
ct-clmsn Oct 30, 2023
11b1e4b
cmake formatting
ct-clmsn Oct 30, 2023
14532ba
cmake logic error
ct-clmsn Oct 30, 2023
259037e
cmake logic error
ct-clmsn Oct 30, 2023
b6f769c
cmake logic error
ct-clmsn Oct 30, 2023
d82bdb9
cmake logic error
ct-clmsn Oct 30, 2023
f653dfd
cmake logic error
ct-clmsn Oct 30, 2023
a094610
cmake logic error
ct-clmsn Oct 30, 2023
600f6d3
cmake logic error
ct-clmsn Oct 30, 2023
c34abaf
cmake logic error
ct-clmsn Oct 30, 2023
15e1c4d
cmake logic error
ct-clmsn Oct 30, 2023
858b293
cmake logic error
ct-clmsn Oct 30, 2023
3323702
updated merge
May 4, 2024
6a0bd44
formatting
ct-clmsn Nov 2, 2023
68bcbf6
added documentation
ct-clmsn Nov 2, 2023
aedb8af
fixed documentation
ct-clmsn Nov 2, 2023
e58a00f
rm'd extraneous cmake variable
ct-clmsn Nov 2, 2023
b8a9634
updated with missing openshmem testing information
ct-clmsn Nov 2, 2023
20cc1e3
updated with missing openshmem testing information
ct-clmsn Nov 2, 2023
82048a8
updated merge
May 4, 2024
bf65478
updated with missing openshmem testing information
ct-clmsn Nov 2, 2023
601a0e6
rm'd unnecessary compilation flag
ct-clmsn Nov 3, 2023
c5d4ef1
updated merge
May 4, 2024
f89240a
fixed early return issue
ct-clmsn Nov 6, 2023
a4b4064
updated merge
May 5, 2024
f353b99
fixed outstanding issue
ct-clmsn Nov 6, 2023
5a7589e
fixed outstanding issue
ct-clmsn Nov 6, 2023
005d34f
fixed outstanding issue
ct-clmsn Nov 6, 2023
78a9200
added debugging message
ct-clmsn Nov 6, 2023
bc63e5b
fixed undefined macro issue
ct-clmsn Nov 6, 2023
c2da321
rollback to a semantically equivalent implementation if put_signal is…
ct-clmsn Nov 6, 2023
4fb5279
updated with clang-formatting
ct-clmsn Nov 6, 2023
f2ecbc6
additional fixes for openmpi-openshmem
ct-clmsn Nov 7, 2023
7c1cc66
additional fixes for openmpi-openshmem
ct-clmsn Nov 7, 2023
1ac506e
additional fixes for openmpi-openshmem
ct-clmsn Nov 7, 2023
65894f0
additional fixes for openmpi-openshmem
ct-clmsn Nov 7, 2023
b6eb006
fixing checks on oshmem_info
ct-clmsn Nov 7, 2023
1ab54a9
debugging issues with oshmem_info
ct-clmsn Nov 7, 2023
4cc40a4
cmake formatting change
ct-clmsn Nov 7, 2023
4a5769b
adding debugging information
ct-clmsn Nov 7, 2023
b05f5fd
several fixes for documentation and manual
ct-clmsn Nov 9, 2023
9d9dd9f
updated merge
May 5, 2024
b59b4bf
updated merge
May 5, 2024
19b6e73
List collectives in a table
dimitraka Oct 1, 2023
3ca15cb
Add distributed public API for collectives, latch, barrier
dimitraka Oct 10, 2023
91c9569
updated merge
May 5, 2024
dd932ef
updated merge
May 5, 2024
c4d1d9b
updated merge
May 5, 2024
b2cba86
updated merge
May 5, 2024
b6f2f3c
updated merge
May 5, 2024
9a768ba
updated merge
May 5, 2024
f1c92a8
fixing missing escaped quotes
ct-clmsn Dec 2, 2023
cff01d0
fixed indentation error
ct-clmsn Dec 5, 2023
836ff64
fixing unindent issue
ct-clmsn Dec 5, 2023
ce8103d
updated merge
May 5, 2024
b68be50
updated merge
May 5, 2024
8ac46b5
merging openshmem changes
ct-clmsn Jan 12, 2024
ee17f2b
Add distributed public API for collectives, latch, barrier
dimitraka Oct 10, 2023
0a08b42
Add doxygen docs
dimitraka Oct 13, 2023
b1609b6
Add documentation
dimitraka Oct 17, 2023
1bc97b2
added amudprun and oshrun
ct-clmsn Dec 2, 2023
1218193
fixed broken script
ct-clmsn Mar 11, 2024
00b42ee
several performance oriented updates
ct-clmsn Mar 25, 2024
5400e4e
missing pkgconfig check
ct-clmsn Mar 25, 2024
fff72b2
several small fixes to improve performance; found some implementation…
ct-clmsn Apr 8, 2024
99504a6
adding comments
ct-clmsn Apr 12, 2024
0f249ce
updated merge
May 5, 2024
561cc4d
updated merge
May 5, 2024
137d15a
cmake formatting reapplied
ct-clmsn Oct 25, 2023
fe9d083
Add distributed public API for collectives, latch, barrier
dimitraka Oct 10, 2023
a5e3f0b
Add doxygen docs
dimitraka Oct 13, 2023
005d30b
Add documentation
dimitraka Oct 17, 2023
fb9b423
updated merge
May 5, 2024
3aa422a
updated merge
May 5, 2024
62afa48
resolving rebase
ct-clmsn Dec 2, 2023
32e4860
updated merge
May 5, 2024
215adb9
updated merge
May 5, 2024
793b745
correcting issues with gasnet and openshmem unit tests
ct-clmsn Apr 13, 2024
63f915e
redundant variable
ct-clmsn Apr 16, 2024
75b213b
fixed compilation issue w/num_threads
ct-clmsn Apr 16, 2024
6d38b15
fixed locality scoped locking
ct-clmsn Apr 17, 2024
1258a13
removed double lock
ct-clmsn Apr 18, 2024
3051bdd
moved locks around
ct-clmsn Apr 18, 2024
5a5d657
rm'd tags
ct-clmsn Apr 19, 2024
a0f5201
updates
ct-clmsn Apr 19, 2024
14cd57b
added improved receive support
ct-clmsn Apr 19, 2024
4610458
rm'd redundant index computations
ct-clmsn Apr 19, 2024
f0c6e9c
corrected resetting rcv signal
ct-clmsn Apr 19, 2024
455bfb2
fixed some locking issues
ct-clmsn Apr 19, 2024
cefee61
implement wait loop in case MPI openshmem is installed
ct-clmsn Apr 22, 2024
cc29b1f
implement wait loop in case MPI openshmem is installed
ct-clmsn Apr 22, 2024
5078e17
implement wait loop in case MPI openshmem is installed
ct-clmsn Apr 22, 2024
f124a04
implement wait loop in case MPI openshmem is installed
ct-clmsn Apr 22, 2024
b4b1cf0
implement wait loop in case MPI openshmem is installed
ct-clmsn Apr 22, 2024
c4d1107
implement wait loop in case MPI openshmem is installed
ct-clmsn Apr 22, 2024
d39b69a
implement wait loop in case MPI openshmem is installed
ct-clmsn Apr 23, 2024
56d135e
implement wait loop in case MPI openshmem is installed
ct-clmsn Apr 23, 2024
6d6af07
implement wait loop in case MPI openshmem is installed
ct-clmsn Apr 23, 2024
0a61bb6
implement wait loop in case MPI openshmem is installed
ct-clmsn Apr 23, 2024
bb85e88
updating openshmem_environment
ct-clmsn Apr 24, 2024
b1529f7
reduced symmetric memory allocation
ct-clmsn Apr 24, 2024
aa5040f
fixing lock issue
ct-clmsn Apr 24, 2024
db9a623
switching to spinlocks:
ct-clmsn Apr 24, 2024
0f6818e
updated data types
ct-clmsn Apr 25, 2024
5ffb5fd
rm'd locks
ct-clmsn Apr 25, 2024
6a385da
working to remove locks
ct-clmsn Apr 25, 2024
cbcd9d8
adding improvement to locality support
ct-clmsn Apr 25, 2024
a0be4bc
small fixes
ct-clmsn Apr 26, 2024
caaad17
additional fixes
ct-clmsn Apr 26, 2024
a03504d
additional fixes
ct-clmsn Apr 26, 2024
7d472da
rm'd double-lock
ct-clmsn Apr 29, 2024
59f8f14
working on locks
ct-clmsn Apr 29, 2024
c16d93d
several changes to improve locking
ct-clmsn Apr 30, 2024
da7219a
compile fixes
May 4, 2024
d26b61d
updated merge
May 5, 2024
ab462c3
several fixes for mpi-openshmem and ucx-openshmem
May 8, 2024
7b9e2ca
fixed a small issue with state machine calls
May 8, 2024
e9ed800
added sos support
May 10, 2024
34b3628
updates
May 17, 2024
6af97e8
reworking communications
May 24, 2024
8ee4370
updates to parcelport
ct-clmsn Jun 26, 2024
345286c
resolves merge conflicts
Jul 16, 2024
50318e1
several fixes to protocol
Jul 17, 2024
d0f5ca0
Fix last issues
Jul 27, 2024
e522bfc
Merge pull request #1 from constracktor/openshmem-parcelport
ct-clmsn Aug 16, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .jenkins/lsu/env-clang-12.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ configure_extra_options+=" -DHPX_WITH_COMPILER_WARNINGS_AS_ERRORS=ON"
configure_extra_options+=" -DHPX_WITH_PARCELPORT_MPI=ON"
configure_extra_options+=" -DHPX_WITH_PARCELPORT_LCI=ON"
configure_extra_options+=" -DHPX_WITH_FETCH_LCI=ON"
configure_extra_options+=" -DHPX_WITH_PARCELPORT_OPENSHMEM=ON"
configure_extra_options+=" -DHPX_WITH_PARCELPORT_OPENSHMEM_CONDUIT=mpi"
configure_extra_options+=" -DCMAKE_C_COMPILER=clang"
configure_extra_options+=" -DCMAKE_C_FLAGS=-fPIC"
configure_extra_options+=" -DHPX_WITH_LOGGING=OFF"
Expand Down
2 changes: 2 additions & 0 deletions .jenkins/lsu/env-clang-13.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ configure_extra_options+=" -DHPX_WITH_COMPILER_WARNINGS_AS_ERRORS=ON"
configure_extra_options+=" -DHPX_WITH_PARCELPORT_MPI=ON"
configure_extra_options+=" -DHPX_WITH_PARCELPORT_LCI=ON"
configure_extra_options+=" -DHPX_WITH_FETCH_LCI=ON"
configure_extra_options+=" -DHPX_WITH_PARCELPORT_OPENSHMEM=ON"
configure_extra_options+=" -DHPX_WITH_PARCELPORT_OPENSHMEM_CONDUIT=mpi"
configure_extra_options+=" -DCMAKE_C_COMPILER=clang"
configure_extra_options+=" -DCMAKE_C_FLAGS=-fPIC"
configure_extra_options+=" -DHPX_WITH_LOGGING=OFF"
Expand Down
4 changes: 2 additions & 2 deletions .jenkins/lsu/env-clang-14.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ configure_extra_options+=" -DHPX_WITH_COMPILER_WARNINGS_AS_ERRORS=ON"
configure_extra_options+=" -DHPX_WITH_PARCELPORT_MPI=ON"
configure_extra_options+=" -DHPX_WITH_PARCELPORT_LCI=ON"
configure_extra_options+=" -DHPX_WITH_FETCH_LCI=ON"
configure_extra_options+=" -DCMAKE_C_COMPILER=clang"
configure_extra_options+=" -DCMAKE_C_FLAGS=-fPIC"
configure_extra_options+=" -DHPX_WITH_PARCELPORT_OPENSHMEM=ON"
configure_extra_options+=" -DHPX_WITH_PARCELPORT_OPENSHMEM_CONDUIT=mpi"
configure_extra_options+=" -DHPX_WITH_LOGGING=OFF"
configure_extra_options+=" -DHPX_WITH_DATAPAR_BACKEND=EVE"
configure_extra_options+=" -DHPX_WITH_FETCH_EVE=ON"
Expand Down
2 changes: 2 additions & 0 deletions .jenkins/lsu/env-clang-15.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ configure_extra_options+=" -DHPX_WITH_COMPILER_WARNINGS_AS_ERRORS=ON"
configure_extra_options+=" -DHPX_WITH_PARCELPORT_MPI=ON"
configure_extra_options+=" -DHPX_WITH_PARCELPORT_LCI=ON"
configure_extra_options+=" -DHPX_WITH_FETCH_LCI=ON"
configure_extra_options+=" -DHPX_WITH_PARCELPORT_OPENSHMEM=ON"
configure_extra_options+=" -DHPX_WITH_PARCELPORT_OPENSHMEM_CONDUIT=mpi"
configure_extra_options+=" -DCMAKE_C_COMPILER=clang"
configure_extra_options+=" -DCMAKE_C_FLAGS=-fPIC"
configure_extra_options+=" -DHPX_WITH_LOGGING=OFF"
Expand Down
2 changes: 2 additions & 0 deletions .jenkins/lsu/env-clang-16.sh
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ configure_extra_options+=" -DHPX_WITH_PARCELPORT_LCI=ON"
configure_extra_options+=" -DHPX_WITH_FETCH_LCI=ON"
configure_extra_options+=" -DCMAKE_C_COMPILER=clang"
configure_extra_options+=" -DCMAKE_C_FLAGS=-fPIC"
configure_extra_options+=" -DHPX_WITH_PARCELPORT_OPENSHMEM=ON"
configure_extra_options+=" -DHPX_WITH_PARCELPORT_OPENSHMEM_CONDUIT=mpi"
configure_extra_options+=" -DHPX_WITH_LOGGING=OFF"
configure_extra_options+=" -DHPX_WITH_DATAPAR_BACKEND=EVE"
configure_extra_options+=" -DHPX_WITH_FETCH_EVE=ON"
Expand Down
2 changes: 2 additions & 0 deletions .jenkins/lsu/env-clang-17.sh
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ configure_extra_options+=" -DHPX_WITH_PARCELPORT_LCI=ON"
configure_extra_options+=" -DHPX_WITH_FETCH_LCI=ON"
configure_extra_options+=" -DCMAKE_C_COMPILER=clang"
configure_extra_options+=" -DCMAKE_C_FLAGS=-fPIC"
configure_extra_options+=" -DHPX_WITH_PARCELPORT_OPENSHMEM=ON"
configure_extra_options+=" -DHPX_WITH_PARCELPORT_OPENSHMEM_CONDUIT=mpi"
configure_extra_options+=" -DHPX_WITH_LOGGING=OFF"
configure_extra_options+=" -DHPX_WITH_DATAPAR_BACKEND=EVE"
configure_extra_options+=" -DHPX_WITH_FETCH_EVE=ON"
Expand Down
2 changes: 2 additions & 0 deletions .jenkins/lsu/env-gcc-10.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ configure_extra_options+=" -DHPX_WITH_COMPILER_WARNINGS_AS_ERRORS=ON"
configure_extra_options+=" -DHPX_WITH_PARCELPORT_MPI=ON"
configure_extra_options+=" -DHPX_WITH_PARCELPORT_LCI=ON"
configure_extra_options+=" -DHPX_WITH_FETCH_LCI=ON"
configure_extra_options+=" -DHPX_WITH_PARCELPORT_OPENSHMEM=ON"
configure_extra_options+=" -DHPX_WITH_PARCELPORT_OPENSHMEM_CONDUIT=mpi"
configure_extra_options+=" -DCMAKE_C_COMPILER=gcc"
configure_extra_options+=" -DCMAKE_C_FLAGS=-fPIC"

Expand Down
2 changes: 2 additions & 0 deletions .jenkins/lsu/env-gcc-12.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ configure_extra_options+=" -DHPX_WITH_COMPILER_WARNINGS_AS_ERRORS=ON"
configure_extra_options+=" -DHPX_WITH_PARCELPORT_MPI=ON"
configure_extra_options+=" -DHPX_WITH_PARCELPORT_LCI=ON"
configure_extra_options+=" -DHPX_WITH_FETCH_LCI=ON"
configure_extra_options+=" -DHPX_WITH_PARCELPORT_OPENSHMEM=ON"
configure_extra_options+=" -DHPX_WITH_PARCELPORT_OPENSHMEM_CONDUIT=mpi"
configure_extra_options+=" -DCMAKE_C_COMPILER=gcc"
configure_extra_options+=" -DCMAKE_C_FLAGS=-fPIC"
configure_extra_options+=" -DHPX_WITH_DATAPAR_BACKEND=EVE"
Expand Down
2 changes: 2 additions & 0 deletions .jenkins/lsu/env-gcc-13.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ configure_extra_options+=" -DHPX_WITH_COMPILER_WARNINGS_AS_ERRORS=ON"
configure_extra_options+=" -DHPX_WITH_PARCELPORT_MPI=ON"
configure_extra_options+=" -DHPX_WITH_PARCELPORT_LCI=ON"
configure_extra_options+=" -DHPX_WITH_FETCH_LCI=ON"
configure_extra_options+=" -DHPX_WITH_PARCELPORT_OPENSHMEM=ON"
configure_extra_options+=" -DHPX_WITH_PARCELPORT_OPENSHMEM_CONDUIT=mpi"
configure_extra_options+=" -DCMAKE_C_COMPILER=gcc"
configure_extra_options+=" -DCMAKE_C_FLAGS=-fPIC"
configure_extra_options+=" -DHPX_WITH_DATAPAR_BACKEND=EVE"
Expand Down
23 changes: 23 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1228,6 +1228,25 @@ if(HPX_WITH_NETWORKING)
)
endif()

hpx_option(
HPX_WITH_PARCELPORT_OPENSHMEM BOOL "Enable the OPENSHMEM based parcelport."
OFF CATEGORY "Parcelport"
)
hpx_option(
HPX_WITH_FETCH_OPENSHMEM BOOL
"Download an OpenSHMEM if one is not available" OFF
CATEGORY "Build Targets"
ADVANCED
)
if(HPX_WITH_PARCELPORT_OPENSHMEM)
hpx_add_config_define(HPX_HAVE_PARCELPORT_OPENSHMEM)
hpx_option(
HPX_WITH_PARCELPORT_OPENSHMEM_CONDUIT STRING
"Define which conduit to use for the OpenSHMEM parcelport" "sos"
STRINGS "sos;ucx;mpi"
)
endif()

hpx_option(
HPX_WITH_PARCELPORT_TCP BOOL "Enable the TCP based parcelport." ON
CATEGORY "Parcelport"
Expand Down Expand Up @@ -2238,6 +2257,10 @@ if(HPX_WITH_NETWORKING AND HPX_WITH_PARCELPORT_GASNET)
include(HPX_SetupGasnet)
hpx_setup_gasnet()
endif()
if(HPX_WITH_NETWORKING AND HPX_WITH_PARCELPORT_OPENSHMEM)
include(HPX_SetupOpenSHMEM)
hpx_setup_openshmem()
endif()

# Setup packages and subprojects
include(HPX_SetupSYCL)
Expand Down
65 changes: 65 additions & 0 deletions cmake/FindOpenShmemPmi.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# Copyright (c) 2023 Christopher Taylor
#
# SPDX-License-Identifier: BSL-1.0
# 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)

find_package(PkgConfig QUIET)
# look for cray pmi...
pkg_check_modules(PC_PMI_CRAY QUIET cray-pmi)
# look for the rest if we couldn't find the cray package
if(NOT PC_PMI_CRAY_FOUND)
pkg_check_modules(PC_PMI QUIET pmi)
endif()

find_path(
PMI_INCLUDE_DIR pmi2.h
HINTS ${PMI_ROOT}
ENV
PMI_ROOT
${PMI_DIR}
ENV
PMI_DIR
${PC_PMI_CRAY_INCLUDEDIR}
${PC_PMI_CRAY_INCLUDE_DIRS}
${PC_PMI_INCLUDEDIR}
${PC_PMI_INCLUDE_DIRS}
PATH_SUFFIXES include
)

find_library(
PMI_LIBRARY
NAMES pmi
HINTS ${PMI_ROOT}
ENV
PMI_ROOT
${PC_PMI_CRAY_LIBDIR}
${PC_PMI_CRAY_LIBRARY_DIRS}
${PC_PMI_LIBDIR}
${PC_PMI_LIBRARY_DIRS}
PATH_SUFFIXES lib lib64
)

# Set PMI_ROOT in case the other hints are used
if(PMI_ROOT)
# The call to file is for compatibility with windows paths
file(TO_CMAKE_PATH ${PMI_ROOT} PMI_ROOT)
elseif("$ENV{PMI_ROOT}")
file(TO_CMAKE_PATH $ENV{PMI_ROOT} PMI_ROOT)
else()
file(TO_CMAKE_PATH "${PMI_INCLUDE_DIR}" PMI_INCLUDE_DIR)
string(REPLACE "/include" "" PMI_ROOT "${PMI_INCLUDE_DIR}")
endif()

if(NOT PMI_LIBRARY OR NOT PMI_INCLUDE_DIR)
set(PMI_FOUND=OFF)
return()
endif()

# hpx_error( "PMI_LIBRARY OR PMI_INCLUDE_DIR not found, please install PMI or
# set \ the right PMI_ROOT path" )

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(PMI DEFAULT_MSG PMI_LIBRARY PMI_INCLUDE_DIR)

mark_as_advanced(PMI_ROOT PMI_LIBRARY PMI_INCLUDE_DIR)
36 changes: 33 additions & 3 deletions cmake/HPX_AddTest.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,14 @@
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

function(add_hpx_test category name)
set(options FAILURE_EXPECTED RUN_SERIAL NO_PARCELPORT_TCP NO_PARCELPORT_MPI
NO_PARCELPORT_LCI NO_PARCELPORT_GASNET
set(options
FAILURE_EXPECTED
RUN_SERIAL
NO_PARCELPORT_TCP
NO_PARCELPORT_MPI
NO_PARCELPORT_LCI
NO_PARCELPORT_GASNET
NO_PARCELPORT_OPENSHMEM
)
set(one_value_args EXECUTABLE LOCALITIES THREADS_PER_LOCALITY TIMEOUT
RUNWRAPPER
Expand Down Expand Up @@ -196,7 +202,7 @@ function(add_hpx_test category name)
if(_add_test)
set(_full_name "${category}.distributed.gasnet.${name}")
add_test(NAME "${_full_name}" COMMAND ${cmd} "-p" "gasnet" "-r"
"gasnet-smp" ${args}
"srun" ${args}
)
set_tests_properties(
"${_full_name}"
Expand All @@ -211,6 +217,30 @@ function(add_hpx_test category name)
endif()
endif()
endif()
if(HPX_WITH_PARCELPORT_OPENSHMEM AND NOT ${name}_NO_PARCELPORT_OPENSHMEM)
set(_add_test FALSE)
if(DEFINED ${name}_PARCELPORTS)
set(PP_FOUND -1)
list(FIND ${name}_PARCELPORTS "openshmem" PP_FOUND)
if(NOT PP_FOUND EQUAL -1)
set(_add_test TRUE)
endif()
else()
set(_add_test TRUE)
endif()
if(_add_test)
set(_full_name "${category}.distributed.openshmem.${name}")
add_test(NAME "${_full_name}" COMMAND ${cmd} "-p" "openshmem" "-r"
"srun" ${args}
)
set_tests_properties("${_full_name}" PROPERTIES RUN_SERIAL TRUE)
if(${name}_TIMEOUT)
set_tests_properties(
"${_full_name}" PROPERTIES TIMEOUT ${${name}_TIMEOUT}
)
endif()
endif()
endif()
if(HPX_WITH_PARCELPORT_TCP AND NOT ${${name}_NO_PARCELPORT_TCP})
set(_add_test FALSE)
if(DEFINED ${name}_PARCELPORTS)
Expand Down
10 changes: 5 additions & 5 deletions cmake/HPX_SetupGasnet.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ macro(hpx_setup_gasnet)
execute_process(
COMMAND
bash -c
"CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} CFLAGS=-fPIC CCFLAGS=-fPIC CXXFLAGS=-fPIC ./configure --prefix=${GASNET_DIR}/install --with-cflags=-fPIC --with-cxxflags=-fPIC --enable-udp && make -j ${GASNET_BUILD_PARALLEL_LEVEL} && make install"
"CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} CFLAGS=\"-fPIC\" CCFLAGS=\"-fPIC\" CXXFLAGS=\"-fPIC\" ./configure --prefix=${GASNET_DIR}/install --with-cflags=\"-fPIC\" --with-cxxflags=\"-fPIC\" --enable-udp && make -j ${GASNET_BUILD_PARALLEL_LEVEL} && make install"
WORKING_DIRECTORY ${GASNET_DIR}
RESULT_VARIABLE GASNET_BUILD_STATUS
OUTPUT_FILE ${GASNET_BUILD_OUTPUT}
Expand All @@ -129,7 +129,7 @@ macro(hpx_setup_gasnet)
execute_process(
COMMAND
bash -c
"CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} CFLAGS=-fPIC CCFLAGS=-fPIC CXXFLAGS=-fPIC ./configure --prefix=${GASNET_DIR}/install --with-cflags=-fPIC --with-cxxflags=-fPIC --enable-smp && make -j ${GASNET_BUILD_PARALLEL_LEVEL} && make install"
"CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} CFLAGS=\"-fPIC\" CCFLAGS=\"-fPIC\" CXXFLAGS=\"-fPIC\" ./configure --prefix=${GASNET_DIR}/install --with-cflags=\"-fPIC\" --with-cxxflags=\"-fPIC\" --enable-smp && make -j ${GASNET_BUILD_PARALLEL_LEVEL} && make install"
WORKING_DIRECTORY ${GASNET_DIR}
RESULT_VARIABLE GASNET_BUILD_STATUS
OUTPUT_FILE ${GASNET_BUILD_OUTPUT}
Expand All @@ -139,7 +139,7 @@ macro(hpx_setup_gasnet)
execute_process(
COMMAND
bash -c
"CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} CFLAGS=-fPIC CCFLAGS=-fPIC CXXFLAGS=-fPIC ./configure --enable-ofi --with-ofi-home=${OFI_DIR} --prefix=${GASNET_DIR}/install --with-cflags=-fPIC --with-cxxflags=-fPIC && make -j ${GASNET_BUILD_PARALLEL_LEVEL} && make install"
"CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} CFLAGS=\"-fPIC\" CCFLAGS=\"-fPIC\" CXXFLAGS=\"-fPIC\" ./configure --prefix=${GASNET_DIR}/install --with-cflags=\"-fPIC\" --with-cxxflags=\"-fPIC\" --enable-ofi --with-ofi-home=${OFI_DIR} && make -j ${GASNET_BUILD_PARALLEL_LEVEL} && make install"
WORKING_DIRECTORY ${GASNET_DIR}
RESULT_VARIABLE GASNET_BUILD_STATUS
OUTPUT_FILE ${GASNET_BUILD_OUTPUT}
Expand All @@ -149,7 +149,7 @@ macro(hpx_setup_gasnet)
execute_process(
COMMAND
bash -c
"CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} CFLAGS=-fPIC CCFLAGS=-fPIC CXXFLAGS=-fPIC ./configure --enable-ucx --with-ucx-home=${UCX_DIR} --prefix=${GASNET_DIR}/install --with-cflags=-fPIC --with-cxxflags=-fPIC && make -j ${GASNET_BUILD_PARALLEL_LEVEL} && make install"
"CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} CFLAGS=\"-fPIC\" CCFLAGS=\"-fPIC\" CXXFLAGS=\"-fPIC\" ./configure --prefix=${GASNET_DIR}/install --with-cflags=\"-fPIC\" --with-cxxflags=\"-fPIC\" --enable-ucx --with-ucx-home=${UCX_DIR} && make -j ${GASNET_BUILD_PARALLEL_LEVEL} && make install"
WORKING_DIRECTORY ${GASNET_DIR}
RESULT_VARIABLE GASNET_BUILD_STATUS
OUTPUT_FILE ${GASNET_BUILD_OUTPUT}
Expand Down Expand Up @@ -185,7 +185,7 @@ macro(hpx_setup_gasnet)
execute_process(
COMMAND
bash -c
"CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} CFLAGS=-fPIC CCFLAGS=-fPIC CXXFLAGS=-fPIC ./configure --enable-mpi --with-mpi-cc=${CMAKE_C_COMPILER} --with-mpi-libs=${MPI_C_LIBRARIES} --prefix=${GASNET_DIR}/install --with-cflags=-fPIC --with-cxxflags=-fPIC && make -j ${GASNET_BUILD_PARALLEL_LEVEL} && make install"
"CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} CFLAGS=\"-fPIC\" CCFLAGS=\"-fPIC\" CXXFLAGS=\"-fPIC\" ./configure --prefix=${GASNET_DIR}/install --with-cflags=\"-fPIC\" --with-cxxflags=\"-fPIC\" --enable-mpi --with-mpi-cc=${CMAKE_C_COMPILER} --with-mpi-libs=${MPI_C_LIBRARIES} && make -j ${GASNET_BUILD_PARALLEL_LEVEL} && make install"
WORKING_DIRECTORY ${GASNET_DIR}
RESULT_VARIABLE GASNET_BUILD_STATUS
OUTPUT_FILE ${GASNET_BUILD_OUTPUT}
Expand Down
Loading