Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
7af5fd4
Add test-sos as a submodule
kholland-intel Nov 14, 2023
4ac55af
Updated CI to install submodule
kholland-intel Nov 16, 2023
ce94209
CI: move "submodules: true" to the top of each job
Nov 16, 2023
e081eeb
Update Error message in autogen
kholland-intel Nov 16, 2023
a2643b7
Re-add tests-sos submodule to track main branch
kholland-intel Nov 17, 2023
c09cb26
Removed submodule
kholland-intel Nov 20, 2023
e938972
Correctly tracking branch in submodule
kholland-intel Nov 20, 2023
d52236d
Fix SOS RPM Bug
kholland-intel Nov 27, 2023
fe6441f
Fix RPM CI row and update scripts
kholland-intel Nov 29, 2023
67005b8
Update autogen file to check test directory for Makefiles
kholland-intel Nov 29, 2023
ef91a6b
Fixed autogen formatting
kholland-intel Dec 5, 2023
0417d08
tests-sos: change submodule to use a relative path
Feb 7, 2024
f40ea8b
tests-sos: have autogen.sh copy test-sos submodule
Feb 7, 2024
1a2c6df
CI: remove UCX pmi-mpi testing row (See #1048)
Feb 7, 2024
cd9bbac
Merge branch 'main' into pr/test-submodule
Feb 7, 2024
48cbd79
tests-sos: remove copy, point directly to module
Feb 8, 2024
469d6da
tests-sos: revert symlink file deletion
Feb 8, 2024
e520616
CI: fixup tests symlink for tests-sos submodule
Feb 8, 2024
b5eca1c
CI: remove UCX pmi-mpi testing row (See #1048)
Feb 7, 2024
c3829ef
tests-sos: readd submodule tracking main branch
Feb 8, 2024
1795ca2
Using put_nb for iput when OFI inject is disabled
Feb 13, 2024
d1ff333
Added a CI check
Feb 14, 2024
86fca89
tests-sos: patch RPM build and remove test symlink
Feb 14, 2024
989d8d3
tests-sos: update submodule to latest 'main'
Feb 14, 2024
12cd72b
Merge pull request #1106 from kholland-intel/pr/test-submodule
Feb 16, 2024
7dd4488
Merge pull request #1110 from wrrobin/pr/iput-iget-fix
Feb 16, 2024
d17d366
src: Fix bug in SHMEM_DEF_TEST_ALL
philipmarshall21 Feb 26, 2024
81e84e4
src: Fix bug in SHMEM_DEF_TEST_ALL_VECTOR
philipmarshall21 Feb 29, 2024
98837b5
Merge pull request #1113 from philipmarshall21/pr/test_all_fix
philipmarshall21 Mar 1, 2024
9334661
Fix for RVA check
Mar 5, 2024
d6d2772
Merge pull request #1115 from wrrobin/fix/rva_check
Mar 6, 2024
4727a9e
Merge pull request #1107 from philipmarshall21/multirail_with_hwloc
philipmarshall21 Apr 10, 2024
e0f0e30
src: Set 'next' attribute of list tail to NULL
Apr 15, 2024
5b829e8
src: Add Wasi's recommended fix
Apr 15, 2024
4fb8bcd
Merge pull request #1119 from philipmarshall21/multirail_bug_fix
philipmarshall21 Apr 16, 2024
39ab5e8
src: Initial multi-NIC multiplexing changes
philipmarshall21 Mar 22, 2024
224f6d5
src: Modify STX management objects to support multirail
philipmarshall21 Mar 26, 2024
294c096
src: Continuing changes to add multirail support
philipmarshall21 Mar 26, 2024
f8aa223
src: Revise atomic_limitations_check
philipmarshall21 Apr 2, 2024
757f39a
Beginning to make necessary changes to synchronization functions
philipmarshall21 Apr 5, 2024
8c876a6
src: Revise cleanup functions
philipmarshall21 Apr 9, 2024
c9d74f6
src: Continue debugging efforts for multirail multiplexing
philipmarshall21 Apr 10, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 29 additions & 19 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -144,14 +144,19 @@ jobs:
- config_name: Manpages
sos_config: --enable-manpages --enable-pmi-simple
libfabric_version: v1.13.x
- config_name: Without OFI inject
sos_config: --disable-ofi-inject --enable-pmi-simple
libfabric_version: v1.13.x

name: OFI ${{ matrix.libfabric_version }} (${{ matrix.config_name }})

steps:
- name: Checking OS version
run: |
echo "OS_NAME=$(lsb_release -si)-$(ls_release -sr)" >> $GITHUB_ENV
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
submodules: 'true'
- name: Install dependencies
run: |
sudo apt-get install -y gfortran rpm mpich libmpich-dev libhwloc-dev
Expand All @@ -167,7 +172,7 @@ jobs:
key: libfabric-${{ matrix.libfabric_version }}-${{ env.OS_NAME }}
- name: Checkout libfabric
if: steps.cache-libfabric.outputs.cache-hit != 'true'
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
repository: ofiwg/libfabric
path: repos/libfabric
Expand All @@ -192,7 +197,7 @@ jobs:
key: xpmem-${{ matrix.xpmem_version }}-${{ env.OS_NAME }}
- name: Checkout XPMEM
if: ${{ matrix.xpmem_version }}
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
repository: hjelmn/xpmem
path: repos/xpmem
Expand Down Expand Up @@ -223,7 +228,7 @@ jobs:
make check TESTS= -j
${{ matrix.env_setup }}
SHMEM_DEBUG=1 SHMEM_INFO=1 make VERBOSE=1 TEST_RUNNER="${SOS_PM} -np 2" check
cat test/unit/hello.log
cat modules/tests-sos/test/unit/hello.log
- name: Test RPM (${{ matrix.rpm_build }})
if: ${{ matrix.rpm_build }}
run: |
Expand Down Expand Up @@ -453,7 +458,7 @@ jobs:
# export PATH=${PRRTE_INSTALL_DIR}/bin:$PATH
# ${{ matrix.sos_pm_pre }}
# SHMEM_INFO=1 make VERBOSE=1 TEST_RUNNER="${{ matrix.sos_pm }} -np 2" check
# cat test/unit/hello.log
# cat modules/tests-sos/test/unit/hello.log
# ${{ matrix.sos_pm_post }}
# - name: Test SOS (hello)
# if: ${{ matrix.sos_transport == 'portals4' }}
Expand All @@ -462,7 +467,7 @@ jobs:
# make check TESTS= -j
# export PATH=${PRRTE_INSTALL_DIR}/bin:$PATH
# ${{ matrix.sos_pm_pre }}
# SHMEM_INFO=1 ${{ matrix.sos_pm }} -np 1 test/unit/hello
# SHMEM_INFO=1 ${{ matrix.sos_pm }} -np 1 modules/tests-sos/test/unit/hello
# ${{ matrix.sos_pm_post }}
#
UCX:
Expand All @@ -474,16 +479,17 @@ jobs:
- config_name: ucx-1.9.0
ucx_version: v1.9.0
xpmem_version: master
sos_config: [--enable-pmi-simple --disable-fortran --with-hwloc=no,
--enable-pmi-mpi CC=mpicc --disable-fortran,
sos_config: [--enable-pmi-simple --disable-fortran,
--with-cma --enable-error-checking --enable-profiling
--enable-pmi-simple --disable-fortran --with-hwloc=no,
--with-xpmem --enable-error-checking --enable-pmi-simple --with-hwloc=no]
steps:
- name: Checking OS version
run: |
echo "OS_NAME=$(lsb_release -si)-$(ls_release -sr)" >> $GITHUB_ENV
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
submodules: 'true'
- name: Install dependencies
run: |
sudo apt-get install -y gfortran mpich libmpich-dev
Expand All @@ -492,7 +498,7 @@ jobs:

# XPMEM
- name: Checkout XPMEM
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
repository: hjelmn/xpmem
path: repos/xpmem
Expand All @@ -517,7 +523,7 @@ jobs:
key: ucx-${{ matrix.ucx_version}}-${{ env.OS_NAME }}
- name: Checkout UCX
if: steps.cache-ucx.outputs.cache-hit != 'true'
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
repository: openucx/ucx
path: repos/ucx
Expand Down Expand Up @@ -545,7 +551,7 @@ jobs:
cd build
make check TESTS= -j
SHMEM_DEBUG=1 SHMEM_INFO=1 make VERBOSE=1 TEST_RUNNER="${SOS_PM} -np 2" check
cat test/unit/hello.log
cat modules/tests-sos/test/unit/hello.log

Portals4:
runs-on: ubuntu-20.04
Expand Down Expand Up @@ -573,7 +579,9 @@ jobs:
- name: Checking OS version
run: |
echo "OS_NAME=$(lsb_release -si)-$(ls_release -sr)" >> $GITHUB_ENV
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
submodules: 'true'
- name: Install dependencies
run: |
sudo apt-get install -y gfortran mpich libmpich-dev libev-dev libev-libevent-dev libhwloc-dev
Expand All @@ -582,7 +590,7 @@ jobs:

# XPMEM
- name: Checkout XPMEM
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
repository: hjelmn/xpmem
path: repos/xpmem
Expand All @@ -607,7 +615,7 @@ jobs:
key: portals4-${{ matrix.portals4_version}}-${{ env.OS_NAME }}
- name: Checkout Portals4
if: steps.cache-portals4.outputs.cache-hit != 'true'
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
repository: regrant/portals4
path: repos/portals4
Expand All @@ -634,7 +642,7 @@ jobs:
run: |
cd build
make check TESTS= -j
${SOS_PM} -np 1 test/unit/hello
${SOS_PM} -np 1 modules/tests-sos/test/unit/hello

XPMEM_Only:
runs-on: ubuntu-20.04
Expand All @@ -650,7 +658,9 @@ jobs:
- name: Checking OS version
run: |
echo "OS_NAME=$(lsb_release -si)-$(ls_release -sr)" >> $GITHUB_ENV
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
submodules: 'true'
- name: Install dependencies
run: |
sudo apt-get install -y gfortran mpich libmpich-dev libev-dev libev-libevent-dev libhwloc-dev
Expand All @@ -659,7 +669,7 @@ jobs:

# XPMEM
- name: Checkout XPMEM
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
repository: hjelmn/xpmem
path: repos/xpmem
Expand Down Expand Up @@ -688,4 +698,4 @@ jobs:
cd build
make check TESTS= -j
SHMEM_DEBUG=1 SHMEM_INFO=1 make VERBOSE=1 TEST_RUNNER="${SOS_PM} -np 2" check
${SOS_PM} -np 1 test/unit/hello
${SOS_PM} -np 1 modules/tests-sos/test/unit/hello
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[submodule "modules/tests-sos"]
path = modules/tests-sos
url = ../../openshmem-org/tests-sos.git
branch = main
2 changes: 1 addition & 1 deletion Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ endif

dist_doc_DATA = README NEWS LICENSE

SUBDIRS = bindings mpp pmi-simple src test
SUBDIRS = bindings mpp pmi-simple src modules

if ENABLE_MANPAGES
SUBDIRS += man
Expand Down
27 changes: 27 additions & 0 deletions autogen.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,33 @@

test -d ./config || mkdir ./config

tests_sos_dir=modules/tests-sos

script_dir="$(cd "$(dirname "$0")" && pwd)"
current_dir="$(pwd)"

# Check if the script is being run from within the root SOS source directory
if [ "$script_dir" != "$current_dir" ]; then
echo "Error: Please run ./autogen.sh from the top-level directory of SOS."
exit 1
fi

if [ ! -d "${tests_sos_dir}" ]; then
echo "Error: the tests-sos submodule directory ${tests_sos_dir} does not exist"
exit 1
elif [ ! -f "${tests_sos_dir}/test/Makefile.am" ] ||
[ ! -f "${tests_sos_dir}/test/apps/Makefile.am" ] ||
[ ! -f "${tests_sos_dir}/test/include/Makefile.am" ] ||
[ ! -f "${tests_sos_dir}/test/performance/Makefile.am" ] ||
[ ! -f "${tests_sos_dir}/test/shmemx/Makefile.am" ] ||
[ ! -f "${tests_sos_dir}/test/spec-example/Makefile.am" ] ||
[ ! -f "${tests_sos_dir}/test/unit/Makefile.am" ]; then
echo "Error: test submodule (${tests_sos_dir}) contents are missing."
echo "Please run the following command to download the SOS tests:"
echo " git submodule update --init"
exit 1
fi

FILES=./man/*.1
echo -n "dist_man1_MANS =" > ./man/Makefile.am
for f in $FILES
Expand Down
20 changes: 11 additions & 9 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -967,15 +967,17 @@ AC_CONFIG_FILES([Makefile
mpp/shmem-def.h
src/Makefile
src/sandia-openshmem.pc
test/Makefile
test/unit/Makefile
test/shmemx/Makefile
test/spec-example/Makefile
test/include/Makefile
test/performance/Makefile
test/performance/shmem_perf_suite/Makefile
test/performance/tests/Makefile
test/apps/Makefile])
modules/Makefile
modules/tests-sos/Makefile
modules/tests-sos/test/Makefile
modules/tests-sos/test/unit/Makefile
modules/tests-sos/test/shmemx/Makefile
modules/tests-sos/test/spec-example/Makefile
modules/tests-sos/test/include/Makefile
modules/tests-sos/test/performance/Makefile
modules/tests-sos/test/performance/shmem_perf_suite/Makefile
modules/tests-sos/test/performance/tests/Makefile
modules/tests-sos/test/apps/Makefile])

AC_OUTPUT

Expand Down
4 changes: 2 additions & 2 deletions test/Makefile.am → modules/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@
# DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government
# retains certain rights in this software.
#
# Copyright (c) 2017 Intel Corporation. All rights reserved.
# Copyright (c) 2024 Intel Corporation. All rights reserved.
# This software is available to you under the BSD license.
#
# This file is part of the Sandia OpenSHMEM software package. For license
# information, see the LICENSE file in the top level directory of the
# distribution.

SUBDIRS = unit shmemx performance apps spec-example include
SUBDIRS = tests-sos
1 change: 1 addition & 0 deletions modules/tests-sos
Submodule tests-sos added at d1adb7
12 changes: 6 additions & 6 deletions sandia-openshmem.spec.in
Original file line number Diff line number Diff line change
Expand Up @@ -49,17 +49,17 @@ rm -f %{buildroot}%{_libdir}/*.la
# FIXME: It would be better to configure with --disable-libtool-wrapper so we
# can pull from the standard dirs instead of .libs
install -d %{testdir}/unit
install test/unit/.libs/* %{testdir}/unit
install modules/tests-sos/test/unit/.libs/* %{testdir}/unit
install -d %{testdir}/shmemx
install test/shmemx/.libs/* %{testdir}/shmemx
install modules/tests-sos/test/shmemx/.libs/* %{testdir}/shmemx
install -d %{testdir}/spec-example
install test/spec-example/.libs/* %{testdir}/spec-example
install modules/tests-sos/test/spec-example/.libs/* %{testdir}/spec-example
install -d %{testdir}/apps
install test/apps/.libs/* %{testdir}/apps
install modules/tests-sos/test/apps/.libs/* %{testdir}/apps
install -d %{testdir}/performance/shmem_perf_suite
install test/performance/shmem_perf_suite/.libs/* %{testdir}/performance/shmem_perf_suite
install modules/tests-sos/test/performance/shmem_perf_suite/.libs/* %{testdir}/performance/shmem_perf_suite
install -d %{testdir}/performance/tests
install test/performance/tests/.libs/* %{testdir}/performance/tests
install modules/tests-sos/test/performance/tests/.libs/* %{testdir}/performance/tests

%clean
rm -rf %{buildroot}
Expand Down
2 changes: 1 addition & 1 deletion scripts/docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ RUN make install

# Build SOS
WORKDIR $SOS_INSTALL
RUN git clone https://github.com/Sandia-OpenSHMEM/SOS.git
RUN git clone --recurse-submodules https://github.com/Sandia-OpenSHMEM/SOS.git
WORKDIR SOS
RUN ./autogen.sh
# To build SOS w/ basic Libfabric
Expand Down
2 changes: 1 addition & 1 deletion scripts/simple-build-ofi.sh
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ echo ========================================================================
echo = BUILDING SANDIA OPENSHMEM
echo ========================================================================

git clone -b $SOS_VERSION --depth $CLONE_DEPTH https://github.com/Sandia-OpenSHMEM/SOS.git sos
git clone -b $SOS_VERSION --depth $CLONE_DEPTH --recurse-submodules https://github.com/Sandia-OpenSHMEM/SOS.git sos
cd sos
./autogen.sh
./configure --prefix=$INSTALL_DIR --with-ofi=$INSTALL_DIR $SOS_CONFIG_OPTS
Expand Down
2 changes: 1 addition & 1 deletion src/runtime-mpi.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@

/* Note: Increase MAX_KV_COUNT if more key/values are needed. MAX_KV_COUNT is
* 2 * the number of key/value pairs. */
#define MAX_KV_COUNT 20
#define MAX_KV_COUNT 40
#define MAX_KV_LENGTH 512

static int rank = -1;
Expand Down
44 changes: 25 additions & 19 deletions src/shmem_comm.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,30 +32,45 @@

static inline
void
shmem_internal_put_scalar(shmem_ctx_t ctx, void *target, const void *source, size_t len, int pe)
shmem_internal_put_nb(shmem_ctx_t ctx, void *target, const void *source, size_t len, int pe,
long *completion)
{
shmem_internal_assert(len > 0);
if (len == 0)
return;

if (shmem_shr_transport_use_write(ctx, target, source, len, pe)) {
shmem_shr_transport_put_scalar(ctx, target, source, len, pe);
shmem_shr_transport_put(ctx, target, source, len, pe);
} else {
shmem_transport_put_scalar((shmem_transport_ctx_t *)ctx, target, source, len, pe);
shmem_transport_put_nb((shmem_transport_ctx_t *)ctx, target, source, len, pe, completion);
}
}


static inline
void
shmem_internal_put_nb(shmem_ctx_t ctx, void *target, const void *source, size_t len, int pe,
long *completion)
shmem_internal_put_wait(shmem_ctx_t ctx, long *completion)
{
if (len == 0)
return;
shmem_transport_put_wait((shmem_transport_ctx_t *)ctx, completion);
/* on-node is always blocking, so this is a no-op for them */
}


static inline
void
shmem_internal_put_scalar(shmem_ctx_t ctx, void *target, const void *source, size_t len, int pe)
{
shmem_internal_assert(len > 0);

if (shmem_shr_transport_use_write(ctx, target, source, len, pe)) {
shmem_shr_transport_put(ctx, target, source, len, pe);
shmem_shr_transport_put_scalar(ctx, target, source, len, pe);
} else {
shmem_transport_put_nb((shmem_transport_ctx_t *)ctx, target, source, len, pe, completion);
#ifndef DISABLE_OFI_INJECT
shmem_transport_put_scalar((shmem_transport_ctx_t *)ctx, target, source, len, pe);
#else
long completion = 0;
shmem_transport_put_nb((shmem_transport_ctx_t *)ctx, target, source, len, pe, &completion);
shmem_internal_put_wait(ctx, &completion);
#endif
}
}

Expand Down Expand Up @@ -106,15 +121,6 @@ shmem_internal_put_ct_nb(shmemx_ct_t ct, void *target, const void *source, size_
}


static inline
void
shmem_internal_put_wait(shmem_ctx_t ctx, long *completion)
{
shmem_transport_put_wait((shmem_transport_ctx_t *)ctx, completion);
/* on-node is always blocking, so this is a no-op for them */
}


static inline
void
shmem_internal_get(shmem_ctx_t ctx, void *target, const void *source, size_t len, int pe)
Expand Down
Loading