Numba 0.53.0 and llvmlite 0.36.0 final release

Hi everyone,

Numba 0.53.0 and llvmlite 0.36.0 are now available.

Highlights of core changes:

  • Support for Python 3.9
  • Function sub-typing
  • Initial support for dynamic gufuncs (i.e. from @guvectorize)
  • Parallel Accelerator (@njit(parallel=True) now supports Fortran ordered
    arrays

For details, please refer to the change logs at:

numba 0.53.0 changelog
llvmlite 0.36.0 changelog

Wheels are in the usual place, and conda packages are in the numba channel:

conda install -c numba numba=0.53.0
conda install -c numba llvmlite=0.36.0

Cheers,

4 Likes

Thank you for your hard work!

Thanks for your fantastic work guys. Installation works on python=3.8.8 but on python=3.9.1 I am getting:

UnsatisfiableError: The following specifications were found
to be incompatible with the existing python installation in your environment:

Specifications:

  - numba -> python[version='>=3.8,<3.9.0a0']

Your python: python==3.9

@steff thank you for asking about this. What command did you run? And can you post the complete output? And which operating system is this on?

For example, doing the following works for me:

 💣 zsh» conda create -n numba_test -c numba numba python=3.9
Collecting package metadata (current_repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: /Users/vhaenel/miniconda3/envs/numba_test

  added / updated specs:
    - numba
    - pip
    - python=3.9


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    llvmlite-0.36.0            |           py39_0        16.0 MB  numba
    numba-0.53.0               |np1.16py3.9h2fabc88_gf23ef8f_0         3.6 MB  numba
    ------------------------------------------------------------
                                           Total:        19.6 MB

The following NEW packages will be INSTALLED:

  blas               pkgs/main/osx-64::blas-1.0-openblas
  ca-certificates    pkgs/main/osx-64::ca-certificates-2021.1.19-hecd8cb5_1
  certifi            pkgs/main/osx-64::certifi-2020.12.5-py39hecd8cb5_0
  libcxx             pkgs/main/osx-64::libcxx-10.0.0-1
  libedit            pkgs/main/osx-64::libedit-3.1.20191231-h1de35cc_1
  libffi             pkgs/main/osx-64::libffi-3.3-hb1e8313_2
  libgfortran        pkgs/main/osx-64::libgfortran-3.0.1-h93005f0_2
  libopenblas        pkgs/main/osx-64::libopenblas-0.3.10-h0794777_0
  llvm-openmp        pkgs/main/osx-64::llvm-openmp-10.0.0-h28b9765_0
  llvmlite           numba/osx-64::llvmlite-0.36.0-py39_0
  ncurses            pkgs/main/osx-64::ncurses-6.2-h0a44026_1
  numba              numba/osx-64::numba-0.53.0-np1.16py3.9h2fabc88_gf23ef8f_0
  numpy              pkgs/main/osx-64::numpy-1.19.2-py39h0fa1045_0
  numpy-base         pkgs/main/osx-64::numpy-base-1.19.2-py39h3a452eb_0
  openssl            pkgs/main/osx-64::openssl-1.1.1j-h9ed2024_0
  pip                pkgs/main/osx-64::pip-21.0.1-py39hecd8cb5_0
  python             pkgs/main/osx-64::python-3.9.2-h88f2d9e_0
  readline           pkgs/main/osx-64::readline-8.1-h9ed2024_0
  setuptools         pkgs/main/osx-64::setuptools-52.0.0-py39hecd8cb5_0
  sqlite             pkgs/main/osx-64::sqlite-3.33.0-hffcf06c_0
  tk                 pkgs/main/osx-64::tk-8.6.10-hb0a8c7a_0
  tzdata             pkgs/main/noarch::tzdata-2020f-h52ac0ba_0
  wheel              pkgs/main/noarch::wheel-0.36.2-pyhd3eb1b0_0
  xz                 pkgs/main/osx-64::xz-5.2.5-h1de35cc_0
  zlib               pkgs/main/osx-64::zlib-1.2.11-h1de35cc_3



Downloading and Extracting Packages
numba-0.53.0         | 3.6 MB    | ############################################################################################################################ | 100%
llvmlite-0.36.0      | 16.0 MB   | ############################################################################################################################ | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate numba_test
#
# To deactivate an active environment, use
#
#     $ conda deactivate

  8.29s user 4.72s system 36% cpu 35.296 total

FWIW: I tried with 3.9.1 also and it works too.

macOS Ben Sur, Apple Silicon.

(base) Steffens-M1-MBP:pytrade steffen$ conda create -n numba_test -c numba numba python=3.9
Collecting package metadata (current_repodata.json): done
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: /
Found conflicts! Looking for incompatible packages.
This can take several minutes. Press CTRL-C to abort.
failed

UnsatisfiableError: The following specifications were found to be incompatible with each other:

Output in format: Requested package → Available versions

Package python conflicts for:
numba → llvmlite[version=’>=0.36.0,<0.37.0a0’] → python[version=‘3.8.*|>=3.9,<3.10.0a0’]
python=3.9
numba → python[version=’>=3.8,<3.9.0a0’]

also tried mamba install numba -c numba and conda install numba -c numba in my py3.9.1 environment with similar output.

@steff the Apple Silicon support is not provided by the Numba team at this time. We doesn’t yet build packages for the this platform specifically and I’m not even sure why Python 3.8 works. There is an issue about this on the issue tracker here: Development packages/RCs for Apple M1 (`osx-arm64`) · Issue #6734 · numba/numba · GitHub – this suggests to use conda-forge packages from here: https://anaconda.org/conda-forge/numba – hope that helps.

@esc. Thanks. It works on Python 3.8 cos I installed it from -c conda-forge which I failed to mention and the same works for Python 3.9 too now. Sorry about the noise.

@steff, OK, no worries, glad you managed to get it to work. For future: conda-forge packages are usually a bit (1-2 days) behind the packages provided by the Numba team.

1 Like

Hey, at conda-forge we have to wait till llvmlite SDists become available (24 hours after release, more or less), and the llvmlite recipe has to be rebuilt. But beyond that, it’s about as fast as we can make it. :slight_smile:

For Apple Silicon, conda-forge supports it and builds both 3.8 and 3.9. For eventual official wheels, generally the target would be 3.9, since 3.8 isn’t officially supported by python.org, even though Apple ships (a custom) 3.8 on Big Sur. cibuildwheel only makes 3.9 wheels for that reason. I’ve seen a few projects produce 3.8 by using the built-in Python with Xcode, but that might stop working in the next Xcode version if Apple bumps it to 3.9.

Can someone from Numba look at Support TBB on non-Linux, skip PyPy by henryiii · Pull Request #73 · conda-forge/numba-feedstock · GitHub ?