From 8c606849fd4e35202f211dc20f92cce32e576eb7 Mon Sep 17 00:00:00 2001 From: Alessandro Barbieri Date: Thu, 29 Jul 2021 01:27:11 +0200 Subject: sys-cluster/lwgrp: initial import Signed-off-by: Alessandro Barbieri --- sys-cluster/lwgrp/Manifest | 1 + sys-cluster/lwgrp/lwgrp-1.0.3.ebuild | 37 +++++++++++++++++++++++ sys-cluster/lwgrp/metadata.xml | 58 ++++++++++++++++++++++++++++++++++++ 3 files changed, 96 insertions(+) create mode 100644 sys-cluster/lwgrp/Manifest create mode 100644 sys-cluster/lwgrp/lwgrp-1.0.3.ebuild create mode 100644 sys-cluster/lwgrp/metadata.xml diff --git a/sys-cluster/lwgrp/Manifest b/sys-cluster/lwgrp/Manifest new file mode 100644 index 0000000000..449722ba34 --- /dev/null +++ b/sys-cluster/lwgrp/Manifest @@ -0,0 +1 @@ +DIST lwgrp-1.0.3.tar.gz 39217 BLAKE2B 2e17fce02989832670a7bcd73f80e3aabe185b5d1120777f3d3d2e0bd630e62b6ae64638b724ca3edd9d9c7d7177e505433c16382b5e1fdbc79e8a1b1de1a622 SHA512 b8acdd5fcec8de01f80acfe0f6df33fe3281bd6465a33ad739af06189782f116ac32caacbd458d2e04ba2eaedfbebf67f42cc343f7bee43f8d708e2b8b3c1565 diff --git a/sys-cluster/lwgrp/lwgrp-1.0.3.ebuild b/sys-cluster/lwgrp/lwgrp-1.0.3.ebuild new file mode 100644 index 0000000000..d74dc038e9 --- /dev/null +++ b/sys-cluster/lwgrp/lwgrp-1.0.3.ebuild @@ -0,0 +1,37 @@ +# Copyright 2019-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools + +DESCRIPTION="Light-weight Group Library" +HOMEPAGE="https://github.com/LLNL/lwgrp" +SRC_URI="https://github.com/LLNL/lwgrp/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64" +IUSE="mpianysource" + +RDEPEND="virtual/mpi" +DEPEND="${RDEPEND}" + +src_prepare() { + default + eautoreconf +} + +src_configure() { + local myconf=( + $(use_enable mpianysource) + ) + econf "${myconf[@]}" +} + +src_install() { + default + rm -r "${ED}/usr/share/${PN}" || die + find "${ED}" -name '*.la' -delete || die + find "${ED}" -name '*.a' -delete || die +} diff --git a/sys-cluster/lwgrp/metadata.xml b/sys-cluster/lwgrp/metadata.xml new file mode 100644 index 0000000000..b04f0479f2 --- /dev/null +++ b/sys-cluster/lwgrp/metadata.xml @@ -0,0 +1,58 @@ + + + + + lssndrbarbieri@gmail.com + Alessandro Barbieri + + +The light-weight group library defines data structures and collective +operations to group MPI processes as an ordered set. Such groups are +useful as substitutes for MPI communicators when the overhead of +communicator creation is too costly. For example, certain sorting +algorithms recursively divide processes into subgroups as the sort +algorithm progresses. These groups may be different with each +invocation, so that it is inefficient to create and destroy +communicators during the sort routine. + +Data structures: +chain - each member records addresses of left and right members first and last rank set boundary to MPI_PROC_NULL +ring - like the chain, except first and last rank wrap around +logchain - each member records addresses of each member 2^d hops to left and right d=0..log(N)-1 (MPI_PROC_NULL at ends) +logring - each member records addresses of each member 2^d hops to left and right with wrap at ends + +We represent groups of processes using a doubly-linked list called +a "chain". This is a very simple struct that records the number +of processes in the group, the rank of the local process within the +group, the address of the local process, and the addresses of the +processes having ranks one less (left) and one more (right) than the +local process. We implement the LWGRP library on top of MPI, so for +addresses we record a parent communicator and ranks within that +communicator. To be light-weight, the reference to the communicator +is a literal copy of the handle value, not a full dup. + +Since each member only stores the addresses for a few other group +members, it is the responsibility of higher level software to exchange +address information for more general point-to-point communication. +Additionally, the caller is responsible for choosing tag values as a +group context. + +There is also a "ring", which is like a chain, but it wraps around +at the ends. + +There are two structures, called a logchain and logring, used to cache +adddresses of more group members. These structures must be used in +conjunction with either a chain or ring, respectively. They cache +addresses for processes that are 2^d hops to the left and right sides +where d ranges from 0 to log(N)-1 inclusive. This pattern enables +one to construct trees, and so it's useful to cache this information +for use in collective operations. + + + Specify whether to use MPI_ANY_SOURCE + + + https://github.com/LLNL/lwgrp/issues + LLNL/lwgrp + + -- cgit v1.2.3-65-gdbad