libcircle provides an API for distributing embarrassingly parallel workloads
across MPI ranks using a distributed work queue.
Applications register callbacks to create and process work items, while the
library handles load balancing, termination detection, and optional global
reductions. It is commonly used on large HPC filesystems to traverse directory
trees and perform file operations in parallel on hundreds or thousands of
processes.
===> The following configuration options are available for libcircle-0.3.0:
DOCS=on: Build and/or install documentation
DOXYGEN=off: Build documentation with Doxygen
====> Options available for the multi LIBS: you have to choose at least one of them
SHARED=on: Build shared libraries
STATIC=off: Build static libraries
===> Use 'make config' to modify these settings
devel/libcircle: New port: API to distribute parallel workloads across MPI ranks
libcircle provides an API for distributing embarrassingly parallel
workloads across MPI ranks using a distributed work queue.
Applications register callbacks to create and process work items, while
the library handles load balancing, termination detection, and optional
global reductions. It is commonly used on large HPC filesystems to
traverse directory trees and perform file operations in parallel on
hundreds or thousands of processes.
https://github.com/hpc/libcircle
It is one of the dependencies for sysutils/mpifileutils.
PR: 291589
Sponsored by: UNIS Labs
Co-authored-by: Vladimir Druzenko <vvd@FreeBSD.org>