Mark
Mark

Reputation: 237

Accessing Anaconda Channels from Mamba

I am building my Python environment around micromamba.
I was wondering how can I use the Anaconda channels to download packages as described in conda channels: https://docs.conda.io/projects/conda/en/latest/user-guide/concepts/channels.html.

By default micromamba is configured to work with conda-forge yet I'd like to access the numpy and scipy packages of Anaconda (Which are compiled using MKL).

Motivation

I am asking since when I install from conda-forge by looking at the configuration of numpy I get:

python -c "import numpy as np; np.show_config()"
blas_info:
    libraries = ['cblas', 'blas', 'cblas', 'blas', 'cblas', 'blas']
    library_dirs = ['C:/Applications/Python\\Library\\lib']
    include_dirs = ['C:/Applications/Python\\Library\\include']
    language = f77
    define_macros = [('HAVE_CBLAS', None)]
blas_opt_info:
    define_macros = [('NO_ATLAS_INFO', 1), ('HAVE_CBLAS', None)]
    libraries = ['cblas', 'blas', 'cblas', 'blas', 'cblas', 'blas']
    library_dirs = ['C:/Applications/Python\\Library\\lib']
    include_dirs = ['C:/Applications/Python\\Library\\include']
    language = f77
lapack_info:
    libraries = ['lapack', 'blas', 'lapack', 'blas']
    library_dirs = ['C:/Applications/Python\\Library\\lib']
    language = f77
lapack_opt_info:
    libraries = ['lapack', 'blas', 'lapack', 'blas', 'cblas', 'blas', 'cblas', 'blas', 'cblas', 'blas']
    library_dirs = ['C:/Applications/Python\\Library\\lib']
    language = f77
    define_macros = [('NO_ATLAS_INFO', 1), ('HAVE_CBLAS', None)]
    include_dirs = ['C:/Applications/Python\\Library\\include']
Supported SIMD extensions in this NumPy install:
    baseline = SSE,SSE2,SSE3
    found = SSSE3,SSE41,POPCNT,SSE42,AVX,F16C,FMA3,AVX2,AVX512F,AVX512CD,AVX512_SKX,AVX512_CLX
    not found = AVX512_CNL

Which doesn't seem to be linked to MKL.

Upvotes: 2

Views: 2179

Answers (1)

merv
merv

Reputation: 76820

You don't need to use the Anaconda builds to use MKL. Conda Forge uses a different strategy for integrating BLAS/LAPACK implementations, which can mask the info shown from np.show_config() (some details here). Adding the specification

'blas=*=*mkl'

to your package specifications (either in YAML or in conda install) will ensure Conda Forge NumPy, etc. will use MKL.

Otherwise, one can switch to using Anaconda packages by adding the anaconda channel, as in this answer1. Just be aware that channel mixing can be messy. Personally, I would just stick to Conda Forge.


[1]: While I previously recommended using anaconda channel in the other answer, I have since read up more the Conda Forge strategy.

Upvotes: 3

Related Questions