Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,5 @@ packages
.vs
.idea
cmake-build*
/.cache
/.cache
vscode-build
1 change: 1 addition & 0 deletions .jenkins/lsu-test-coverage/batch.sh
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ cmake \
-DHPX_WITH_PARCELPORT_MPI=ON \
-DHPX_WITH_PARCELPORT_LCI=ON \
-DHPX_WITH_FETCH_LCI=ON \
-DHPX_WITH_LCI_BOOTSTRAP_MPI=ON \
-DCMAKE_CXX_FLAGS="-O0 --coverage" \
-DCMAKE_EXE_LINKER_FLAGS=--coverage

Expand Down
1 change: 1 addition & 0 deletions .jenkins/lsu/env-clang-16.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ 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_LCI_BOOTSTRAP_MPI=ON"
configure_extra_options+=" -DCMAKE_C_COMPILER=clang"
configure_extra_options+=" -DCMAKE_C_FLAGS=-fPIC"
configure_extra_options+=" -DHPX_WITH_LOGGING=OFF"
Expand Down
1 change: 1 addition & 0 deletions .jenkins/lsu/env-clang-17.sh
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ 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_LCI_BOOTSTRAP_MPI=ON"
configure_extra_options+=" -DCMAKE_C_COMPILER=clang"
configure_extra_options+=" -DCMAKE_C_FLAGS=-fPIC"
configure_extra_options+=" -DHPX_WITH_LOGGING=OFF"
Expand Down
1 change: 1 addition & 0 deletions .jenkins/lsu/env-clang-18.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ 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_LCI_BOOTSTRAP_MPI=ON"
configure_extra_options+=" -DCMAKE_C_COMPILER=clang"
configure_extra_options+=" -DCMAKE_C_FLAGS=-fPIC"
configure_extra_options+=" -DHPX_WITH_LOGGING=OFF"
Expand Down
1 change: 1 addition & 0 deletions .jenkins/lsu/env-clang-19.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ 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_LCI_BOOTSTRAP_MPI=ON"
configure_extra_options+=" -DCMAKE_C_COMPILER=clang"
configure_extra_options+=" -DCMAKE_C_FLAGS=-fPIC"
configure_extra_options+=" -DHPX_WITH_LOGGING=OFF"
Expand Down
1 change: 1 addition & 0 deletions .jenkins/lsu/env-clang-20.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ 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_LCI_BOOTSTRAP_MPI=ON"
configure_extra_options+=" -DCMAKE_C_COMPILER=clang"
configure_extra_options+=" -DCMAKE_C_FLAGS=-fPIC"
configure_extra_options+=" -DHPX_WITH_LOGGING=OFF"
Expand Down
1 change: 1 addition & 0 deletions .jenkins/lsu/env-gcc-13.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ 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_LCI_BOOTSTRAP_MPI=ON"
configure_extra_options+=" -DCMAKE_C_COMPILER=gcc"
configure_extra_options+=" -DCMAKE_C_FLAGS=-fPIC"
configure_extra_options+=" -DHPX_WITH_DATAPAR_BACKEND=EVE"
Expand Down
1 change: 1 addition & 0 deletions .jenkins/lsu/env-gcc-14.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ 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_LCI_BOOTSTRAP_MPI=ON"
configure_extra_options+=" -DCMAKE_C_COMPILER=gcc"
configure_extra_options+=" -DCMAKE_C_FLAGS=-fPIC"
configure_extra_options+=" -DHPX_WITH_DATAPAR_BACKEND=STD_EXPERIMENTAL_SIMD"
Expand Down
1 change: 1 addition & 0 deletions .jenkins/lsu/env-gcc-15.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ 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_LCI_BOOTSTRAP_MPI=ON"
configure_extra_options+=" -DCMAKE_C_COMPILER=gcc"
configure_extra_options+=" -DCMAKE_C_FLAGS=-fPIC"
configure_extra_options+=" -DHPX_WITH_DATAPAR_BACKEND=STD_EXPERIMENTAL_SIMD"
Expand Down
14 changes: 11 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1270,7 +1270,15 @@ if(HPX_WITH_NETWORKING)
ADVANCED
)
hpx_option(
HPX_WITH_LCI_TAG STRING "LCI repository tag or branch" "v1.7.9"
HPX_WITH_LCI_TAG STRING "LCI repository tag or branch"
"2c4d2c59d2b781f54d6c4e64421adcca16502df9" # latest commit as of 2025-10-29
CATEGORY "Build Targets"
ADVANCED
)
hpx_option(
HPX_WITH_LCI_BOOTSTRAP_MPI BOOL
"Configure the autofetched LCI with mpi bootstrap support (default: OFF)"
OFF
CATEGORY "Build Targets"
ADVANCED
)
Expand Down Expand Up @@ -1405,8 +1413,8 @@ if(HPX_WITH_NETWORKING AND HPX_WITH_PARCELPORT_LCI)
hpx_option(
HPX_WITH_PARCELPORT_LCI_ENV
STRING
"List of environment variables checked to detect LCI (default: MV2_COMM_WORLD_RANK;PMI_RANK;OMPI_COMM_WORLD_SIZE;ALPS_APP_PE;PMIX_RANK;PALS_NODEID)."
"MV2_COMM_WORLD_RANK;PMI_RANK;OMPI_COMM_WORLD_SIZE;ALPS_APP_PE;PMIX_RANK;PALS_NODEID"
"List of environment variables checked to detect LCI (default: MV2_COMM_WORLD_RANK;PMI_RANK;OMPI_COMM_WORLD_SIZE;ALPS_APP_PE;PMIX_RANK;PALS_NODEID;LCT_PMI_FILE_NRANKS)."
"MV2_COMM_WORLD_RANK;PMI_RANK;OMPI_COMM_WORLD_SIZE;ALPS_APP_PE;PMIX_RANK;PALS_NODEID;LCT_PMI_FILE_NRANKS"
CATEGORY "Parcelport"
ADVANCED
)
Expand Down
29 changes: 20 additions & 9 deletions cmake/HPX_SetupLCI.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -51,20 +51,31 @@ macro(hpx_setup_lci)
fetchcontent_getproperties(lci)
if(NOT lci_POPULATED)
fetchcontent_populate(lci)
if(NOT LCT_PMI_BACKEND_ENABLE_MPI AND HPX_WITH_LCI_BOOTSTRAP_MPI)
# Configure LCI with MPI bootstrap support
set(LCT_PMI_BACKEND_ENABLE_MPI
ON
CACHE INTERNAL ""
)
# Set MPI as the first PMI backend to try
set(LCI_PMI_BACKEND_DEFAULT
"mpi;pmix;pmi2;pmi1;file;local"
CACHE INTERNAL ""
)
endif()
set(LCI_FETCHCONTENT_INSTALL
OFF
CACHE INTERNAL ""
)
set(LCI_COMPILE_DREG
OFF
CACHE INTERNAL ""
)
set(LCI_USE_DREG_DEFAULT
OFF
CACHE INTERNAL ""
)
enable_language(C)
add_subdirectory(${lci_SOURCE_DIR} ${lci_BINARY_DIR})

