Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
84cea5c
proof-of-concept: initial support for reconverse
matthiasdiener Mar 18, 2025
a555d2d
simplify
matthiasdiener Mar 18, 2025
87b8200
reconverse header copies
ritvikrao Mar 19, 2025
7fab7e1
reduce cldb to just none
ritvikrao Mar 25, 2025
13ca2f8
copy only converse.h into include
ritvikrao Mar 25, 2025
017f806
more cmake changes
ritvikrao Apr 22, 2025
e4c7893
replace boost context with reconverse
ritvikrao Apr 23, 2025
02ec458
cmake changes
ritvikrao Apr 29, 2025
e06d2db
move build forward
ritvikrao Apr 29, 2025
0ac2873
build fixes
ritvikrao Apr 30, 2025
b273e08
replace CqsEnqueue with CsdEnqueue
ritvikrao May 1, 2025
9c9de0a
libck compiles now
ritvikrao May 5, 2025
3fee2c8
comment out unnecessary libraries
ritvikrao May 6, 2025
db242b5
Merge branch 'main' into reconverse-suport
matthiasdiener May 8, 2025
3c63232
(untested) changes to charmc
matthiasdiener May 8, 2025
52edae6
remove memory-default
ritvikrao May 8, 2025
782efe2
Merge branch 'reconverse-suport' of https://github.com/charmplusplus/…
ritvikrao May 8, 2025
5592ca0
remove memory-default
ritvikrao May 8, 2025
c3a9d74
Remove memory mode and thread mode checks and add reconverse director…
adityapb Jun 3, 2025
3931fe6
re-add ckhashtable
matthiasdiener Jun 3, 2025
ac30904
fixes for conv-static and LANG_LIBS
matthiasdiener Jun 4, 2025
fc46dfd
restore ckqt, add -lcharm_cxx_utils
matthiasdiener Jun 4, 2025
ff3a38d
include more files in charm_cxx_utils
matthiasdiener Jun 4, 2025
a32d17c
fix? conv-static
matthiasdiener Jun 10, 2025
39ddb6a
add conv-perf sources
matthiasdiener Jun 10, 2025
8714a6e
Adapted ckrdma to implement pup itself
AdvaitTahilyani Jun 13, 2025
09757bf
Removed mentions of TopoGetDim and added CmiMkDir
AdvaitTahilyani Jun 17, 2025
52d8b8d
Defined new symbols
AdvaitTahilyani Jun 25, 2025
53e9ba4
Latest changes
AdvaitTahilyani Jul 2, 2025
7841d76
Moving cputopology from charm to reconverse
adityapb Jul 3, 2025
71605c8
fixes to finish construction
ritvikrao Jul 7, 2025
5a066d3
Merge branch 'reconverse-suport' of https://github.com/charmplusplus/…
ritvikrao Jul 7, 2025
74c03f8
remove cmilog
ritvikrao Jul 8, 2025
e9a27a3
remove unnecessary fortran
ritvikrao Jul 8, 2025
9d47ddd
don't check processMessage without record replay
ritvikrao Jul 21, 2025
81bd69b
merge main
ritvikrao Jul 23, 2025
be3dc7e
add print
ritvikrao Jul 23, 2025
ee6b488
Restored watcher
AdvaitTahilyani Jul 24, 2025
4eea66e
rename fs parameters
ritvikrao Jul 30, 2025
43f9040
Register traceInit function
adityapb Aug 6, 2025
dba0437
Add registerTraceInit to old converse
adityapb Aug 6, 2025
5ea2908
improve cmake support for charm on top of reconverse (#3903)
JiakunYan Aug 29, 2025
3b9e082
Changes for load balancing support using reconverse
adityapb Aug 29, 2025
f052e7b
Merge branch 'reconverse-suport' into reconverse-lb
ritvikrao Aug 30, 2025
f542957
turn off debug prints
ritvikrao Aug 30, 2025
324cd3d
Revert "Changes for load balancing support using reconverse"
ritvikrao Sep 4, 2025
abfe9ab
adding back lbdb
ritvikrao Sep 4, 2025
edc37dc
add back more lbdb
ritvikrao Sep 4, 2025
75bba69
add charm config
ritvikrao Sep 4, 2025
adac3c4
fix cmake
ritvikrao Sep 4, 2025
fb1b19e
add 1 more import
ritvikrao Sep 5, 2025
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
29 changes: 29 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -443,3 +443,32 @@ jobs:
run: |
make -C netlrts-win-x86_64/tests test TESTOPTS="++local"

multicore-linux-x86_64_reconverse:
timeout-minutes: 60
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install -y cmake libfabric-bin libfabric-dev
- name: build
run: ./build charm++ multicore-linux-x86_64 -j3 --with-production
- name: test
run: |
multicore-linux-x86_64/_deps/lci-src/lcrun -n 2 multicore-linux-x86_64/bin/ckhello +pe 4

multicore-darwin-x86_64_reconverse:
timeout-minutes: 60
runs-on: macos-13
steps:
- uses: actions/checkout@v4
- name: Install Dependencies
run: |
brew update
brew install cmake libfabric
- name: build
run: ./build charm++ multicore-darwin-x86_64 -j3 --with-production
- name: test
run: |
multicore-darwin-x86_64/_deps/lci-src/lcrun -n 2 multicore-darwin-x86_64/bin/ckhello +pe 4
48 changes: 36 additions & 12 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ option(ZLIB "Enable zlib support" ON)
option(AMPI_MPICH_TESTS "Enable mpich tests for AMPI" OFF)
option(DRONE_MODE "Enable drone mode" OFF)
option(TASK_QUEUE "Enable task queue" OFF)

option(RECONVERSE "Use the Reconverse communication layer" OFF)

if(TRACING STREQUAL "")
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
Expand Down Expand Up @@ -266,6 +266,11 @@ else()
set(CMK_TASKQUEUE 0)
endif()

if(${RECONVERSE})
set(CMK_RECONVERSE 1)
else()
set(CMK_RECONVERSE 0)
endif()

if(${AMPI_MPICH_TESTS})
add_definitions(-DAMPI_ERRHANDLER_RETURN=1)
Expand Down Expand Up @@ -355,6 +360,7 @@ set(CMK_LBTIME_TYPE ${LBTIME_TYPE})

set(CMK_LB_USER_DATA ${LBUSERDATA})


set(CMK_RANDOMIZED_MSGQ ${RANDOMIZED_MSGQ})
set(CMK_SHRINK_EXPAND ${SHRINKEXPAND})
set(CMK_SMP_TRACE_COMMTHREAD ${TRACING_COMMTHREAD})
Expand Down Expand Up @@ -449,7 +455,11 @@ file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/bin/)
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/include/cklibs)

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib_so)
if(BUILD_SHARED)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib_so)
else()
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
endif()
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)

