diff options
Diffstat (limited to 'sys-cluster/lwgrp/metadata.xml')
-rw-r--r-- | sys-cluster/lwgrp/metadata.xml | 58 |
1 files changed, 58 insertions, 0 deletions
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 @@ +<?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> |