Skip to content

How to run Charm with reconverse

Jiakun Yan edited this page Sep 26, 2025 · 3 revisions

Here is how to run Charm++ with reconverse

Incorporates the reconverse communication layer in Charm++, a future replacement for Converse that is more sustainable, more lightweight (fewer lines of code), and incorporates LCI (github.com/uiuc-hpc/lci).

Installing and running

$ git clone charm && git checkout reconverse-support
$ install libfabric with apt-get, brew, yum, module load, etc

In the charm top-level directory,

./build charm++ multicore-linux-x86_64 --with-production -j8

This part looks weird if you are familiar with Charm's build system, where "multicore" implies a single-process build only. In the reconverse-support branch, however, we have changed the CMake system to make this build command use reconverse (by autofetching) rather than using the old converse implementation. We have done this as a matter of convenience, and we will add another build triplet (maybe something like reconverse-linux-x86_64) once we make changes in Charm++ to allow reconverse and old-converse to coexist. Additionally, you no longer need the ++local command to run Charm programs on a local machine.

In the long term, we would like reconverse to completely replace the old converse implementation. At that point, it's likely that we will stop requiring build triplets altogether, use CMake to determine the OS and the CPU architecture, and deprecate buildold.

In user program, change Makefile to point to charm, for example

CHARMC=/path/to/charm/bin/charmc

Export the following (we are still working on proper linking of the libraries

export LD_LIBRARY_PATH=/path/to/charm/lib:$LD_LIBRARY_PATH
or on mac
export DYLD_LIBRARY_PATH=/path/to/charm/lib:$DYLD_LIBRARY_PATH

Clone this wiki locally