if (NOT CMAKE_INSTALL_PREFIX)
Expand All @@ -461,6 +471,12 @@ if (NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Release")
endif()

if(RECONVERSE)
# This needs to be include before we set charmc as the linker
# but after CMAKE_LIBRARY_OUTPUT_DIRECTORY has been set
add_subdirectory(cmake/fetch_reconverse)
endif()

if (NOT CMK_MEMPOOL_CUTOFFNUM)
set(CMK_MEMPOOL_CUTOFFNUM 28)
endif()
Expand Down Expand Up @@ -872,8 +888,8 @@ include(cmake/hwloc.cmake)
# Converse
include(cmake/converse.cmake)
add_subdirectory(src/QuickThreads)
add_subdirectory(src/util/boost-context)
add_subdirectory(src/conv-core)
# add_subdirectory(src/util/boost-context)
# add_subdirectory(src/conv-core)

# LIBS
if(${TARGET} STREQUAL "LIBS")
Expand Down Expand Up @@ -908,14 +924,16 @@ configure_file(src/scripts/testrun bin/ COPYONLY)
# Charm++ libraries

# CkLoop
#[[
set(ckloop-cxx-files src/libs/ck-libs/ckloop/CkLoop.C)
set(ckloop-h-files src/libs/ck-libs/ckloop/CkLambda.h src/libs/ck-libs/ckloop/CkLoopAPI.h src/libs/ck-libs/ckloop/CkLoop.h)
add_library(moduleCkLoop ${ckloop-cxx-files} ${ckloop-h-files} ${CMAKE_BINARY_DIR}/include/CkLoop.decl.h)
add_dependencies(moduleCkLoop ck)
#set(ckloop-h-files src/libs/ck-libs/ckloop/CkLambda.h src/libs/ck-libs/ckloop/CkLoopAPI.h src/libs/ck-libs/ckloop/CkLoop.h)
#add_library(moduleCkLoop ${ckloop-cxx-files} ${ckloop-h-files} ${CMAKE_BINARY_DIR}/include/CkLoop.decl.h)
#add_dependencies(moduleCkLoop ck)

foreach(file ${ckloop-h-files})
configure_file(${file} ${CMAKE_BINARY_DIR}/include COPYONLY)
endforeach(file)
#foreach(file ${ckloop-h-files})
#configure_file(${file} ${CMAKE_BINARY_DIR}/include COPYONLY)
#endforeach(file)
]]

