diff --git a/profiles/desc/ofi_mr.desc b/profiles/desc/ofi_mr.desc new file mode 100644 index 0000000000..11fd24e527 --- /dev/null +++ b/profiles/desc/ofi_mr.desc @@ -0,0 +1,8 @@ +# Copyright 2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# This file contains descriptions of OFI_MR USE_EXPAND flags. + +basic - OFI memory registration mode: basic +rma-event - The OFI transport will use FI_MR_RMA_EVENT +scalable - The OFI transport will use FI_MR_SCALABLE diff --git a/profiles/desc/total_data_ordering.desc b/profiles/desc/total_data_ordering.desc new file mode 100644 index 0000000000..3e77af16b8 --- /dev/null +++ b/profiles/desc/total_data_ordering.desc @@ -0,0 +1,8 @@ +# Copyright 2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# This file contains descriptions of TOTAL_DATA_ORDERING USE_EXPAND flags. + +always - Always assume total data ordering is available and abort a job if that's not the case +check - Check will result in slightly higher overhead but will provide a fallback if the network doesn't provide total data ordering +never - Never use total data ordering optimizations diff --git a/sys-cluster/SOS/SOS-1.5.0.ebuild b/sys-cluster/SOS/SOS-1.5.0.ebuild index 96836639f8..efe8effda0 100644 --- a/sys-cluster/SOS/SOS-1.5.0.ebuild +++ b/sys-cluster/SOS/SOS-1.5.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 2019-2021 Gentoo Authors +# Copyright 2019-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -15,14 +15,14 @@ LICENSE="BSD public-domain mpich2" SLOT="0" KEYWORDS="~amd64" IUSE_OFI_MR=" - ofi-mr-basic - +ofi-mr-scalable - ofi-mr-rma-event + 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 + total_data_ordering_always + +total_data_ordering_check + total_data_ordering_never " 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 @@ -80,14 +80,14 @@ src_prepare() { src_configure() { local ofimr - use ofi-mr-basic && ofimr="basic" - use ofi-mr-scalable && ofimr="scalable" - use ofi-mr-rma-event && ofimr="rma-event" + 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" + 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 diff --git a/sys-cluster/SOS/metadata.xml b/sys-cluster/SOS/metadata.xml index b671c4dd9e..a1df257ecd 100644 --- a/sys-cluster/SOS/metadata.xml +++ b/sys-cluster/SOS/metadata.xml @@ -19,9 +19,6 @@ Use libfabric as transport layer Use FI_FENCE feature to optimize put-with-signal operations - OFI memory registration mode: basic - The OFI transport will use FI_MR_RMA_EVENT - The OFI transport will use FI_MR_SCALABLE Use MPI for process management 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. Use portals4 as transport layer @@ -30,9 +27,6 @@ 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. Support SHMEM_THREAD_MULTIPLE in OFI transport using FI_THREAD_COMPLETION thread safety model instead of FI_THREAD_SAFE Enable threading support - Always assume total data ordering is available and abort a job if that's not the case - Check will result in slightly higher overhead but will provide a fallback if the network doesn't provide total data ordering - Never use total data ordering optimizations Use ucx transport Use xpmem transport