Skip to content

Tags: uiuc-hpc/lci

Tags

v2.0.0-beta.1

Toggle v2.0.0-beta.1's commit message
This is an early **beta release** of version `2.0.0`, intended for te…

…sting and feedback.

The API in this release is **largely stable**, and we do not anticipate major breaking changes. However, **minor tweaks and optimizations** may still be introduced prior to the final `v2.0.0` release.

This release is made available for:
- Early adopters to begin integration and testing
- Collecting feedback on functionality and performance
- Identifying any remaining edge cases or bugs

Please report any issues or suggestions to help us improve the upcoming stable release.

v1.7.9

Toggle v1.7.9's commit message
- lct: add external MPMC queue implementation

- add new PMI backend `file` and lcrun
- remove link dependency to network backends in LCIConfig.cmake.in

- rename SRUN_EXE -> LCI_USE_CTEST_EXE

- packet pool: add option to control global/per-device packet pool (LCI_USE_GLOBAL_PACKET_POOL)
- add options for device lock mode
- improve LCI_INIT_ATTACH_DEBUGGER: make the variable i volatile
- improve various warning messages
- fix macOS build
- cmake: add LCI::LCI LCI::lci as an alias for LCI for autofetch purpose
- improve support for fetchcontent

sc25

Toggle sc25's commit message
version used for sc25

ics25

Toggle ics25's commit message
Code for ics25

v1.7.8

Toggle v1.7.8's commit message
- Upstream LCI spack package to the spack repo.

- Add RoCE support
  - including the GID auto selection feature.
- Improve multi-device support
  - use shared low-level data structures.
  - use shared heap and package pools for devices
- Fix messages of size larger than int_max.
  - LCI will break the message into multiple chunks and send them with RDMA write.

- Change the github repo name from uiuc-hpc/LC to uiuc-hpc/lci
- Remove the LCI::Shared cmake target

- improve spack package.py: use spec.satisfies instead of spec.value
- fix(ofi): pass LCI_SERVER_MAX_SENDS/RECVS to libfabric endpoints
- add three performance counters: net_poll_cq_num, sync_stay_timer, cq_stay_timer
- refactor backend: LCI device as LCIS endpoint
- force ofi cxi to disable LCI_ENABLE_PRG_NET_ENDPOINT
- initialize allocated packets with LCII_POOLID_LOCAL
- add net_cq_poll related counters to measure the thread contention in progress engine
- fix(lct/pcounter): exit recording thread if not needed
- ibv backend: adjust max_send, max_recv, max_cqe according to device_attr
- improve LCIConfig.cmake.in: PACKAGE_CMAKE_INSTALL_XXX can be changed by find_dependency

cluster24

Toggle cluster24's commit message
version used in CLUSTER 2024 submission

Holistic Performance Analysis for Asynchronous Many-Task Runtimes

v1.7.7

Toggle v1.7.7's commit message
Lightweight Communication Interface (LCI) v1.7.7

Major Changes
- Make LCI more robust with the libfabric/cxi provider.
  - new rendezvous protocol `write`.
  - more assertions.
- Remove sysconf from malloc critical path.
  - Can be a major performance bottleneck on some platform (such as Frontera).
- New LCI network backend: UCX.
- Make LCI_sync_test/wait thread-safe against other LCI_sync_test/wait.

Breaking Changes

Other Changes
- Update spack package.py; make LCI_progress thread-safe by default.
- By default, configure cmake to install all lci executables.
- Refactor rendevzous protocol code; add rendezvous protocol selection (LCI_RDV_PROTOCOL=write/writeimm).
- Enable the env var LCI_BACKEND_TRY_LOCK_MODE for ofi backend.
- Let LCT Logger also report hostname.
- Add a field (packet) to LCII_context_t.
- Add sendmc: send medium with completion notification.
- Improve LCT hostname setup.
- Refactor performance counters: "on-the-fly" and "on-the-fly-lw" modes.
- Add(lct): add argument parser to LCT.
- Add(lct_tbarrier): add thread barrier to LCT.
- Add(many2many_random): new example many2many_random.
- Add LCI_VERSION macros.
- Improve LCI cmake config file.
- Add(putmac): put medium with completion.
- Rename LCT log ctx from lci to lct; add log for pmi.
- Improve LCT_Assert: only evaluate the string after asserting failed.
- Remove fflush(stderr).
- Add assertion to pmi.
- Improve(ofi backend): better way to call fi_cq_readerr.
- Make mpi_pt2pt also works for singleton case.
- Add more log outputs to lct pcounter.
- Fix lct_parse_pcounter.py.
- Add try_lock_mode: none, global, global_b.
- Improve PMI: add cmake option to turn off PMI1/PMI2 compilation.

Fixed Issues
- Fix bugs with LCII_make_key (possibly just a refactoring intead of a bug fixing).
- Fix lct log uninitialized error.
- Fix lci-ucx: link to pthreads.
- Fix LCI_IBV_ENABLE_TD option.
- Fix op undercount and buffer overflow for non-power-of-two (#67).
- Fix cache padding in device.
- Fix spack package pmix option.
- Fix README typo.
- Fix lcit initData: affect lcitb's performance.
- Fix try_lock_mode.

sc24

Toggle sc24's commit message
version used for sc24

v1.7.6

Toggle v1.7.6's commit message
Lightweight Communication Interface (LCI) v1.7.6

Major Changes
- Split the original C library, LCI, into two libraries: a C library, LCI,
  and a C++ library, LCT (Lightweight Communication Tools).
  - LCT provids basic tools that can be used across libraries, including
    - timing
    - string searching and manipulation
    - query thread ID and number
    - logging
    - performance counters
    - different implementation of queues
    - PMI (Process Management Interface) wrappers
  - The CMake variable `LCI_WITH_LCT_ONLY` can be used to enable LCT-only build.
- Add(`LCI_cq_createx`): be able to specify the cq max length.
  - This is a temporary workaround for multiple devices.
- Add(`LCI_ENABLE_PRG_NET_ENDPOINT`): control whether to use the progress-specific network endpoint

Breaking Changes
- The lib output name is changed from LCI/LCT to lci/lct.
- Change `LCI_IBV_ENABLE_TRY_LOCK_QP` to `LCI_IBV_ENABLE_TD` and make it an env var.

Other Changes
- Change the default endpoint number from 8 to 1024.
- Change the CircleCI config to Debug build; Enable performance counter in debug CI.
- Merge lcii_config.h.in into lci_config.h.in.
- Improve(pcounter): do not call LCT_now when the performance counters are not enabled.
- lci-ucx rcache: turn off assertion by default

Fixed Issues
- Fix liblci.pc.in.
- Fix the ibv backend with old libibverbs that does not support odp.

ipdps24

Toggle ipdps24's commit message
Commit used for IPDPS2024