Skip to content

Commit

Permalink
Merge pull request #2423 from devitocodes/omp-arm
Browse files Browse the repository at this point in the history
deps: Drop python 3.8
  • Loading branch information
mloubout authored Jul 24, 2024
2 parents d848426 + 9ca3bac commit cf59cbb
Show file tree
Hide file tree
Showing 8 changed files with 28 additions and 31 deletions.
3 changes: 1 addition & 2 deletions .github/workflows/examples.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,8 @@ jobs:
uses: actions/checkout@v4

- name: Setup conda
uses: conda-incubator/setup-miniconda@v2
uses: conda-incubator/setup-miniconda@v3
with:
python-version: 3.8
activate-environment: devito
environment-file: environment-dev.yml
auto-activate-base: false
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pytest-core-mpi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
runs-on: ubuntu-20.04
strategy:
matrix:
python-version: ['3.8','3.9']
python-version: ['3.9', '3.11']

env:
DEVITO_LANGUAGE: "openmp"
Expand Down
34 changes: 17 additions & 17 deletions .github/workflows/pytest-core-nompi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ jobs:
matrix:
name: [
pytest-ubuntu-py311-gcc11-noomp,
pytest-ubuntu-py38-gcc12-omp,
pytest-ubuntu-py38-gcc7-omp,
pytest-ubuntu-py312-gcc12-omp,
pytest-ubuntu-py39-gcc7-omp,
pytest-ubuntu-py310-gcc10-noomp,
pytest-ubuntu-py312-gcc13-omp,
pytest-ubuntu-py39-gcc9-omp,
Expand All @@ -49,15 +49,15 @@ jobs:
language: "C"
sympy: "1.11"

- name: pytest-ubuntu-py38-gcc12-omp
python-version: '3.8'
os: ubuntu-22.04
- name: pytest-ubuntu-py312-gcc12-omp
python-version: '3.12'
os: ubuntu-24.04
arch: "gcc-12"
language: "openmp"
sympy: "1.10"
sympy: "1.13"

- name: pytest-ubuntu-py38-gcc7-omp
python-version: '3.8'
- name: pytest-ubuntu-py39-gcc7-omp
python-version: '3.9'
os: ubuntu-20.04
arch: "gcc-7"
language: "openmp"
Expand All @@ -82,14 +82,14 @@ jobs:
os: ubuntu-20.04
arch: "custom"
language: "openmp"
sympy: "1.9"
sympy: "1.10"

- name: pytest-osx-py312-clang-omp
python-version: '3.12'
os: macos-latest
arch: "clang"
language: "C"
sympy: "1.9"
language: "openmp"
sympy: "1.13"

- name: pytest-docker-py39-gcc-omp
python-version: '3.9'
Expand Down Expand Up @@ -124,6 +124,7 @@ jobs:
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true

- name: Build docker image
if: contains(matrix.name, 'docker')
Expand All @@ -147,9 +148,8 @@ jobs:
- name: Set tests (reduced number for OSX)
run : |
if [ "${{ runner.os }}" == 'macOS' ]; then
echo "TESTS=tests/test_operator.py" >> $GITHUB_ENV
else
echo "TESTS=tests/" >> $GITHUB_ENV
brew install llvm libomp
echo "/opt/homebrew/bin:/opt/homebrew/opt/llvm/bin" >> $GITHUB_PATH
fi
id: set-tests

Expand All @@ -162,9 +162,9 @@ jobs:
- name: Install dependencies
if: "!contains(matrix.name, 'docker')"
run: |
pip install ${{ env.PIPFLAGS }} --upgrade pip
pip install ${{ env.PIPFLAGS }} sympy==${{matrix.sympy}}
pip install ${{ env.PIPFLAGS }} -e .[tests]
python3 -m pip install ${{ env.PIPFLAGS }} --upgrade pip
python3 -m pip install ${{ env.PIPFLAGS }} sympy==${{matrix.sympy}}
python3 -m pip install ${{ env.PIPFLAGS }} -e .[tests,extras]
- name: Check configuration
run: |
Expand Down
1 change: 0 additions & 1 deletion requirements-optional.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
matplotlib
pandas
pyrevolve==2.2.4
scipy
distributed
8 changes: 1 addition & 7 deletions setup.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import versioneer

import os
import sys
import pkg_resources
from setuptools import setup, find_packages

Expand All @@ -19,10 +18,6 @@ def numpy_compat(required):
new_reqs = [r for r in required if "numpy" not in r and "sympy" not in r]
sympy_lb, sympy_ub = min_max(required, "sympy")
numpy_lb, numpy_ub = min_max(required, "numpy")
if sys.version_info < (3, 9):
# Numpy 2.0 requires python > 3.8
new_reqs.extend([f"sympy>={sympy_lb},<1.12.1", f"numpy>{numpy_lb},<2.0"])
return new_reqs

# Due to api changes in numpy 2.0, it requires sympy 1.12.1 at the minimum
# Check if sympy is installed and enforce numpy version accordingly.
Expand Down Expand Up @@ -108,7 +103,7 @@ def numpy_compat(required):
},
url='http://www.devitoproject.org',
platforms=["Linux", "Mac OS-X", "Unix"],
python_requires=">=3.8",
python_requires=">=3.9",
classifiers=[
'Development Status :: 5 - Production/Stable',
'Intended Audience :: Developers',
Expand All @@ -120,7 +115,6 @@ def numpy_compat(required):
'Operating System :: Unix',
'Programming Language :: Python',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',
'Programming Language :: Python :: 3.11',
Expand Down
4 changes: 3 additions & 1 deletion tests/test_buffering.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@

from conftest import skipif
from devito import (Constant, Grid, TimeFunction, Operator, Eq, SubDimension,
SubDomain, ConditionalDimension)
SubDomain, ConditionalDimension, configuration, switchconfig)
from devito.arch.archinfo import AppleArm
from devito.ir import FindSymbols, retrieve_iteration_tree
from devito.exceptions import InvalidOperator

