https://github.com/charmplusplus/reconverse

Simplified re-implementation of Converse: a communication and scheduling layer, and user-level threads, used by Charm++

https://github.com/charmplusplus/reconverse

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.7%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Simplified re-implementation of Converse: a communication and scheduling layer, and user-level threads, used by Charm++

Basic Info
  • Host: GitHub
  • Owner: charmplusplus
  • Language: Assembly
  • Default Branch: main
  • Homepage:
  • Size: 588 KB
Statistics
  • Stars: 1
  • Watchers: 1
  • Forks: 1
  • Open Issues: 3
  • Releases: 0
Created over 1 year ago · Last pushed 10 months ago
Metadata Files
Readme

README.md

reconverse-pingpong

Basic implementation of a new communication layer for Charm++

Build Reconverse

If you want to run Reconverse locally (single node), all you have to do is the following:

$ cd reconverse $ mkdir build $ cd build $ cmake -DRECONVERSE_TRY_ENABLE_COMM_LCI2=OFF .. $ make

Runtime options

  • -DRECONVERSEENABLECPU_AFFINITY (ON by default if hwloc is found): Enable setting CPU affinity with HWLOC (must have HWLOC installed)

LCI

Currently, Reconverse multi-node support is based on LCI (https://github.com/uiuc-hpc/lci). You could either install LCI by your own or use the cmake autofetch support.

To use the cmake autofetch support: $ cd reconverse $ mkdir build $ cd build $ cmake -DRECONVERSE_TRY_ENABLE_COMM_LCI2=ON -DRECONVERSE_AUTOFETCH_LCI2=ON .. $ make

Additional cmake variable can be passed to further fine-tune the build of LCI. Useful ones include - -DLCI_NETWORK_BACKENDS=[ofi|ibv]: explicitly select the LCI backend to be libfabric (ofi) or libibverbs (ibv). ibv should be used for Infiniband and RoCE clusters. ofi should be used for shared memory system (e.g. laptop) and slingshot-11 clusters. - -DLCT_PMI_BACKEND_ENABLE_MPI=ON (Default: OFF): let LCI bootstrap with MPI. This can be useful when the running environment does not have PMI support and lcrun becomes slow.

Note: LCI by default will automatically probe and select available network backends, but this procedure sometimes leads to unsatifactory results (e.g. on Delta where libibverbs is installed but no Infiniband devices available).

Run Reconverse

In the build/examples/ folder, run the reconverse_<program_name> executable. Currently, the first arguments must be +pe <num_pes>.

Build and run Reconverse on your own laptop

Prerequisite:

  • libfabric as LCI's network backend for shared memory system. You can install them with $ sudo apt install libfabric-bin libfabric-dev

Build reconverse

$ git clone https://github.com/charmplusplus/reconverse.git $ cd reconverse $ mkdir build $ cd build $ cmake -DRECONVERSE_TRY_ENABLE_COMM_LCI2=ON -DRECONVERSE_AUTOFETCH_LCI2=ON -DLCI_NETWORK_BACKENDS=ofi .. $ make

Run reconverse

Using lcrun to run the reconverse example is typically the most simplest way. First, you need to locate LCI's lcrun executable. It is located in the LCI source directory and will be installed to the bin folder if you installed LCI by yourself. If you used the cmake autofetch support, it will typically be located in the <build_directory>/_deps/lci-src folder.

Then, run the reconverse example with lcrun:

$ cd build/examples/pingpong $ lcrun -n 2 ./reconverse_ping_ack +pe 4

Note: if you installed libfabric in a non-standard location, the linker may complain it cannot find the libfabric shared library, in which case you need to let the linker find them by export LD_LIBRARY_PATH=<path_to_libfabric_lib>:${LD_LIBRARY_PATH}

Build and run Reconverse on NCSA Delta

Build reconverse

To use CMake Autofetch support: $ git clone https://github.com/charmplusplus/reconverse.git $ cd reconverse $ mkdir build $ cd build $ cmake -DRECONVERSE_TRY_ENABLE_COMM_LCI2=ON -DRECONVERSE_AUTOFETCH_LCI2=ON -DLCI_NETWORK_BACKENDS=ofi .. $ make

Note: NCSA has built-in PMI support. LCI will automatically detect and use it.

If you want to install LCI by yourself, here is an example build procedure on NCSA's Delta machine using the OFI layer:

$ git clone https://github.com/uiuc-hpc/lci.git --branch=lci2 $ cd lci $ export CMAKE_INSTALL_PREFIX=/u/<username>/opt (or somewhere else you prefer) $ export OFI_ROOT=/opt/cray/libfabric/1.15.2.0 $ cmake -DLCI_NETWORK_BACKENDS=ofi . $ make install $ cd .. $ git clone https://github.com/charmplusplus/reconverse.git $ cd reconverse $ mkdir build && cd build $ cmake .. $ make

Run reconverse

$ cd build/examples/pingpong $ srun -n 2 ./reconverse_ping_ack +pe 4

Owner

  • Name: charmplusplus
  • Login: charmplusplus
  • Kind: organization

GitHub Events

Total
  • Create event: 73
  • Commit comment event: 1
  • Issues event: 2
  • Watch event: 1
  • Delete event: 54
  • Member event: 1
  • Issue comment event: 18
  • Push event: 290
  • Pull request review event: 67
  • Pull request review comment event: 23
  • Pull request event: 146
  • Fork event: 1
Last Year
  • Create event: 73
  • Commit comment event: 1
  • Issues event: 2
  • Watch event: 1
  • Delete event: 54
  • Member event: 1
  • Issue comment event: 18
  • Push event: 290
  • Pull request review event: 67
  • Pull request review comment event: 23
  • Pull request event: 146
  • Fork event: 1

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 2
  • Total pull requests: 82
  • Average time to close issues: N/A
  • Average time to close pull requests: 2 days
  • Total issue authors: 1
  • Total pull request authors: 9
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.09
  • Merged pull requests: 57
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 2
  • Pull requests: 82
  • Average time to close issues: N/A
  • Average time to close pull requests: 2 days
  • Issue authors: 1
  • Pull request authors: 9
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.09
  • Merged pull requests: 57
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • mayantaylor (2)
Pull Request Authors
  • ritvikrao (26)
  • JiakunYan (23)
  • mayantaylor (14)
  • adityapb (6)
  • ZwFink (5)
  • stevenqie (4)
  • AdvaitTahilyani (2)
  • kavithachandrasekar (1)
  • matthiasdiener (1)
Top Labels
Issue Labels
Pull Request Labels