[gentoo-commits] repo/proj/guru:dev commit in: sys-cluster/lwgrp/

2022-03-26 Thread Alessandro Barbieri
commit: 52ec287d2c6c7d41ec93ac20fa84e2d2d62219c2
Author: Alessandro Barbieri  gmail  com>
AuthorDate: Sat Mar 26 07:30:01 2022 +
Commit: Alessandro Barbieri  gmail  com>
CommitDate: Sat Mar 26 07:30:01 2022 +
URL:https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=52ec287d

sys-cluster/lwgrp: add 1.0.5

Signed-off-by: Alessandro Barbieri  gmail.com>

 sys-cluster/lwgrp/Manifest   |  1 +
 sys-cluster/lwgrp/lwgrp-1.0.5.ebuild | 37 
 2 files changed, 38 insertions(+)

diff --git a/sys-cluster/lwgrp/Manifest b/sys-cluster/lwgrp/Manifest
index 449722ba3..5ae7fa9e4 100644
--- a/sys-cluster/lwgrp/Manifest
+++ b/sys-cluster/lwgrp/Manifest
@@ -1 +1,2 @@
 DIST lwgrp-1.0.3.tar.gz 39217 BLAKE2B 
2e17fce02989832670a7bcd73f80e3aabe185b5d1120777f3d3d2e0bd630e62b6ae64638b724ca3edd9d9c7d7177e505433c16382b5e1fdbc79e8a1b1de1a622
 SHA512 
b8acdd5fcec8de01f80acfe0f6df33fe3281bd6465a33ad739af06189782f116ac32caacbd458d2e04ba2eaedfbebf67f42cc343f7bee43f8d708e2b8b3c1565
+DIST lwgrp-1.0.5.tar.gz 41509 BLAKE2B 
a07a2d16b9f578fc1ee5843e85a295fec85bc86b4e291cfb1b559e12063173026d98bd556deef7d05f36d12c1d6c9ae1f168c690fd7f68f3583dc68ca9391e03
 SHA512 
8f960bc45f9c028d79b4a6d149ba2fada9451b8ad480fa6e0d0da81762ca459e9bd991df25643603eb9c69c2f83a97caeb0b8a39bd89c55584265c38862087de

diff --git a/sys-cluster/lwgrp/lwgrp-1.0.5.ebuild 
b/sys-cluster/lwgrp/lwgrp-1.0.5.ebuild
new file mode 100644
index 0..67de1624e
--- /dev/null
+++ b/sys-cluster/lwgrp/lwgrp-1.0.5.ebuild
@@ -0,0 +1,37 @@
+# Copyright 2019-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+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
+}



[gentoo-commits] repo/proj/guru:dev commit in: sys-cluster/lwgrp/

2021-07-28 Thread Alessandro Barbieri
commit: 8c606849fd4e35202f211dc20f92cce32e576eb7
Author: Alessandro Barbieri  gmail  com>
AuthorDate: Wed Jul 28 23:27:11 2021 +
Commit: Alessandro Barbieri  gmail  com>
CommitDate: Wed Jul 28 23:39:36 2021 +
URL:https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=8c606849

sys-cluster/lwgrp: initial import

Signed-off-by: Alessandro Barbieri  gmail.com>

 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(+)

diff --git a/sys-cluster/lwgrp/Manifest b/sys-cluster/lwgrp/Manifest
new file mode 100644
index 0..449722ba3
--- /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 0..d74dc038e
--- /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 0..b04f0479f
--- /dev/null
+++ b/sys-cluster/lwgrp/metadata.xml
@@ -0,0 +1,58 @@
+
+http://www.gentoo.org/dtd/metadata.dtd;>
+
+   
+   lssndrbarbi...@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
+