sys-cluster/mrnet: initial import

Signed-off-by: Alessandro Barbieri <lssndrbarbieri@gmail.com>
This commit is contained in:
Alessandro Barbieri
2021-07-13 13:07:27 +02:00
parent 1b961cef55
commit a89b7b4b89
3 changed files with 131 additions and 0 deletions

View File

@@ -0,0 +1 @@
DIST mrnet-5.0.1_p20180510.tar.gz 809277 BLAKE2B c3465db9977f133994d9d8aa619d50e8bbf03f4d17b04ed4f0bdfdbd185fbf9b3c74f63de458cfebc79493228a9243c08c95333ae30ef2a19c01625c77e94408 SHA512 e190cf0b291a0fdebd7ff8449ea1cf0ef5bbda4c1ec4af8341db18fdcd1407ace428dc2a527d004987dc4171a82b4db2cfa34534695e3ec67c519523058915a2

View File

@@ -0,0 +1,56 @@
<?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">
MRNet is a customizable, high-performance software infrastructure for
building scalable tools and applications. It supports efficient
multicast and data aggregation functionality using a tree of processes
between the tool's front-end and back-ends. MRNet-based tools may use
these internal processes to distribute many important tool activities,
for example to reduce data analysis time and keep tool front-end loads
manageable.
MRNet-based tool components communicate across logical channels called
streams. At MRNet internal processes, filters are bound to these streams to
synchronize and aggregate dataflows. Using filters, MRNet can efficiently
compute averages, sums, and other more complex aggregations and analyses
on tool data. MRNet also supports facilities that allow tool developers
dynamically load new tool-specific filters into the system.
Features:
* Flexible tool organization: MRNet does not dictate the organization of
MRNet and tool processes, so MRNet-based tools can tailor MRNet's
configuration to the requirements of the tool and its target environment.
* Scalable, flexible data aggregation: MRNet provides a set of built-in
filters for traditional data aggregation operations like averages, sums,
and data concatenation. MRNet also supports custom, dynamically-loaded
filters for tool-specific aggregations.
* High-bandwidth communication: Internally, MRNet transfers data using an
efficient, packed binary representation. Zero-copy data paths are used
whenever possible to reduce data transfer latency.
* Scalable multicast: MRNet supports efficient multicast to reduce the cost
of delivering tool control messages to tool back-ends.
* Multiple concurrent data channels: MRNet supports multiple logical
channels of data between tool components. Multiple aggregation and
multicast operations may be in progress simultaneously.
* Open source licensing.
</longdescription>
<use>
<!--<flag name="libi">Use libi as tree instantiation method instead of ssh</flag>-->
<flag name="threadsafe">Build threasafe version of lightweight MRNet and XPlat libraries</flag>
<!--<flag name="slurm">Use slurm as libi tree instantiation method instead of ssh</flag>-->
</use>
<upstream>
<bugs-to>https://github.com/dyninst/mrnet/issues</bugs-to>
<remote-id type="github">dyninst/mrnet</remote-id>
</upstream>
</pkgmetadata>

View File

@@ -0,0 +1,74 @@
# Copyright 2019-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
COMMIT="7375ba5bb0df87c68e58ad15e9e5e351ae020c08"
DESCRIPTION="A Multicast/Reduction Network"
HOMEPAGE="http://www.paradyn.org/mrnet"
SRC_URI="https://github.com/dyninst/mrnet/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/${PN}-${COMMIT}"
LICENSE="LGPL-2.1+"
SLOT="0"
KEYWORDS="~amd64"
IUSE="threadsafe" #launchmon libi slurm
DEPEND="dev-libs/boost:="
DEPEND="
${RDEPEND}
"
# slurm? ( sys-cluster/slurm )
#REQUIRED_USE="slurm? ( libi )"
src_prepare() {
rm -r external || die
default
}
src_configure() {
local myconf=(
--enable-shared
--enable-verbosebuild
--with-boost="${EPREFIX}/usr"
$(use_enable threadsafe ltwt-threadsafe)
)
#expat seems to be used only on cray
# if use expat; then
# myconf+=( "--with-expat=${EPREFIX}/usr" )
# else
# myconf+=( "--without-expat" )
# fi
# if use launchmon; then
# myconf+=( "--with-launchmon=${EPREFIX}/usr" )
# else
# myconf+=( "--without-launchmon" )
# fi
# if use libi; then
# myconf+=( "--with-libi=${EPREFIX}/usr" )
# myconf+=( "--with-startup=libi" )
# use slurm && myconf+=( "--with-libi-startup=slurm" )
# else
# myconf+=( "--without-libi" )
# myconf+=( "--with-startup=ssh" )
# fi
econf "${myconf[@]}"
}
src_compile() {
MAKEOPTS="-j1" emake
}
src_install() {
dolib.so build/*/lib/*.so*
dobin build/*/bin/*
insinto /usr/include
doins -r xplat/include/*
doins -r include/*
dodoc README ACKNOWLEDGMENTS
}