mirror of
https://github.com/gentoo-mirror/guru.git
synced 2026-07-10 07:33:19 -04:00
sys-cluster/SOS: initial import
Signed-off-by: Alessandro Barbieri <lssndrbarbieri@gmail.com>
This commit is contained in:
1
sys-cluster/SOS/Manifest
Normal file
1
sys-cluster/SOS/Manifest
Normal file
@@ -0,0 +1 @@
|
||||
DIST SOS-1.5.0.tar.gz 544478 BLAKE2B f2a63fbf39958ac238e2d687d866c2f600956b933f956a4d8552acff29973de4d3e46a323b3f8eb3a63d395728cbafdfe119ea99d0fb5e17250d879ff269fb0e SHA512 0506bda8ab898cd1aaea82e230c64e17dde4ccfb3b70c9a4397c90d08643b3c7f96e7eae70e1a2b706b33737e979315372bcc338fc957652cd1b5e55d7a560ad
|
||||
131
sys-cluster/SOS/SOS-1.5.0.ebuild
Normal file
131
sys-cluster/SOS/SOS-1.5.0.ebuild
Normal file
@@ -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
|
||||
}
|
||||
43
sys-cluster/SOS/metadata.xml
Normal file
43
sys-cluster/SOS/metadata.xml
Normal file
@@ -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>
|
||||
Reference in New Issue
Block a user