mirror of
https://github.com/gentoo-mirror/guru.git
synced 2026-07-19 03:53:22 -04:00
sys-cluster/lwgrp: initial import
Signed-off-by: Alessandro Barbieri <lssndrbarbieri@gmail.com>
This commit is contained in:
1
sys-cluster/lwgrp/Manifest
Normal file
1
sys-cluster/lwgrp/Manifest
Normal file
@@ -0,0 +1 @@
|
||||
DIST lwgrp-1.0.3.tar.gz 39217 BLAKE2B 2e17fce02989832670a7bcd73f80e3aabe185b5d1120777f3d3d2e0bd630e62b6ae64638b724ca3edd9d9c7d7177e505433c16382b5e1fdbc79e8a1b1de1a622 SHA512 b8acdd5fcec8de01f80acfe0f6df33fe3281bd6465a33ad739af06189782f116ac32caacbd458d2e04ba2eaedfbebf67f42cc343f7bee43f8d708e2b8b3c1565
|
||||
37
sys-cluster/lwgrp/lwgrp-1.0.3.ebuild
Normal file
37
sys-cluster/lwgrp/lwgrp-1.0.3.ebuild
Normal file
@@ -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
|
||||
}
|
||||
58
sys-cluster/lwgrp/metadata.xml
Normal file
58
sys-cluster/lwgrp/metadata.xml
Normal file
@@ -0,0 +1,58 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>lssndrbarbieri@gmail.com</email>
|
||||
<name>Alessandro Barbieri</name>
|
||||
</maintainer>
|
||||
<longdescription lang="en">
|
||||
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.
|
||||
</longdescription>
|
||||
<use>
|
||||
<flag name="mpianysource">Specify whether to use MPI_ANY_SOURCE</flag>
|
||||
</use>
|
||||
<upstream>
|
||||
<bugs-to>https://github.com/LLNL/lwgrp/issues</bugs-to>
|
||||
<remote-id type="github">LLNL/lwgrp</remote-id>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
||||
Reference in New Issue
Block a user