diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index ce0bb21bae..c37bbec630 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -37,15 +37,27 @@ jobs: env: DISPLAY: ${{ ':0' }} MUSIC_INSTALL_DIR: /opt/MUSIC - MUSIC_VERSION: 1.2.0 + MUSIC_VERSION: 1.2.1 steps: - name: Install apt packages run: | - sudo apt-get install xfonts-100dpi build-essential doxygen lcov libboost-all-dev libopenmpi-dev libmpich-dev libx11-dev libxcomposite-dev mpich openmpi-bin gpg ninja-build flex bison libfl-dev + sudo apt-get install xfonts-100dpi build-essential doxygen lcov libboost-all-dev libmpich-dev libx11-dev libxcomposite-dev mpich gpg ninja-build flex bison libfl-dev shell: bash + - name: Install a new version of OpenMPI + # The version of OpenMPI on Ubuntu 22.04 does not support MPI 4 features, so we install it manually + run: | + sudo apt-get purge -y libopenmpi-dev openmpi-bin + curl -L -o openmpi.tar.gz https://download.open-mpi.org/release/open-mpi/v5.0/openmpi-5.0.5.tar.gz + tar -xf openmpi.tar.gz + cd openmpi-5.0.5/ + ./configure --prefix=/usr/ + make -j + sudo make -j install + working-directory: ${{runner.temp}} + - name: Setup Caliper profiler run: | git clone https://github.com/LLNL/Caliper.git @@ -58,7 +70,7 @@ jobs: run: | python3 -m venv music-venv source music-venv/bin/activate - python3 -m pip install 'mpi4py<4' cython numpy setuptools + python3 -m pip install mpi4py cython numpy setuptools sudo mkdir -p $MUSIC_INSTALL_DIR sudo chown -R $USER $MUSIC_INSTALL_DIR curl -L -o MUSIC.zip https://github.com/INCF/MUSIC/archive/refs/tags/${MUSIC_VERSION}.zip diff --git a/.github/workflows/neuron-ci.yml b/.github/workflows/neuron-ci.yml index dfe8a9327c..0c731d70b6 100644 --- a/.github/workflows/neuron-ci.yml +++ b/.github/workflows/neuron-ci.yml @@ -187,6 +187,18 @@ jobs: python -m pip install --upgrade -r ci_requirements.txt python -m pip install --upgrade pip -r nrn_requirements.txt + - name: Install a new version of OpenMPI + # The version of OpenMPI on Ubuntu 22.04 does not support MPI 4 features, so we install it manually + run: | + sudo apt-get purge -y libopenmpi-dev openmpi-bin + curl -L -o openmpi.tar.gz https://download.open-mpi.org/release/open-mpi/v5.0/openmpi-5.0.5.tar.gz + tar -xf openmpi.tar.gz + cd openmpi-5.0.5/ + ./configure --prefix=/usr/ + make -j + sudo make -j install + working-directory: ${{runner.temp}} + - name: Install a new automake # A automake >= 1.16.5 is needed for python 3.12 because it generates a python script # called py-compile and the original one is not supporting this version of python @@ -207,7 +219,7 @@ jobs: run: | python3 -m venv music-venv source music-venv/bin/activate - python3 -m pip install 'mpi4py<4' cython numpy setuptools + python3 -m pip install mpi4py cython numpy setuptools sudo mkdir -p $MUSIC_INSTALL_DIR sudo chown -R $USER $MUSIC_INSTALL_DIR curl -L -o MUSIC.zip https://github.com/INCF/MUSIC/archive/refs/tags/${MUSIC_VERSION}.zip diff --git a/nrn_requirements.txt b/nrn_requirements.txt index 1de5573095..e60aeadc03 100644 --- a/nrn_requirements.txt +++ b/nrn_requirements.txt @@ -8,6 +8,6 @@ cython packaging pytest<=8.1.1 # potential bug from 8.2.0 due to parallelism? pytest-cov -mpi4py<4 # MUSIC not compatible with MPI 4 +mpi4py numpy find_libpython diff --git a/setup.py b/setup.py index e15b6e5ac0..fffb2bfec8 100644 --- a/setup.py +++ b/setup.py @@ -96,7 +96,7 @@ class Components: Components.MUSIC = True sys.argv.remove("--enable-music") -if Components.RX3D: +if Components.RX3D or Components.MUSIC: try: from Cython.Distutils import Extension as CyExtension from Cython.Distutils import build_ext