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