diff options
| author | Generic Rikka <rikka.goering@outlook.de> | 2026-04-15 12:29:07 +0000 |
|---|---|---|
| committer | Vladimir Druzenko <vvd@FreeBSD.org> | 2026-04-15 13:37:44 +0000 |
| commit | 14736c6ee94658022c9172e0594e3125a400f068 (patch) | |
| tree | 19134f651d2c852f07584afcd7ef6b313ce371c6 | |
| parent | c7bf0f573d9369f61f8154aa3fe7bb44c6484e73 (diff) | |
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>
| -rw-r--r-- | devel/Makefile | 1 | ||||
| -rw-r--r-- | devel/libcircle/Makefile | 48 | ||||
| -rw-r--r-- | devel/libcircle/distinfo | 3 | ||||
| -rw-r--r-- | devel/libcircle/pkg-descr | 8 | ||||
| -rw-r--r-- | devel/libcircle/pkg-plist | 11 |
5 files changed, 71 insertions, 0 deletions
diff --git a/devel/Makefile b/devel/Makefile index cefb9eb346db..cb5c176a1ac6 100644 --- a/devel/Makefile +++ b/devel/Makefile @@ -1254,6 +1254,7 @@ SUBDIR += libchipcard SUBDIR += libcidr SUBDIR += libcii + SUBDIR += libcircle SUBDIR += libcircllhist SUBDIR += libcjson SUBDIR += libclc diff --git a/devel/libcircle/Makefile b/devel/libcircle/Makefile new file mode 100644 index 000000000000..4c77f60817f9 --- /dev/null +++ b/devel/libcircle/Makefile @@ -0,0 +1,48 @@ +PORTNAME= libcircle +DISTVERSION= 0.3.0 +CATEGORIES= devel parallel +MASTER_SITES= https://github.com/hpc/${PORTNAME}/releases/download/v${DISTVERSION:R}/ + +MAINTAINER= rikka.goering@outlook.de +COMMENT= Efficient distributed work queue library for MPI clusters +WWW= https://hpc.github.io/libcircle/ + +LICENSE= BSD3CLAUSE +LICENSE_FILE= ${WRKSRC}/COPYING + +USES= libtool localbase mpi:openmpi pathfix pkgconfig +USE_LDCONFIG= yes + +GNU_CONFIGURE= yes +CONFIGURE_ENV= CC=${MPICC} \ + MPICC=${MPICC} +INSTALL_TARGET= install-strip +TEST_TARGET= check + +PORTDOCS= * + +OPTIONS_DEFINE= DOCS DOXYGEN +OPTIONS_DEFAULT= SHARED +OPTIONS_MULTI= LIBS +OPTIONS_MULTI_LIBS= SHARED STATIC +OPTIONS_SUB= yes + +SHARED_DESC= Build shared libraries +STATIC_DESC= Build static libraries + +DOXYGEN_IMPLIES= DOCS +DOXYGEN_BUILD_DEPENDS= doxygen:devel/doxygen +DOXYGEN_CONFIGURE_ENABLE= doxygen + +SHARED_CONFIGURE_ENABLE= shared +STATIC_CONFIGURE_ENABLE= static + +do-install-DOCS-on: + @${MKDIR} ${STAGEDIR}${DOCSDIR} + ${INSTALL_DATA} ${WRKSRC}/AUTHORS ${STAGEDIR}${DOCSDIR} + +do-install-DOXYGEN-on: + (cd ${WRKSRC}/doc && ${COPYTREE_SHARE} "html latex" ${STAGEDIR}${DOCSDIR}) + ${INSTALL_MAN} ${WRKSRC}/doc/man/man3/*.3 ${STAGEDIR}${PREFIX}/share/man/man3 + +.include <bsd.port.mk> diff --git a/devel/libcircle/distinfo b/devel/libcircle/distinfo new file mode 100644 index 000000000000..b1f5fe57b16e --- /dev/null +++ b/devel/libcircle/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1775666666 +SHA256 (libcircle-0.3.0.tar.gz) = 5ce38eb5b3c2b394bca1316310758f276c893dd3f4c15d7bc14ea05d3110ce58 +SIZE (libcircle-0.3.0.tar.gz) = 385353 diff --git a/devel/libcircle/pkg-descr b/devel/libcircle/pkg-descr new file mode 100644 index 000000000000..ee3388e35e0f --- /dev/null +++ b/devel/libcircle/pkg-descr @@ -0,0 +1,8 @@ +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. diff --git a/devel/libcircle/pkg-plist b/devel/libcircle/pkg-plist new file mode 100644 index 000000000000..db817e8db52e --- /dev/null +++ b/devel/libcircle/pkg-plist @@ -0,0 +1,11 @@ +include/libcircle.h +%%STATIC%%lib/libcircle.a +%%SHARED%%lib/libcircle.so +%%SHARED%%lib/libcircle.so.2 +%%SHARED%%lib/libcircle.so.2.1.1 +libdata/pkgconfig/libcircle.pc +%%DOXYGEN%%share/man/man3/CIRCLE_handle.3.gz +%%DOXYGEN%%share/man/man3/lib.c.3.gz +%%DOXYGEN%%share/man/man3/queue.c.3.gz +%%DOXYGEN%%share/man/man3/token.c.3.gz +%%DOXYGEN%%share/man/man3/worker.c.3.gz |