if(NOT LCI_VERSION OR LCI_VERSION VERSION_LESS 2.0.0)
message(
FATAL_ERROR
"LCI version ${LCI_VERSION} found, but version 2.0.0 or higher is required"
)
endif()
# Move LCI target into its own FOLDER
set_target_properties(LCI PROPERTIES FOLDER "Core/Dependencies")
set(HPX_CMAKE_ADDITIONAL_MODULE_PATH_BUILD
Expand All @@ -82,7 +93,7 @@ macro(hpx_setup_lci)
)

install(
DIRECTORY ${lci_SOURCE_DIR}/lci/api/ ${lci_BINARY_DIR}/lci/api/
DIRECTORY ${lci_SOURCE_DIR}/lci/src/api/ ${lci_BINARY_DIR}/lci/src/api/
${lci_SOURCE_DIR}/lct/api/ ${lci_BINARY_DIR}/lct/api/
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
COMPONENT core
Expand Down
4 changes: 2 additions & 2 deletions libs/core/lci_base/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ include(HPX_SetupLCI)
hpx_setup_lci()

# Default location is $HPX_ROOT/libs/lci_base/include
set(lci_base_headers hpx/lci_base/lci.hpp hpx/lci_base/lci_environment.hpp)
set(lci_base_headers hpx/lci_base/lci_environment.hpp)

set(lci_base_sources lci_environment.cpp)

Expand All @@ -27,6 +27,6 @@ add_hpx_module(
HEADERS ${lci_base_headers}
MODULE_DEPENDENCIES hpx_logging hpx_runtime_configuration hpx_string_util
hpx_util
DEPENDENCIES LCI::LCI
DEPENDENCIES LCI::LCI LCI::LCT
CMAKE_SUBDIRS examples tests
)
28 changes: 0 additions & 28 deletions libs/core/lci_base/include/hpx/lci_base/lci.hpp

This file was deleted.

16 changes: 10 additions & 6 deletions libs/core/lci_base/include/hpx/lci_base/lci_environment.hpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright (c) 2013-2015 Thomas Heller
// Copyright (c) 2025 Jiakun Yan
//
// SPDX-License-Identifier: BSL-1.0
// Distributed under the Boost Software License, Version 1.0. (See accompanying
Expand All @@ -11,7 +11,6 @@
#if (defined(HPX_HAVE_NETWORKING) && defined(HPX_HAVE_PARCELPORT_LCI)) || \
defined(HPX_HAVE_MODULE_LCI_BASE)

#include <hpx/lci_base/lci.hpp>
#include <hpx/modules/runtime_configuration.hpp>
#include <hpx/synchronization/spinlock.hpp>

Expand All @@ -23,25 +22,29 @@

#include <hpx/config/warnings_prefix.hpp>

#include "lci.hpp"
#include "lct.h"

namespace hpx { namespace util {
struct HPX_EXPORT lci_environment
{
static bool check_lci_environment(runtime_configuration& cfg);

static void init_config(runtime_configuration& cfg);
static void init(int* argc, char*** argv, runtime_configuration& cfg);
static void finalize();

static bool do_progress(LCI_device_t device);
static bool do_progress();

static bool enabled();

static int rank();
static int size();

static std::string get_processor_name();

static int get_max_tag();

// progress
static bool do_progress(::lci::device_t device);

// log
enum class log_level_t
{
Expand All @@ -55,6 +58,7 @@ namespace hpx { namespace util {
#endif
static void log(
log_level_t level, const char* tag, const char* format, ...);

// performance counter
// clang-format off
#define HPX_LCI_PCOUNTER_NONE_FOR_EACH(_macro)
Expand Down
Loading
Loading