diff options
author | 2021-08-06 01:55:47 +0200 | |
---|---|---|
committer | 2021-08-06 02:16:44 +0200 | |
commit | 39bc696e1bc0c295322d8372961c632001c2647f (patch) | |
tree | f9f8904aa62d207fb3388a87af906c4ec74edf32 /sys-cluster/SOS | |
parent | sys-apps/dust: version bump 0.6.2 (diff) | |
download | guru-39bc696e1bc0c295322d8372961c632001c2647f.tar.gz guru-39bc696e1bc0c295322d8372961c632001c2647f.tar.bz2 guru-39bc696e1bc0c295322d8372961c632001c2647f.zip |
sys-cluster/SOS: initial import
Signed-off-by: Alessandro Barbieri <lssndrbarbieri@gmail.com>
Diffstat (limited to 'sys-cluster/SOS')
-rw-r--r-- | sys-cluster/SOS/Manifest | 1 | ||||
-rw-r--r-- | sys-cluster/SOS/SOS-1.5.0.ebuild | 131 | ||||
-rw-r--r-- | sys-cluster/SOS/metadata.xml | 43 |
3 files changed, 175 insertions, 0 deletions
diff --git a/sys-cluster/SOS/Manifest b/sys-cluster/SOS/Manifest new file mode 100644 index 000000000..f36dc6067 --- /dev/null +++ b/sys-cluster/SOS/Manifest @@ -0,0 +1 @@ +DIST SOS-1.5.0.tar.gz 544478 BLAKE2B f2a63fbf39958ac238e2d687d866c2f600956b933f956a4d8552acff29973de4d3e46a323b3f8eb3a63d395728cbafdfe119ea99d0fb5e17250d879ff269fb0e SHA512 0506bda8ab898cd1aaea82e230c64e17dde4ccfb3b70c9a4397c90d08643b3c7f96e7eae70e1a2b706b33737e979315372bcc338fc957652cd1b5e55d7a560ad diff --git a/sys-cluster/SOS/SOS-1.5.0.ebuild b/sys-cluster/SOS/SOS-1.5.0.ebuild new file mode 100644 index 000000000..f7f505c4f --- /dev/null +++ b/sys-cluster/SOS/SOS-1.5.0.ebuild @@ -0,0 +1,131 @@ +# Copyright 2019-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FORTRAN_NEEDED="fortran" + +inherit autotools fortran-2 + +DESCRIPTION="implementation of the OpenSHMEM specification" +HOMEPAGE="https://github.com/Sandia-OpenSHMEM/SOS" +SRC_URI="https://github.com/Sandia-OpenSHMEM/SOS/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="BSD public-domain mpich2" +SLOT="0" +KEYWORDS="~amd64" +IUSE_OFI_MR=" + ofi-mr-basic + +ofi-mr-scalable + ofi-mr-rma-event +" +IUSE_TOTAL_DATA_ORDERING=" + total-data-ordering-always + +total-data-ordering-check + total-data-ordering-never +" +IUSE_EXPAND="OFI_MR TOTAL_DATA_ORDERING" +IUSE="${IUSE_OFI_MR} ${IUSE_TOTAL_DATA_ORDERING} av-map bounce-buffers cma completion-polling cxx +debug error-checking fortran long-fortran-header manual-progress memcpy ofi ofi-fence openmp ++pmi-mpi pmi-simple portals4 profiling pthread-mutexes remote-virtual-addressing threads +thread-completion ucx xpmem" + +RDEPEND=" + ofi? ( sys-block/libfabric ) + pmi-simple? ( sys-cluster/pmix[pmi] ) + pmi-mpi? ( virtual/mpi ) + portals4? ( sys-cluster/portals4 ) + ucx? ( sys-cluster/ucx ) + xpmem? ( sys-kernel/xpmem ) +" +DEPEND="${RDEPEND}" + +REQUIRED_USE=" + ^^ ( ${IUSE_OFI_MR/+/} ) + ^^ ( ${IUSE_TOTAL_DATA_ORDERING/+/} ) + ^^ ( pmi-mpi pmi-simple ) + ?? ( cma xpmem ) + ?? ( ofi portals4 ) +" + +pkg_setup() { + FORTRAN_NEED_OPENMP=0 + use openmp && FORTRAN_NEED_OPENMP=1 + + fortran-2_pkg_setup +} + +src_prepare() { + default + + #copied from bootstrap + if [[ ! -d ./config ]]; then + mkdir ./config || die + fi + FILES=./man/*.1 + echo -n "dist_man1_MANS =" > ./man/Makefile.am || die + for f in $FILES + do + echo -n " $(basename $f)" >> ./man/Makefile.am || die + done + FILES=./man/*.3 + echo -e -n "\ndist_man3_MANS =" >> ./man/Makefile.am || die + for f in $FILES + do + echo -n " $(basename $f)" >> ./man/Makefile.am || die + done + echo -e "\n" >> ./man/Makefile.am || die + + eautoreconf +} + +src_configure() { + local ofimr + use ofi-mr-basic && ofimr="basic" + use ofi-mr-scalable && ofimr="scalable" + use ofi-mr-rma-event && ofimr="rma-event" + + local tda + use total-data-ordering-always && tda="always" + use total-data-ordering-check && tda="check" + use total-data-ordering-never && tda="never" + + local myconf=( + --disable-picky + --disable-rpm-prefix + --enable-ofi-mr="${ofimr}" + --enable-total-data-ordering="${tda}" + $(use_enable av-map) + $(use_enable bounce-buffers) + $(use_enable completion-polling) + $(use_enable cxx) + $(use_enable debug) + $(use_enable error-checking) + $(use_enable fortran) + $(use_enable long-fortran-header) + $(use_enable manual-progress) + $(use_enable memcpy) + $(use_enable ofi-fence) + $(use_enable openmp) + $(use_enable pmi-mpi) + $(use_enable pmi-simple) + $(use_enable profiling) + $(use_enable pthread-mutexes) + $(use_enable remote-virtual-addressing) + $(use_enable threads) + $(use_enable thread-completion) + + $(use_with cma) + $(use_with ofi) + $(use_with pmi-mpi pmi) + $(use_with portals4) + $(use_with ucx) + $(use_with xpmem) + ) + econf "${myconf[@]}" +} + +src_install() { + default + find "${ED}" -name '*.la' -delete || die +} diff --git a/sys-cluster/SOS/metadata.xml b/sys-cluster/SOS/metadata.xml new file mode 100644 index 000000000..b671c4dd9 --- /dev/null +++ b/sys-cluster/SOS/metadata.xml @@ -0,0 +1,43 @@ +<?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> + <use> + <flag name="av-map">enable av-map instead of av-table in the OFI transport</flag> + <flag name="bounce-buffers">Enable bounce buffers by default</flag> + <flag name="cma">Use cross-memory attach for on-node communication</flag> + <flag name="completion-polling">Enable polling in quiet, fence, and local completion operations</flag> + <flag name="cxx">Enable C++ bindings</flag> + <flag name="error-checking">Enable error checking in SHMEM calls. This will increase the overhead of communication operations.</flag> + <flag name="fortran">Enable fortran bindings</flag> + <flag name="long-fortran-header">Enable long Fortran header, including all function declarations</flag> + <flag name="manual-progress">Enable intermittent progress calls inside transport layer</flag> + <flag name="memcpy">Use memcpy to perform local put/get operations</flag> + <!--<flag name="nonblocking-fence">By default, shmem_fence() is equivalent to shmem_quiet(), which can be a lengthy operation. Enabling this feature results in the ordering point being moved from the shmem_fence() to the next put-like call, which can help improve overlap in some cases.</flag>--> + <flag name="ofi">Use libfabric as transport layer</flag> + <flag name="ofi-fence">Use FI_FENCE feature to optimize put-with-signal operations</flag> + <flag name="ofi-mr-basic">OFI memory registration mode: basic</flag> + <flag name="ofi-mr-rma-event">The OFI transport will use FI_MR_RMA_EVENT</flag> + <flag name="ofi-mr-scalable">The OFI transport will use FI_MR_SCALABLE</flag> + <flag name="pmi-mpi">Use MPI for process management</flag> + <flag name="pmi-simple">Include support for interfacing with a PMI 1.0 launcher. The launcher must be provided by a separate package, such as MPICH, Hydra, or SLURM.</flag> + <flag name="portals4">Use portals4 as transport layer</flag> + <flag name="profiling">Enable profiling (pshmem) interface</flag> + <flag name="pthread-mutexes">Use pthread mutexes instead of internal queueing locks</flag> + <flag name="remote-virtual-addressing"> Enable optimizations assuming the symmetric heap is always symmetric with regards to virtual address. This may cause applications to abort during shmem_init() if such a symmetric heap can not be created, but will reduce the instruction count for some operations. This optimization also requires that the Portals 4 implementation support BIND_INACCESSIBLE on LEs. This optimization will reduce the overhead of communication calls.</flag> + <flag name="thread-completion">Support SHMEM_THREAD_MULTIPLE in OFI transport using FI_THREAD_COMPLETION thread safety model instead of FI_THREAD_SAFE</flag> + <flag name="threads">Enable threading support</flag> + <flag name="total-data-ordering-always">Always assume total data ordering is available and abort a job if that's not the case</flag> + <flag name="total-data-ordering-check">Check will result in slightly higher overhead but will provide a fallback if the network doesn't provide total data ordering</flag> + <flag name="total-data-ordering-never">Never use total data ordering optimizations</flag> + <flag name="ucx">Use ucx transport</flag> + <flag name="xpmem">Use xpmem transport</flag> + </use> + <upstream> + <bugs-to>https://github.com/Sandia-OpenSHMEM/SOS/issues</bugs-to> + <remote-id type="github">Sandia-OpenSHMEM/SOS</remote-id> + </upstream> +</pkgmetadata> |