Gentoo Archives: gentoo-commits

From: Andrew Ammerlaan <andrewammerlaan@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/proj/guru:master commit in: sys-cluster/dtcmp/
Date: Fri, 30 Jul 2021 10:05:11
Message-Id: 1627515576.d907f0c21170e219cfcdab6c95c5bb23d4d213cb.andrewammerlaan@gentoo
1 commit: d907f0c21170e219cfcdab6c95c5bb23d4d213cb
2 Author: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
3 AuthorDate: Wed Jul 28 23:38:32 2021 +0000
4 Commit: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
5 CommitDate: Wed Jul 28 23:39:36 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=d907f0c2
7
8 sys-cluster/dtcmp: initial import
9
10 Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com>
11
12 sys-cluster/dtcmp/Manifest | 1 +
13 sys-cluster/dtcmp/dtcmp-1.1.2.ebuild | 39 +++++++++++++++++++++++++
14 sys-cluster/dtcmp/metadata.xml | 56 ++++++++++++++++++++++++++++++++++++
15 3 files changed, 96 insertions(+)
16
17 diff --git a/sys-cluster/dtcmp/Manifest b/sys-cluster/dtcmp/Manifest
18 new file mode 100644
19 index 000000000..110302191
20 --- /dev/null
21 +++ b/sys-cluster/dtcmp/Manifest
22 @@ -0,0 +1 @@
23 +DIST dtcmp-1.1.2.tar.gz 76820 BLAKE2B bd67112567515fefff171e1b9e0da5d93e2b5bec88246de33e3b382bcc6029f1fc18a658ce185634615c37f1a10b5759eb04f2039f334ea5deaa680a005c6d5f SHA512 c8094ca5009ba10d40be3da55498b97837865d87b3deaa813b31de2083c38aa30b55c91ead053e2ef0454c53948aafa233f9251295ca29a0233f28a169cbd5c2
24
25 diff --git a/sys-cluster/dtcmp/dtcmp-1.1.2.ebuild b/sys-cluster/dtcmp/dtcmp-1.1.2.ebuild
26 new file mode 100644
27 index 000000000..b0f3c17bd
28 --- /dev/null
29 +++ b/sys-cluster/dtcmp/dtcmp-1.1.2.ebuild
30 @@ -0,0 +1,39 @@
31 +# Copyright 2019-2021 Gentoo Authors
32 +# Distributed under the terms of the GNU General Public License v2
33 +
34 +EAPI=7
35 +
36 +inherit autotools
37 +
38 +DESCRIPTION="Datatype Compare Library for sorting and ranking distributed data using MPI"
39 +HOMEPAGE="https://github.com/LLNL/dtcmp"
40 +SRC_URI="https://github.com/LLNL/dtcmp/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
41 +
42 +LICENSE="BSD"
43 +SLOT="0"
44 +KEYWORDS="~amd64"
45 +
46 +RDEPEND="
47 + sys-cluster/lwgrp
48 + virtual/mpi
49 +"
50 +DEPEND="${RDEPEND}"
51 +
52 +src_prepare() {
53 + default
54 + eautoreconf
55 +}
56 +
57 +src_configure() {
58 + local myconf=(
59 + --with-lwgrp="${EPREFIX}/usr"
60 + )
61 + econf "${myconf[@]}"
62 +}
63 +
64 +src_install() {
65 + default
66 + rm -r "${ED}/usr/share/${PN}" || die
67 + find "${ED}" -name '*.la' -delete || die
68 + find "${ED}" -name '*.a' -delete || die
69 +}
70
71 diff --git a/sys-cluster/dtcmp/metadata.xml b/sys-cluster/dtcmp/metadata.xml
72 new file mode 100644
73 index 000000000..235b9571b
74 --- /dev/null
75 +++ b/sys-cluster/dtcmp/metadata.xml
76 @@ -0,0 +1,56 @@
77 +<?xml version="1.0" encoding="UTF-8"?>
78 +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
79 +<pkgmetadata>
80 + <maintainer type="person">
81 + <email>lssndrbarbieri@×××××.com</email>
82 + <name>Alessandro Barbieri</name>
83 + </maintainer>
84 + <longdescription lang="en">
85 +The Datatype Comparison (DTCMP) Library provides pre-defined and user-defined comparison operations to compare the values of two items which can be arbitrary MPI datatypes. Using these comparison operations, the library provides various routines for manipulating data, which may be distributed over the processes of an MPI communicator including:
86 +
87 +search - search for a target value in an ordered list of values
88 +merge - combine multiple ordered lists into a single ordered list
89 +partition - divide a list of items into lower and higher values around a specified pivot value
90 +select - identify the kth largest value
91 +sort - sort data items into an ordered list
92 +rank - assign group ids and ranks to a list of items
93 +scan - execute a segmented scan on an ordered list of values
94 +The DTCMP library is designed to provide a high-level interface to the above functionality. These high-level routines will invoke various algorithm implementations to achieve the desired output. The goal of DTCMP is to be efficient given the input and the data distribution among processes. It is also intended to be portable to different platforms and to allow for easy addition of new algorithms over time.
95 +
96 +While performance is important, the goal is not to provide the fastest routines. The generality provided by the DTCMP API that makes portability possible also tends to reduce performance in some respects, e.g., forcing memory copies, abstracting some details about datatype, etc. Most likely a hand-tuned algorithm for the precise problem at hand will always be faster than DTCMP. However, DTCMP should be fast, efficient, and portable, so it will generally be a good option except for those cases where the application bottleneck demands absolute performance.
97 +
98 +Currently, the following pre-defined comparison operations are provided. More will be added with time. All pre-defined operations have the following naming convention:
99 +
100 +DTCMP_OP_TYPE_DIRECTION
101 +where TYPE may be one of:
102 +
103 +SHORT - C short
104 +INT - C int
105 +LONG - C long
106 +LONGLONG - C long long
107 +UNSIGNEDSHORT - C unsigned short
108 +UNSIGNEDINT - C unsigned int
109 +UNSIGNEDLONG - C unsigned long
110 +UNSIGNEDLONGLONG - C unsigned long long
111 +INT8T - C int8_t
112 +INT16T - C int16_t
113 +INT32T - C int32_t
114 +INT64T - C int64_t
115 +UINT8T - C uint8_t
116 +UINT16T - C uint16_t
117 +UINT32T - C uint32_t
118 +UINT64T - C uint64_t
119 +FLOAT - C float
120 +DOUBLE - C double
121 +LONGDOUBLE - C long double
122 +and DIRECTION may be one of:
123 +
124 +ASCEND - order values from smallest to largest
125 +DESCEND - order values from largest to smallest
126 +Often when sorting data, each item contains a "key" that determines its position within the global order and a "value", called "satellite data", which travels with the key value but has no affect on its order. DTCMP assumes that satellite data is relatively small and is attached to the key in the same input buffer. In many DTCMP routines, one must specify the datatype for the key and another datatype for the key with its satellite data. The first is often named "key" and the second "keysat". The key datatype is used to infer the type and size of the key when comparing key values. This can be exploited to select optimized comparison routines, e.g., radix sort on integers, and it enables the library to siphon off and only process the key component if needed. The keysat type is needed to copy full items in memory or transfer items between processes.
127 + </longdescription>
128 + <upstream>
129 + <bugs-to>https://github.com/LLNL/dtcmp/issues</bugs-to>
130 + <remote-id type="github">LLNL/dtcmp</remote-id>
131 + </upstream>
132 +</pkgmetadata>