# allGather
configure_file(src/libs/ck-libs/allGather/allGather.h ${CMAKE_BINARY_DIR}/include COPYONLY)
Expand All @@ -942,6 +960,7 @@ configure_file(src/libs/ck-libs/NDMeshStreamer/libmoduleNDMeshStreamer.dep ${CMA


# TCharm
#[[
file(GLOB tcharm-c-sources src/libs/ck-libs/tcharm/*.c)
set(tcharm-h-sources
src/libs/ck-libs/tcharm/tcharm.h
Expand All @@ -965,9 +984,11 @@ foreach(f ${tcharm-h-sources})
configure_file(${f} ${CMAKE_BINARY_DIR}/include COPYONLY)
endforeach(f)


add_dependencies(moduletcharmmain ck)
add_dependencies(moduletcharm ck)
add_dependencies(tcharm-compat ck)
]]

if(${TARGET} STREQUAL "AMPI" OR (${TARGET} STREQUAL "LIBS" AND NOT BUILD_CHANGA))
add_subdirectory(src/libs/ck-libs/ampi)
Expand Down Expand Up @@ -1004,8 +1025,11 @@ if(${TARGET} STREQUAL "charm4py")
else()
# Check that we are able to build and link an executable
add_executable(ckhello ${CMAKE_SOURCE_DIR}/tests/charm++/simplearrayhello/hello.C)
add_dependencies(ckhello ck ldb-none memory-default threads-default conv-static
converse ckmain ckqt
if(RECONVERSE)
target_link_libraries(ckhello PRIVATE reconverse)
endif()
add_dependencies(ckhello ck ckqt conv-static
converse ckmain
moduleNDMeshStreamer modulecompletion)
endif()

Expand Down
38 changes: 37 additions & 1 deletion buildcmake
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,10 @@ opt_shmem=0
opt_xpmem=0
opt_qlogic=0
opt_randomized_msgq=0
opt_reconverse=1 # fake argument for now
opt_fetch_reconverse_tag=""
opt_fetch_reconverse_dir=""
opt_reconverse_fetch_lci=1
opt_refnum_type="unsigned short"
opt_replay=0
opt_shrinkexpand=0
Expand All @@ -143,6 +147,7 @@ opt_tcp=0
opt_tracing= #undef
opt_tracing_commthread=0
opt_zlib=1
declare -a opt_cmake_extra_args=()

# default to not building ROMIO on AMPI due to GCC 14 cascade failures
case "$actual_triplet" in
Expand Down Expand Up @@ -348,6 +353,18 @@ function processArgs() {
--enable-ccs)
opt_ccs=1
;;
--enable-reconverse)
opt_reconverse=1
;;
--with-fetch-reconverse-tag=*)
opt_fetch_reconverse_tag=${arg#*=}
;;
--with-fetch-reconverse-dir=*)
opt_fetch_reconverse_dir=${arg#*=}
;;
--without-reconverse-fetch-lci)
opt_reconverse_fetch_lci=0
;;
--enable-controlpoint)
opt_controlpoint=1
;;
Expand Down Expand Up @@ -462,6 +479,11 @@ function processArgs() {
--incdir=*)
opt_incdir+=("-I${arg#*=}")
;;
--with-cmake-args=*)
# Split the value into words (quotes preserved by the shell before this point)
read -r -a _vals <<< "${arg#*=}"
opt_cmake_extra_args+=("${_vals[@]}")
;;
*)
echo "*** Note: Adding unknown option '$arg' to compiler flags."
opt_extra_opts+=("$arg")
Expand Down Expand Up @@ -634,6 +656,17 @@ fi

# Run configure step

CMAKE_EXTRA_ARGS=()
if [[ -n "$opt_fetch_reconverse_tag" ]]; then
CMAKE_EXTRA_ARGS+=(-DAUTOFETCH_RECONVERSE_TAG="$opt_fetch_reconverse_tag")
fi
if [[ -n "$opt_fetch_reconverse_dir" ]]; then
CMAKE_EXTRA_ARGS+=(-DFETCHCONTENT_SOURCE_DIR_RECONVERSE="$opt_fetch_reconverse_dir")
fi
if (( ${#opt_cmake_extra_args[@]} > 0 )); then
CMAKE_EXTRA_ARGS+=("${opt_cmake_extra_args[@]}")
fi

CC=$opt_CC CXX=$opt_CXX FC=$opt_FC cmake "$my_srcdir" \
-G "Unix Makefiles" \
-DARCH="$opt_arch" \
Expand Down Expand Up @@ -670,6 +703,8 @@ CC=$opt_CC CXX=$opt_CXX FC=$opt_FC cmake "$my_srcdir" \
-DCMK_USE_SHMEM="$opt_shmem" \
-DQLOGIC="$opt_qlogic" \
-DRANDOMIZED_MSGQ="$opt_randomized_msgq" \
-DRECONVERSE="$opt_reconverse" \
-DRECONVERSE_AUTOFETCH_LCI2="$opt_reconverse_fetch_lci" \
-DREFNUM_TYPE="$opt_refnum_type" \
-DREPLAY="$opt_replay" \
-DSHRINKEXPAND="$opt_shrinkexpand" \
Expand All @@ -683,7 +718,8 @@ CC=$opt_CC CXX=$opt_CXX FC=$opt_FC cmake "$my_srcdir" \
-DTRACING_COMMTHREAD="$opt_tracing_commthread" \
-DCXI="$opt_cxi" \
-DCMK_BUILD_OFI="$opt_build_ofi" \
-DZLIB="$opt_zlib"
-DZLIB="$opt_zlib" \
"${CMAKE_EXTRA_ARGS[@]}"


# Run build step
Expand Down
Loading
Loading