Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add initial hwloc support #1108

Merged
Merged
26 changes: 13 additions & 13 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ jobs:
libfabric_version: v1.13.x
- config_name: MR-Basic, AV-map, memcpy
sos_config: --enable-ofi-mr=basic --enable-av-map --disable-cxx --enable-memcpy
--enable-pmi-simple
--enable-pmi-simple --with-hwloc=no
libfabric_version: v1.13.x
- config_name: PMI MPI
sos_config: --disable-fortran --enable-pmi-mpi CC=mpicc
Expand All @@ -54,7 +54,7 @@ jobs:
libfabric_version: v1.13.x
- config_name: heap use malloc
env_setup: export SHMEM_SYMMETRIC_HEAP_USE_MALLOC=1
sos_config: --disable-threads --enable-error-checking --enable-pmi-simple
sos_config: --disable-threads --enable-error-checking --enable-pmi-simple --with-hwloc=no
libfabric_version: v1.13.x
# too slow, times out on Github (but passes on another Ubuntu 20.04 system)...
#- config_name: CMA, MR Basic, RVA
Expand All @@ -79,7 +79,7 @@ jobs:
- config_name: huge pages, zero bounce
env_setup: SHMEM_SYMMETRIC_HEAP_USE_HUGE_PAGES=1 SHMEM_BOUNCE_SIZE=0
sos_config: --enable-error-checking --enable-remote-virtual-addressing
--enable-pmi-simple --enable-ofi-fence
--enable-pmi-simple --enable-ofi-fence --with-hwloc=no
libfabric_version: v1.13.x
- config_name: auto algorithms
env_setup: export SHMEM_BARRIER_ALGORITHM=auto;
Expand All @@ -97,7 +97,7 @@ jobs:
export SHMEM_COLLECT_ALGORITHM=linear;
export SHMEM_FCOLLECT_ALGORITHM=linear
sos_config: --enable-error-checking --enable-remote-virtual-addressing
--enable-pmi-simple
--enable-pmi-simple --with-hwloc=no
libfabric_version: v1.13.x
- config_name: tree algorithms
env_setup: export SHMEM_BARRIER_ALGORITHM=tree;
Expand All @@ -113,7 +113,7 @@ jobs:
export SHMEM_FCOLLECT_ALGORITHM=recdbl;
export SHMEM_OFI_STX_AUTO=1
sos_config: --enable-error-checking --enable-remote-virtual-addressing
--enable-pmi-simple --enable-manual-progress --enable-hard-polling
--enable-pmi-simple --enable-manual-progress --enable-hard-polling --with-hwloc=no
libfabric_version: v1.13.x
- config_name: ring reduce algorithm
env_setup: export SHMEM_REDUCE_ALGORITHM=ring
Expand Down Expand Up @@ -474,11 +474,11 @@ jobs:
- config_name: ucx-1.9.0
ucx_version: v1.9.0
xpmem_version: master
sos_config: [--enable-pmi-simple --disable-fortran,
sos_config: [--enable-pmi-simple --disable-fortran --with-hwloc=no,
--enable-pmi-mpi CC=mpicc --disable-fortran,
--with-cma --enable-error-checking --enable-profiling
--enable-pmi-simple --disable-fortran,
--with-xpmem --enable-error-checking --enable-pmi-simple]
--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: |
Expand Down Expand Up @@ -558,25 +558,25 @@ jobs:
xpmem_version: master
- name: Heap use malloc
env_setup: export SHMEM_SYMMETRIC_HEAP_USE_MALLOC=1
sos_config: --disable-threads --enable-error-checking --enable-pmi-simple
sos_config: --disable-threads --enable-error-checking --enable-pmi-simple --with-hwloc=no
- name: Heap use huge pages, zero bounce
env_setup: export SHMEM_SYMMETRIC_HEAP_USE_HUGE_PAGES=1; export SHMEM_BOUNCE_SIZE=0
sos_config: --enable-error-checking --enable-remote-virtual-addressing --enable-pmi-simple --enable-ofi-fence
sos_config: [--enable-pmi-simple,
sos_config: [--enable-pmi-simple --with-hwloc=no,
--disable-fortran --enable-error-checking --enable-remote-virtual-addressing
--disable-aslr-check --enable-pmi-simple,
--with-cma --enable-error-checking --enable-profiling
--enable-remote-virtual-addressing --enable-pmi-simple,
--with-xpmem --enable-shr-atomics --enable-error-checking --enable-pmi-simple,
--enable-pmi-mpi CC=mpicc --disable-fortran]
--enable-pmi-mpi CC=mpicc --disable-fortran --with-hwloc=no]
steps:
- name: Checking OS version
run: |
echo "OS_NAME=$(lsb_release -si)-$(ls_release -sr)" >> $GITHUB_ENV
- uses: actions/checkout@v2
- name: Install dependencies
run: |
sudo apt-get install -y gfortran mpich libmpich-dev libev-dev libev-libevent-dev
sudo apt-get install -y gfortran mpich libmpich-dev libev-dev libev-libevent-dev libhwloc-dev
sudo sysctl -w kernel.yama.ptrace_scope=0
sudo sysctl -w kernel.randomize_va_space=0

Expand Down Expand Up @@ -653,7 +653,7 @@ jobs:
- uses: actions/checkout@v2
- name: Install dependencies
run: |
sudo apt-get install -y gfortran mpich libmpich-dev libev-dev libev-libevent-dev
sudo apt-get install -y gfortran mpich libmpich-dev libev-dev libev-libevent-dev libhwloc-dev
sudo sysctl -w kernel.yama.ptrace_scope=0
sudo sysctl -w kernel.randomize_va_space=0

Expand Down
43 changes: 43 additions & 0 deletions config/oac_assert.m4
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
dnl -*- autoconf -*-
dnl
dnl Copyright (c) 2022 Amazon.com, Inc. or its affiliates. All Rights reserved.
dnl $COPYRIGHT$
dnl
dnl Additional copyrights may follow


dnl OAC_ASSERT_LITERAL: Assert if first argument is not an Autoconf literal
dnl
dnl 1 -> Variable which must be a literal
dnl 2 -> Argument reference string (usually an integer argument number)
dnl
dnl Assert that the first argument is a literal (in the Autoconf sense
dnl of the word) Second argument is the argument number (ie, a bare
dnl number) to make the error message easier to parse.
AC_DEFUN([OAC_ASSERT_LITERAL],
[AS_LITERAL_IF([$1], [], [m4_fatal([argument $2 ($1) must be a literal])])])dnl


dnl OAC_ASSERT_BEFORE: Assert the first argument is evaluated before
dnl the second argument
dnl
dnl 1 -> Macro which must be evaluated before second argument
dnl 2 -> Macro currently calling assert (for debugging print)
dnl
dnl Common usage would be similar to the commonly used check that
dnl OAC macros which require init to be called:
dnl OAC_ASSERT_BEFORE([OAC_INIT], [$0])
AC_DEFUN([OAC_ASSERT_BEFORE],
[AC_PROVIDE_IFELSE([$1], [], [m4_fatal([$1 must be evaluated before $2])])])dnl


dnl OAC_ASSERT_PREFIX_DEFINED: Assert that the OAC program prefix is defined
dnl
dnl 1 -> Calling macro name
dnl
dnl Generally only internally useful, but assert that the program prefix has
dnl been defined, so that the calling macro can rely on oac_program_prefix
dnl having a rational value.
AC_DEFUN([OAC_ASSERT_PREFIX_DEFINED],
[m4_ifdef([_oac_program_prefix], [],
[m4_fatal([OAC prefix not defined. Evaluate OAC_PUSH_PREFIX before evaluating $1])])])dnl
Loading
Loading