Skip to content

Commit

Permalink
Merge pull request #1108 from philipmarshall21/add_hwloc_submodule
Browse files Browse the repository at this point in the history
Add initial hwloc support
  • Loading branch information
philipmarshall21 authored Feb 7, 2024
2 parents 99a1fd3 + e3585ff commit 0e4cff6
Show file tree
Hide file tree
Showing 15 changed files with 2,448 additions and 540 deletions.
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

0 comments on commit 0e4cff6

Please sign in to comment.