diff --git a/.github/workflows/mpi4py.yaml b/.github/workflows/mpi4py.yaml new file mode 100644 index 00000000000..f6d145e6bbc --- /dev/null +++ b/.github/workflows/mpi4py.yaml @@ -0,0 +1,91 @@ +name: GitHub Action CI + +on: + pull_request: + # We don't need this to be run on all types of PR behavior + # See https://docs.github.com/en/actions/reference/events-that-trigger-workflows#pull_request + types: + - opened + - synchronize + +jobs: + mpi4py: + name: mpi4py sanity checks + runs-on: ubuntu-latest + steps: + - name: Install depencencies + run: sudo apt-get install -y -q + libnuma-dev + + - name: Check out the code + uses: actions/checkout@v2 + with: + submodules: recursive + + - name: Bootstrap Open MPI + run: ./autogen.pl + + - name: Configure Open MPI + run: ./configure + --disable-dependency-tracking + --enable-debug + --enable-mem-debug + --disable-man-pages + --disable-mpi-fortran + LDFLAGS=-Wl,-rpath,/usr/local/lib + + - name: Build Open MPI + run: make -j 2 + + - name: Install Open MPI + run: sudo make install + + - name: Show Open MPI + run: ompi_info + + - name: Show MPICC + run: mpicc -show + + - name: Use Python + uses: actions/setup-python@v2 + with: + python-version: 3.9 + architecture: x64 + + - name: Install Python packages + run: python -m pip install --upgrade + setuptools pip wheel + numpy cffi simplejson PyYAML + + - name: Checkout mpi4py + uses: actions/checkout@v2 + with: + repository: mpi4py/mpi4py + ref: master + path: mpi4py + + - name: Install mpi4py + run: python -m pip install ./mpi4py + env: + CFLAGS: '-O0' + + - name: Test mpi4py (np=1) + run: mpiexec -n 1 python mpi4py/test/runtests.py -e spawn -e dynproc -v + - name: Test mpi4py (np=2) + run: mpiexec -n 2 python mpi4py/test/runtests.py -e spawn -e dynproc-v -f + - name: Test mpi4py (np=3) + run: mpiexec -n 3 python mpi4py/test/runtests.py -e spawn -e dynproc-v -f + + - name: Test mpi4py.futures (np=1) + run: mpiexec -n 1 python mpi4py/demo/futures/test_futures.py -v + - name: Test mpi4py.futures (np=2) + run: mpiexec -n 2 python mpi4py/demo/futures/test_futures.py -v + - name: Test mpi4py.futures (np=3) + run: mpiexec -n 3 python mpi4py/demo/futures/test_futures.py -v + + - name: Test mpi4py.futures (np=1) + run: mpiexec -n 1 python -m mpi4py.futures mpi4py/demo/futures/test_futures.py -v + - name: Test mpi4py.futures (np=2) + run: mpiexec -n 2 python -m mpi4py.futures mpi4py/demo/futures/test_futures.py -v + - name: Test mpi4py.futures (np=3) + run: mpiexec -n 3 python -m mpi4py.futures mpi4py/demo/futures/test_futures.py -v diff --git a/README.md b/README.md index 74365c88b7a..845fddea577 100644 --- a/README.md +++ b/README.md @@ -33,8 +33,8 @@ Note that there are many, many configuration options to the environmnet; see below for desciptions of the options available. If your installation prefix path is not writable by a regular user, -you may need to use sudo or su to run the `make install` step. For -example: +you may need to use `sudo` or `su` to run the `make install` step. +For example: ``` $ sudo make install |& tee install.out diff --git a/ompi/mpi/c/info_get_nthkey.c b/ompi/mpi/c/info_get_nthkey.c index 0007bf8367f..1d94314a024 100644 --- a/ompi/mpi/c/info_get_nthkey.c +++ b/ompi/mpi/c/info_get_nthkey.c @@ -94,7 +94,7 @@ int MPI_Info_get_nthkey(MPI_Info info, int n, char *key) err = ompi_info_get_nthkey (info, n, &key_str); if (NULL != key_str) { opal_string_copy(key, key_str->string, MPI_MAX_INFO_KEY); - OBJ_RELEASE(key); + OBJ_RELEASE(key_str); } OMPI_ERRHANDLER_NOHANDLE_RETURN(err, err, FUNC_NAME); }