Tests (MPI) #411
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Tests (MPI) | |
on: | |
push: | |
branches: | |
- master | |
pull_request: {} | |
schedule: | |
- cron: '0 23 * * SUN-THU' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.run_number || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
tests-mpi: | |
if: (github.event_name == 'schedule' && github.repository == 'optuna/optuna') || (github.event_name != 'schedule') | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11'] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup Python${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Setup cache | |
uses: actions/cache@v3 | |
env: | |
cache-name: test-mpi | |
with: | |
path: ~/.cache/pip | |
key: ${{ runner.os }}-${{ matrix.python-version }}-${{ env.cache-name }}-${{ hashFiles('**/pyproject.toml') }}-v1 | |
restore-keys: | | |
${{ runner.os }}-${{ matrix.python-version }}-${{ env.cache-name }}-${{ hashFiles('**/pyproject.toml') }} | |
- name: Setup environment | |
run: | | |
sudo apt-get update | |
sudo apt-get -y install openmpi-bin libopenmpi-dev | |
- name: Install | |
run: | | |
python -m pip install --upgrade pip | |
# Install minimal dependencies and confirm that `import optuna` is successful. | |
pip install --progress-bar off . | |
python -c 'import optuna' | |
optuna --version | |
pip install --progress-bar off .[test] | |
pip install --progress-bar off .[optional] | |
# TODO(not522): Remove this line when torchmetrics can be installed with extra-index-url | |
pip install --progress-bar off torchmetrics | |
pip install --progress-bar off .[integration] --extra-index-url https://download.pytorch.org/whl/cpu | |
- name: Output installed packages | |
run: | | |
pip freeze --all | |
- name: Output dependency tree | |
run: | | |
pip install pipdeptree | |
pipdeptree | |
- name: Tests | |
run: | | |
export OMPI_MCA_rmaps_base_oversubscribe=yes | |
if [ ${{ matrix.python-version }} != 3.11 ]; then | |
mpirun -n 2 -- pytest tests/integration_tests/test_pytorch_distributed.py | |
fi | |
env: | |
OMP_NUM_THREADS: 1 |