Skip to content

Commit 86f9587

Browse files
committed
abi: Add testing with Open MPI
1 parent cba063c commit 86f9587

File tree

1 file changed

+54
-9
lines changed

1 file changed

+54
-9
lines changed

.github/workflows/abi.yml

Lines changed: 54 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ on:
1717
inputs:
1818
mpi-git:
1919
description: 'MPI git'
20-
default: pmodels/mpich
20+
default: ''
2121
required: false
2222
type: string
2323
mpi-ref:
@@ -92,10 +92,17 @@ jobs:
9292
path: mpi4py-*.whl
9393

9494

95-
mpich:
95+
test:
96+
name: ${{ matrix.mpi-git }}
9697
needs: build
9798
runs-on: ubuntu-24.04
9899
timeout-minutes: 60
100+
strategy:
101+
fail-fast: false
102+
matrix:
103+
mpi-git: ${{ inputs.mpi-git &&
104+
fromJSON(format('["{0}"]', inputs.mpi-git)) ||
105+
fromJSON('["pmodels/mpich", "open-mpi/ompi"]') }}
99106

100107
steps:
101108

@@ -108,23 +115,32 @@ jobs:
108115
libhwloc-dev
109116
libfabric-dev
110117
libibverbs-dev
118+
libnuma-dev
111119
libpsm-infinipath1-dev
112120
libpsm2-dev
113121
librdmacm-dev
114122

115123
- name: Checkout MPI
116124
uses: actions/checkout@v6
117125
with:
118-
repository: ${{ inputs.mpi-git || 'pmodels/mpich' }}
119-
ref: ${{ inputs.mpi-ref }}
126+
repository: ${{ matrix.mpi-git }}
127+
ref: ${{ inputs.mpi-ref ||
128+
((matrix.mpi-git == 'open-mpi/ompi') &&
129+
'refs/pull/13280/head') || 'main' }}
120130
path: mpi-build
121131
submodules: recursive
122132

123-
- name: Bootstrap MPI
133+
- name: Bootstrap MPI (mpich)
124134
run: ./autogen.sh
125135
working-directory: mpi-build
136+
if: ${{ endsWith(matrix.mpi-git, 'mpich') }}
137+
138+
- name: Bootstrap MPI (openmpi)
139+
run: ./autogen.pl
140+
working-directory: mpi-build
141+
if: ${{ endsWith(matrix.mpi-git, 'ompi') }}
126142

127-
- name: Configure MPI
143+
- name: Configure MPI (mpich)
128144
run: ./configure
129145
--with-pm=hydra
130146
--with-device=ch4:ofi
@@ -135,6 +151,21 @@ jobs:
135151
--enable-fast=none
136152
--enable-mpi-abi
137153
working-directory: mpi-build
154+
if: ${{ endsWith(matrix.mpi-git, 'mpich') }}
155+
156+
- name: Configure MPI (openmpi)
157+
run: ./configure
158+
--disable-dependency-tracking
159+
--without-ofi
160+
--without-ucx
161+
--without-psm2
162+
--enable-debug
163+
--enable-mem-debug
164+
--disable-sphinx
165+
--disable-oshmem
166+
LDFLAGS=-Wl,-rpath,/usr/local/lib
167+
working-directory: mpi-build
168+
if: ${{ endsWith(matrix.mpi-git, 'ompi') }}
138169

139170
- name: Build MPI
140171
run: make -j $(nproc)
@@ -152,9 +183,23 @@ jobs:
152183
run: |
153184
# Tweak MPI
154185
echo "RDMAV_FORK_SAFE=1" >> $GITHUB_ENV
155-
156-
- name: Show MPI
186+
# Tweak MPI
187+
mca_params="$HOME/.openmpi/mca-params.conf"
188+
mkdir -p "$(dirname "$mca_params")"
189+
echo mpi_param_check = true >> "$mca_params"
190+
echo mpi_show_handle_leaks = true >> "$mca_params"
191+
echo rmaps_base_oversubscribe = true >> "$mca_params"
192+
mca_params="$HOME/.prte/mca-params.conf"
193+
mkdir -p "$(dirname "$mca_params")"
194+
echo rmaps_default_mapping_policy = :oversubscribe >> "$mca_params"
195+
196+
- name: Show MPI (mpich)
157197
run: mpichversion
198+
if: ${{ endsWith(matrix.mpi-git, 'mpich') }}
199+
200+
- name: Show MPI (openmpi)
201+
run: ompi_info
202+
if: ${{ endsWith(matrix.mpi-git, 'ompi') }}
158203

159204
- name: Use Python
160205
uses: actions/setup-python@v6
@@ -194,7 +239,7 @@ jobs:
194239
timeout-minutes: 10
195240
- name: Test mpi4py (np=5)
196241
run: mpiexec -n 5 python test/main.py -v -f
197-
if: ${{ false }}
242+
if: ${{ !endsWith(matrix.mpi-git, 'mpich') }}
198243
timeout-minutes: 10
199244

200245
- name: Test mpi4py.futures (singleton)

0 commit comments

Comments
 (0)