Expand Down Expand Up @@ -672,6 +673,7 @@ def test_everything():


@pytest.mark.parametrize('subdomain', ['domain', 'interior'])
@switchconfig(safe_math=True, condition=isinstance(configuration['platform'], AppleArm))
def test_stencil_issue_1915(subdomain):
nt = 5
grid = Grid(shape=(6, 6))
Expand Down
4 changes: 2 additions & 2 deletions tests/test_gradient.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

class TestGradient:

@skipif(['chkpnt', 'cpu64-icc'])
@skipif(['chkpnt', 'cpu64-icc', 'cpu64-arm'])
@switchconfig(safe_math=True)
@pytest.mark.parametrize('dtype', [np.float32, np.float64])
@pytest.mark.parametrize('opt', [('advanced', {'openmp': True}),
Expand Down Expand Up @@ -59,7 +59,7 @@ def test_gradient_checkpointing(self, dtype, opt, space_order, kernel, shape, sp

assert np.allclose(gradient.data, gradient2.data, atol=0, rtol=0)

@skipif('cpu64-icc')
@skipif(['cpu64-icc', 'cpu64-arm'])
@pytest.mark.parametrize('tn', [750.])
@pytest.mark.parametrize('spacing', [(10, 10)])
@pytest.mark.parametrize("dtype, tolerance", [(np.float32, 1e-4),
Expand Down
3 changes: 3 additions & 0 deletions tests/test_roundoff.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import pytest
import numpy as np

from conftest import skipif
from devito import Grid, Constant, TimeFunction, Eq, Operator, switchconfig


Expand Down Expand Up @@ -84,6 +85,7 @@ def test_lm_backward(self, dat, dtype):
@pytest.mark.parametrize('dat', [0.5, 0.624, 1.0, 1.5, 2.0, 3.0, 3.6767, 4.0])
@pytest.mark.parametrize('dtype', [np.float32, np.float64])
@switchconfig(log_level='DEBUG', safe_math=True)
@skipif('cpu64-arm')
def test_lm_fb(self, dat, dtype):
"""
Test logistic map with forward and backward terms that should cancel.
Expand Down Expand Up @@ -123,6 +125,7 @@ def test_lm_fb(self, dat, dtype):
@pytest.mark.parametrize('dat', [0.5, 0.624, 1.0, 1.5, 2.0, 3.0, 3.6767, 4.0])
@pytest.mark.parametrize('dtype', [np.float32, np.float64])
@switchconfig(log_level='DEBUG', safe_math=True)
@skipif('cpu64-arm')
def test_lm_ds(self, dat, dtype):
"""
Test logistic map with 2nd derivative term that should cancel.
Expand Down

0 comments on commit cf59cbb

Please sign in to comment.