Coder Social home page Coder Social logo

openblas-feedstock's Introduction

About openblas-feedstock

Feedstock license: BSD-3-Clause

About openblas

Home: http://www.openblas.net/

Package license: BSD-3-Clause

Summary: An optimized BLAS library based on GotoBLAS2 1.13 BSD version

Development: https://github.com/OpenMathLib/OpenBLAS

About libopenblas-ilp64

Home: http://www.openblas.net/

Package license: BSD-3-Clause

Summary: An optimized BLAS library (ILP64 interface) based on GotoBLAS2 1.13 BSD version

Development: https://github.com/OpenMathLib/OpenBLAS

About openblas-ilp64

Home: http://www.openblas.net/

Package license: BSD-3-Clause

Summary: An optimized BLAS library (ILP64 interface) based on GotoBLAS2 1.13 BSD version

Development: https://github.com/OpenMathLib/OpenBLAS

Current build status

Azure
VariantStatus
linux_64_SYMBOLSUFFIX64_USE_OPENMP0name_suffix-ilp64 variant
linux_64_SYMBOLSUFFIX64_USE_OPENMP1name_suffix-ilp64 variant
linux_64_SYMBOLSUFFIXUSE_OPENMP0name_suffix variant
linux_64_SYMBOLSUFFIXUSE_OPENMP1name_suffix variant
linux_aarch64_USE_OPENMP0 variant
linux_aarch64_USE_OPENMP1 variant
linux_ppc64le_SYMBOLSUFFIX64_USE_OPENMP0name_suffix-ilp64 variant
linux_ppc64le_SYMBOLSUFFIX64_USE_OPENMP1name_suffix-ilp64 variant
linux_ppc64le_SYMBOLSUFFIXUSE_OPENMP0name_suffix variant
linux_ppc64le_SYMBOLSUFFIXUSE_OPENMP1name_suffix variant
osx_64_SYMBOLSUFFIX64_name_suffix-ilp64 variant
osx_64_SYMBOLSUFFIXname_suffix variant
osx_arm64_SYMBOLSUFFIX64_name_suffix-ilp64 variant
osx_arm64_SYMBOLSUFFIXname_suffix variant
win_64 variant

Current release info

Name Downloads Version Platforms
Conda Recipe Conda Downloads Conda Version Conda Platforms
Conda Recipe Conda Downloads Conda Version Conda Platforms
Conda Recipe Conda Downloads Conda Version Conda Platforms
Conda Recipe Conda Downloads Conda Version Conda Platforms

Installing openblas

Installing openblas from the conda-forge channel can be achieved by adding conda-forge to your channels with:

conda config --add channels conda-forge
conda config --set channel_priority strict

Once the conda-forge channel has been enabled, libopenblas, libopenblas-ilp64, openblas, openblas-ilp64 can be installed with conda:

conda install libopenblas libopenblas-ilp64 openblas openblas-ilp64

or with mamba:

mamba install libopenblas libopenblas-ilp64 openblas openblas-ilp64

It is possible to list all of the versions of libopenblas available on your platform with conda:

conda search libopenblas --channel conda-forge

or with mamba:

mamba search libopenblas --channel conda-forge

Alternatively, mamba repoquery may provide more information:

# Search all versions available on your platform:
mamba repoquery search libopenblas --channel conda-forge

# List packages depending on `libopenblas`:
mamba repoquery whoneeds libopenblas --channel conda-forge

# List dependencies of `libopenblas`:
mamba repoquery depends libopenblas --channel conda-forge

About conda-forge

Powered by NumFOCUS

conda-forge is a community-led conda channel of installable packages. In order to provide high-quality builds, the process has been automated into the conda-forge GitHub organization. The conda-forge organization contains one repository for each of the installable packages. Such a repository is known as a feedstock.

A feedstock is made up of a conda recipe (the instructions on what and how to build the package) and the necessary configurations for automatic building using freely available continuous integration services. Thanks to the awesome service provided by Azure, GitHub, CircleCI, AppVeyor, Drone, and TravisCI it is possible to build and upload installable packages to the conda-forge anaconda.org channel for Linux, Windows and OSX respectively.

To manage the continuous integration and simplify feedstock maintenance conda-smithy has been developed. Using the conda-forge.yml within this repository, it is possible to re-render all of this feedstock's supporting files (e.g. the CI configuration files) with conda smithy rerender.

For more information please check the conda-forge documentation.

Terminology

feedstock - the conda recipe (raw material), supporting scripts and CI configuration.

conda-smithy - the tool which helps orchestrate the feedstock. Its primary use is in the construction of the CI .yml files and simplify the management of many feedstocks.

conda-forge - the place where the feedstock and smithy live and work to produce the finished article (built conda distributions)

Updating openblas-feedstock

If you would like to improve the openblas recipe or build a new package version, please fork this repository and submit a PR. Upon submission, your changes will be run on the appropriate platforms to give the reviewer an opportunity to confirm that the changes result in a successful build. Once merged, the recipe will be re-built and uploaded automatically to the conda-forge channel, whereupon the built conda packages will be available for everybody to install and use from the conda-forge channel. Note that all branches in the conda-forge/openblas-feedstock are immediately built and any created packages are uploaded, so PRs should be based on branches in forks and branches in the main repository should only be used to build distinct package versions.

In order to produce a uniquely identifiable distribution:

  • If the version of a package is not being increased, please add or increase the build/number.
  • If the version of a package is being increased, please remember to return the build/number back to 0.

Feedstock Maintainers

openblas-feedstock's People

Contributors

austinpagan avatar beckermr avatar conda-forge-admin avatar conda-forge-curator[bot] avatar davemq avatar github-actions[bot] avatar h-vetinari avatar hoechenberger avatar isuruf avatar jakirkham avatar jschueller avatar mariusvniekerk avatar massich avatar mkitti avatar ocefpaf avatar pelson avatar regro-cf-autotick-bot avatar xoviat avatar zym1010 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openblas-feedstock's Issues

Split out static library

The static library for openblas is quite large, and won't be needed by most users.

$ du -hc /Users/jcrist/miniconda3/envs/testenv/lib/libopenblasp-r0.3.6.a
 62M    /Users/jcrist/miniconda3/envs/testenv/lib/libopenblasp-r0.3.6.a
 62M    total

It would be good to split it out into a separate package.

Defaults ships this as libopenblas-static (see #54 (comment))

Missing dylib files in 0.3.6

Issue:
With the new openblas, you can't import numpy.multiarray

  Referenced from: /Users/jiahuanglin/anaconda3/envs/test/lib/python2.7/site-packages/numpy/core/_multiarray_umath.so
  Reason: image not found

In 0.3.5:

~/anaconda3/pkgs/openblas-0.3.5-h436c29b_1001/lib                                                                                      
ฮป ll
total 248600
drwxr-xr-x  3 jiahuanglin  staff    96B 20 Mar 18:08 cmake
lrwxr-xr-x  1 jiahuanglin  staff    21B 20 Mar 18:08 libblas.a -> libopenblasp-r0.3.5.a
lrwxr-xr-x  1 jiahuanglin  staff    25B 20 Mar 18:08 libblas.dylib -> libopenblasp-r0.3.5.dylib
lrwxr-xr-x  1 jiahuanglin  staff    21B 20 Mar 18:08 libcblas.a -> libopenblasp-r0.3.5.a
lrwxr-xr-x  1 jiahuanglin  staff    25B 20 Mar 18:08 libcblas.dylib -> libopenblasp-r0.3.5.dylib
lrwxr-xr-x  1 jiahuanglin  staff    21B 20 Mar 18:08 liblapack.a -> libopenblasp-r0.3.5.a
lrwxr-xr-x  1 jiahuanglin  staff    25B 20 Mar 18:08 liblapack.dylib -> libopenblasp-r0.3.5.dylib
lrwxr-xr-x  1 jiahuanglin  staff    21B 20 Mar 18:08 libopenblas.a -> libopenblasp-r0.3.5.a
lrwxr-xr-x  1 jiahuanglin  staff    25B 20 Mar 18:08 libopenblas.dylib -> libopenblasp-r0.3.5.dylib
-rw-rw-r--  3 jiahuanglin  staff    62M 12 Mar 18:57 libopenblasp-r0.3.5.a
-rwxrwxr-x  1 jiahuanglin  staff    60M 12 Mar 18:58 libopenblasp-r0.3.5.dylib
drwxr-xr-x  6 jiahuanglin  staff   192B 20 Mar 18:08 pkgconfig

In 0.3.6:

~/anaconda3/pkgs/openblas-0.3.6-hd44dcd8_4/lib                                                                                        
ฮป ll
total 127952
drwxr-xr-x  3 jiahuanglin  staff    96B 16 Jul 12:52 cmake
lrwxrwxr-x  1 jiahuanglin  staff    21B  5 Jul 12:46 libopenblas.a -> libopenblasp-r0.3.6.a
-rw-rw-r--  4 jiahuanglin  staff    62M  5 Jul 12:45 libopenblasp-r0.3.6.a
drwxr-xr-x  3 jiahuanglin  staff    96B 16 Jul 12:52 pkgconfig

local build is failing for linux_aarch64_USE_OPENM0/1 build configs

Solution to issue cannot be found in the documentation.

  • I checked the documentation.

Issue

I was trying to build openblas conda package aarch64 linux platform using build-locally.py script and it was failing because the build configs (5 and 6, linux_aarch64_USE_OPENMP0 and 1) are using the x86 docker images.

How to reproduce?

git clone https://github.com/conda-forge/openblas-feedstock.git
cd openblas-feedstock
python3 build-locally.py linux_aarch64_USE_OPENMP1 (or python3 build-locally.py linux_aarch64_USE_OPENMP0)


Error

++ cat /home/ubuntu/openblas-feedstock-sn/openblas-feedstock/.ci_support/linux_aarch64_USE_OPENMP1.yaml
++ shyaml get-value docker_image.0 quay.io/condaforge/linux-anvil-comp7
+ DOCKER_IMAGE=quay.io/condaforge/linux-anvil-cos7-x86_64
+ mkdir -p /home/ubuntu/openblas-feedstock-sn/openblas-feedstock/build_artifacts
+ DONE_CANARY=/home/ubuntu/openblas-feedstock-sn/openblas-feedstock/build_artifacts/conda-forge-build-done-linux_aarch64_USE_OPENMP1
+ rm -f /home/ubuntu/openblas-feedstock-sn/openblas-feedstock/build_artifacts/conda-forge-build-done-linux_aarch64_USE_OPENMP1
+ DOCKER_RUN_ARGS=
+ '[' -z '' ']'
+ DOCKER_RUN_ARGS='-it '
Start Docker
+ export UPLOAD_PACKAGES=False
+ UPLOAD_PACKAGES=False
+ export IS_PR_BUILD=True
+ IS_PR_BUILD=True
+ docker pull quay.io/condaforge/linux-anvil-cos7-x86_64
Using default tag: latest
latest: Pulling from condaforge/linux-anvil-cos7-x86_64
Digest: sha256:f9d074fad02ae7118a7acabf4f1843d10373e3a0427665501bf3a753b67c1cec
Status: Image is up to date for quay.io/condaforge/linux-anvil-cos7-x86_64:latest
quay.io/condaforge/linux-anvil-cos7-x86_64:latest
+ docker run -it -v /home/ubuntu/openblas-feedstock-sn/openblas-feedstock/recipe:/home/conda/recipe_root:rw,z,delegated -v /home/ubuntu/openblas-feedstock-sn/openblas-feedstock:/home/conda/feedstock_root:rw,z,delegated -e CONFIG -e HOST_USER_ID -e UPLOAD_PACKAGES -e IS_PR_BUILD -e GIT_BRANCH -e UPLOAD_ON_BRANCH -e CI -e FEEDSTOCK_NAME -e CPU_COUNT -e BUILD_WITH_CONDA_DEBUG -e BUILD_OUTPUT_ID -e flow_run_id -e remote_url -e sha -e BINSTAR_TOKEN -e FEEDSTOCK_TOKEN -e STAGING_BINSTAR_TOKEN quay.io/condaforge/linux-anvil-cos7-x86_64 bash /home/conda/feedstock_root/.scripts/build_steps.sh
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
exec /opt/conda/bin/tini: exec format error
Traceback (most recent call last):
  File "/home/ubuntu/openblas-feedstock-sn/openblas-feedstock/build-locally.py", line 105, in <module>
    main()
  File "/home/ubuntu/openblas-feedstock-sn/openblas-feedstock/build-locally.py", line 93, in main
    run_docker_build(ns)
  File "/home/ubuntu/openblas-feedstock-sn/openblas-feedstock/build-locally.py", line 29, in run_docker_build
    subprocess.check_call([script])
  File "/usr/lib/python3.10/subprocess.py", line 369, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['.scripts/run_docker_build.sh']' returned non-zero exit status 1.

Installed packages

The issue is for the source build.

Environment info

active environment : conda-openblas-testing
    active env location : /home/ubuntu/.conda/envs/conda-openblas-testing
            shell level : 1
       user config file : /home/ubuntu/.condarc
 populated config files : /opt/conda/.condarc
                          /home/ubuntu/.condarc
          conda version : 23.11.0
    conda-build version : not installed
         python version : 3.10.13.final.0
                 solver : libmamba (default)
       virtual packages : __archspec=1=neoverse_n1
                          __conda=23.11.0=0
                          __glibc=2.35=0
                          __linux=6.2.0=0
                          __unix=0=0
       base environment : /opt/conda  (read only)
      conda av data dir : /opt/conda/etc/conda
  conda av metadata url : None
           channel URLs : https://conda.anaconda.org/conda-forge/linux-aarch64
                          https://conda.anaconda.org/conda-forge/noarch
          package cache : /opt/conda/pkgs
                          /home/ubuntu/.conda/pkgs
       envs directories : /home/ubuntu/.conda/envs
                          /opt/conda/envs
               platform : linux-aarch64
             user-agent : conda/23.11.0 requests/2.31.0 CPython/3.10.13 Linux/6.2.0-1017-aws ubuntu/22.04.2 glibc/2.35 solver/libmamba conda-libmamba-solver/23.12.0 libmambapy/1.5.5
                UID:GID : 1000:1000
             netrc file : None
           offline mode : False

Large package size

When I install the same conda environment that includes openblas using both conda-forge and defaults I find that the conda-forge environment has a larger binary for openblas

conda create -n openblas-size-cf -c conda-forge openblas
conda create -n openblas-size-defaults -c defaults openblas

$ du -hs openblas-size-cf/
96M	openblas-size-cf/
$ du -hs openblas-size-defaults/
60M	openblas-size

Illegal instruction when importing numpy

Issue:
Creating an environment with the latest numpy leads to a core dump on import:

$ conda create -n np -c conda-forge numpy
$ conda activate np
$ python -c 'import numpy'
Illegal instruction (core dumped)

Running it through gdb shows

Thread 1 "python" received signal SIGILL, Illegal instruction.
0x00007ffff5d16fd8 in sdot_k_SKYLAKEX ()
   from /home/chris/miniconda3/envs/np/lib/python3.7/site-packages/numpy/core/../../../../libopenblas.so.0

I'm running Ubuntu 16.04 in a VirtualBox VM on a Windows 10 host, with an Intel i7-7820X.


Environment (conda list):

$ conda list
# packages in environment at /home/chris/miniconda3/envs/np:
#
# Name                    Version                   Build  Channel
blas                      1.1                    openblas    conda-forge
bzip2                     1.0.6             h14c3975_1002    conda-forge
ca-certificates           2018.11.29           ha4d7672_0    conda-forge
certifi                   2018.11.29            py37_1000    conda-forge
libffi                    3.2.1             hf484d3e_1005    conda-forge
libgcc-ng                 7.3.0                hdf63c60_0    conda-forge
libgfortran-ng            7.2.0                hdf63c60_3    conda-forge
libstdcxx-ng              7.3.0                hdf63c60_0    conda-forge
ncurses                   6.1               hf484d3e_1002    conda-forge
numpy                     1.16.1          py37_blas_openblash1522bff_0  [blas_openblas]  conda-forge
openblas                  0.3.3             h9ac9557_1001    conda-forge
openssl                   1.0.2p            h14c3975_1002    conda-forge
pip                       19.0.2                   py37_0    conda-forge
python                    3.7.1             hd21baee_1000    conda-forge
readline                  7.0               hf8c457e_1001    conda-forge
setuptools                40.8.0                   py37_0    conda-forge
sqlite                    3.26.0            h67949de_1000    conda-forge
tk                        8.6.9             h84994c4_1000    conda-forge
wheel                     0.33.0                   py37_0    conda-forge
xz                        5.2.4             h14c3975_1001    conda-forge
zlib                      1.2.11            h14c3975_1004    conda-forge


Details about conda and system ( conda info ):
$ conda info
     active environment : np
    active env location : /home/chris/miniconda3/envs/np
            shell level : 1
       user config file : /home/chris/.condarc
 populated config files : 
          conda version : 4.6.1
    conda-build version : 3.17.8
         python version : 3.6.8.final.0
       base environment : /home/chris/miniconda3  (writable)
           channel URLs : https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/free/linux-64
                          https://repo.anaconda.com/pkgs/free/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /home/chris/miniconda3/pkgs
                          /home/chris/.conda/pkgs
       envs directories : /home/chris/miniconda3/envs
                          /home/chris/.conda/envs
               platform : linux-64
             user-agent : conda/4.6.1 requests/2.18.4 CPython/3.6.8 Linux/4.15.0-45-generic ubuntu/16.04.5 glibc/2.23
                UID:GID : 1000:1000
             netrc file : None
           offline mode : False

python 2.7 and openblas incompatible on windows

Issue:

I'm getting this error:

conda.exceptions.UnsatisfiableError: The following specifications were found to be in conflict:
  - openblas=0.3.3
  - python=2.7
Use "conda search <package> --info" to see the dependencies for each package.

on a feedstock build here:

conda-forge/slycot-feedstock#18

Also if if try conda create -n test python=2.7 openblas on a windows computer it fails to resolve the dependencies with an incompatibility.

Is openblas + py27 supported?


Environment (conda list):
$ conda list


Details about conda and system ( conda info ):
$ conda info

Investigate using ReLAPACK

OpenBLAS 0.20.0 added support for building the LAPACK portion with ReLAPACK. For a few reasons, ReLAPACK is a nice option. Could also be a nice option to explore on Windows, which could help things like a Windows SciPy build progress. ( conda-forge/scipy-feedstock#78 )

  1. Very performant
  2. Minimal tuning needed
  3. Implemented in straight C
  4. Open Source with a permissive license (MIT)
  5. Packaged in OpenBLAS's source code
  6. Supports the full LAPACK API

cc @isuruf

ref: https://arxiv.org/abs/1602.06763

NumPy dev build + OpenBLAS incompatibility

It's not (or no longer) possible to build NumPy directly against OpenBLAS in a conda-forge based dev environment.

conda create -n blas
conda activate blas
conda install -c conda-forge cython numpy  # will pull in libopenblas
# cd into numpy git repo
python setup.py build_ext -i  # will not detect openblas and fail

This is a numpy.distutils / conda-forge incompatibility. The conda-forge packaging seems fine in principle, and OpenBLAS is installed as libopenblas.0.dylib. That lib isnโ€™t picked up by the numpy.distutils detection code though; when I create a symlink right next to it with .0 removed then it does get picked up, and NumPy builds and tests fine.
The normal convention is to have both a โ€œbase nameโ€ for the shared library, and a versioned library. This is the case for libblas for example:

$ ls *blas*
libblas.3.dylib			libcblas.3.dylib		libopenblas.0.dylib
libblas.dylib			libcblas.dylib			libopenblasp-r0.3.10.dylib

However itโ€™s not for libopenblas, likely because everything in the conda-forge channel has to link to the mutex blas package instead, and letting users build directly against OpenBLAS wasn't considered.

There's two possible fixes:

  1. install a libopenblas.dylib
  2. special-case conda-forge in numpy.distutils

Given that (2) won't fix the issue for users/packages that don't use numpy.distutils, I'd prefer (1) I think. Also looking at my /usr/lib and /usr/local/lib I cannot see a single library that only provides a versioned .X.dylib library - so arguably this is an OpenBLAS packaging bug.

Also, I checked BLIS for comparison, which does have the base name:

$ ls *blis*
libblis.3.0.0.dylib	libblis.3.dylib		libblis.a		libblis.dylib
$ otool -L libblis.dylib 
libblis.dylib:
	@rpath/libblis.3.dylib (compatibility version 0.0.0, current version 0.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)

providing cmake targets with openblas package

Hi,

OpenBLAS v0.3.26 fixed some of the longstanding issues with exporting cmake targets, which seemed to be broken since v0.3.21 AFAIK.

However, cmake targets are only installed when cmake build path is invoked. This feedstock seems to be using vanilla GNU make. Is switching to cmake-based build feasible? Can we provide an additional variant of the package built with cmake? Would you rather see this fixed at OpenBLAS, so that GNU make-based builds can render cmake targets correctly?

I'm trying to figure out what's the best place to have that fixed.

Context: I'm using conda-forge OpenBLAS for building some of the python's C-extensions with cmake setup on Apple Silicone. If it is not too disruptive I would like to fix that upstream, instead building it downstream, so others can benefit as well.

Thanks,
Filip

Segfault: in dmax_k_SANDYBRIDGE ()

Issue:

Testing some function of dakota leads to a segfault which happens in liblapack. This is the backtrace:

#0  0x00007ffff0d653d7 in dmax_k_SANDYBRIDGE () from /home/lo/conda/envs/dakota_37_1/bin/../lib/liblapack.so.3
conda-forge/lapack-feedstock#1  0x00007fffeef21ebe in normal_ () from /home/lo/conda/envs/dakota_37_1/bin/../lib/./liblhs.so
conda-forge/lapack-feedstock#2  0x00007fffeef350ce in lhs_run_ () from /home/lo/conda/envs/dakota_37_1/bin/../lib/./liblhs.so
conda-forge/lapack-feedstock#3  0x00007ffff71d1eb8 in Pecos::LHSDriver::generate_samples(Teuchos::SerialDenseVector<int, double> const&, Teuchos::SerialDenseVector<int, double> const&, Teuchos::SerialDenseVector<int, int> const&, Teuchos::SerialDenseVector<int, int> const&, std::vector<std::set<int, std::less<int>, std::allocator<int> >, std::allocator<std::set<int, std::less<int>, std::allocator<int> > > > const&, std::vector<std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::allocator<std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > const&, std::vector<std::set<double, std::less<double>, std::allocator<double> >, std::allocator<std::set<double, std::less<double>, std::allocator<double> > > > const&, Teuchos::SerialDenseVector<int, double> const&, Teuchos::SerialDenseVector<int, double> const&, Teuchos::SerialDenseVector<int, int> const&, Teuchos::SerialDenseVector<int, int> const&, std::vector<std::set<int, std::less<int>, std::allocator<int> >, std::allocator<std::set<int, std::less<int>, std::allocator<int> > > > const&, std::vector<std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::allocator<std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > const&, std::vector<std::set<double, std::less<double>, std::allocator<double> >, std::allocator<std::set<double, std::less<double>, std::allocator<double> > > > const&, Pecos::AleatoryDistParams const&, Pecos::EpistemicDistParams const&, int, Teuchos::SerialDenseMatrix<int, double>&, Teuchos::SerialDenseMatrix<int, double>&) ()
   from /home/lo/conda/envs/dakota_37_1/bin/../lib/libpecos_src.so
conda-forge/lapack-feedstock#4  0x00007ffff79bfe3a in Dakota::NonDSampling::get_parameter_sets(Dakota::Model&, int, Teuchos::SerialDenseMatrix<int, double>&, bool) () from /home/lo/conda/envs/dakota_37_1/bin/../lib/libdakota_src.so
conda-forge/lapack-feedstock#5  0x00007ffff79d150d in Dakota::NonDLHSSampling::pre_run() () from /home/lo/conda/envs/dakota_37_1/bin/../lib/libdakota_src.so
conda-forge/lapack-feedstock#6  0x00007ffff78cc821 in Dakota::Iterator::run() () from /home/lo/conda/envs/dakota_37_1/bin/../lib/libdakota_src.so
conda-forge/lapack-feedstock#7  0x00007ffff7571954 in Dakota::IteratorScheduler::run_iterator(Dakota::Iterator&, std::_List_iterator<Dakota::ParallelLevel>) () from /home/lo/conda/envs/dakota_37_1/bin/../lib/libdakota_src.so
conda-forge/lapack-feedstock#8  0x00007ffff78c4716 in Dakota::Environment::execute() () from /home/lo/conda/envs/dakota_37_1/bin/../lib/libdakota_src.so
conda-forge/lapack-feedstock#9  0x00007ffff78c4862 in Dakota::ExecutableEnvironment::execute() () from /home/lo/conda/envs/dakota_37_1/bin/../lib/libdakota_src.so
conda-forge/lapack-feedstock#10 0x00005555555584ac in main ()

I don't think this will be solvable, but maybe someone has a hint whats going wrong here.

The same test worked with an older version of dakota and packages from conda-forge/label/cf201901.

set openblas-0.3.3 to broken

In conda-meta/pinned I have:

libblas[build=*mkl]

Still when I try to install mumps which enforces openblas it tries to install:

  mumps              conda-forge/linux-64::mumps-5.1.2-blas_openblash15930f7_1001
  openblas           conda-forge/linux-64::openblas-0.3.3-h9ac9557_1001

So it seems to be that openblas version 0.3.3 can be installed next to mkl, which causes issues during updating. Can you set openblas version 0.3.3 to broken?

OpenBLAS is suspiciously slow (wrt. BLIS/MKL on AMD)

Issue

OpenBLAS is suspiciously slow in numpy (order of magnitude slower than both BLIS and MKL, on an AMD 3950x!).

Steps

  • Create an MKL environment: conda create -n mkl numpy mkl
  • Create a BLIS environment: conda create -n blis numpy blis nomkl
  • Create an OpenBLAS environment: conda create -n openblas numpy openblas nomkl
  • Start a jupyter notebook/lab (in each environment, separately): $ OMP_NUM_THREADS=1 BLIS_NUM_THREADS=1 MKL_NUM_THREADS=1 jupyter lab
  • Run the following code to get timings:
import numpy as np
sizes = (1, 2, 3, 4, 32, 64, 127, 128, 129, 1023, 1024, 1025, 4096, 4096*2-1, 4096*2, 4096*2+1)
best_times = np.zeros(len(sizes))
for i, s in enumerate(sizes):
    arr = np.random.rand(s, s)
    arrT = np.random.rand(s, s)
    t = %timeit -o arr @ arrT
    best_times[i] = t.best

I checked that CPU usage never exceeded 100.0 in top in all cases, throughout the full benchmark, until the very end.

Result

image

Last point is around 25s in both MKL and BLIS; it is 3min30s in OpenBLAS. Last time I did something similar, OpenBLAS was on par with MKL. Again I insist: CPU usage was capped at 100% in all cases, there is no underlying multithreading here.

Conda environment


Environment (conda list):
$ conda list
[...]
openblas                  0.3.17          pthreads_h4748800_0    conda-forge
[...]

Full list here:

$ conda list

# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                       1_gnu    conda-forge
alsa-lib                  1.2.3                h516909a_0    conda-forge
anyio                     3.3.0            py39hf3d152e_0    conda-forge
argon2-cffi               20.1.0           py39h3811e60_2    conda-forge
async_generator           1.10                       py_0    conda-forge
atk-1.0                   2.36.0               h3371d22_4    conda-forge
attrs                     21.2.0             pyhd8ed1ab_0    conda-forge
babel                     2.9.1              pyh44b312d_0    conda-forge
backcall                  0.2.0              pyh9f0ad1d_0    conda-forge
backports                 1.0                        py_2    conda-forge
backports.functools_lru_cache 1.6.4              pyhd8ed1ab_0    conda-forge
bleach                    3.3.1              pyhd8ed1ab_0    conda-forge
brotlipy                  0.7.0           py39h3811e60_1001    conda-forge
ca-certificates           2021.5.30            ha878542_0    conda-forge
cairo                     1.16.0            h6cf1ce9_1008    conda-forge
certifi                   2021.5.30        py39hf3d152e_0    conda-forge
cffi                      1.14.6           py39he32792d_0    conda-forge
chardet                   4.0.0            py39hf3d152e_1    conda-forge
charset-normalizer        2.0.0              pyhd8ed1ab_0    conda-forge
colorama                  0.4.4              pyh9f0ad1d_0    conda-forge
cryptography              3.4.7            py39hbca0aa6_0    conda-forge
cycler                    0.10.0                     py_2    conda-forge
dbus                      1.13.6               h48d8840_2    conda-forge
debugpy                   1.4.1            py39he80948d_0    conda-forge
decorator                 5.0.9              pyhd8ed1ab_0    conda-forge
defusedxml                0.7.1              pyhd8ed1ab_0    conda-forge
entrypoints               0.3             pyhd8ed1ab_1003    conda-forge
expat                     2.4.1                h9c3ff4c_0    conda-forge
font-ttf-dejavu-sans-mono 2.37                 hab24e00_0    conda-forge
font-ttf-inconsolata      3.000                h77eed37_0    conda-forge
font-ttf-source-code-pro  2.038                h77eed37_0    conda-forge
font-ttf-ubuntu           0.83                 hab24e00_0    conda-forge
fontconfig                2.13.1            hba837de_1005    conda-forge
fonts-conda-ecosystem     1                             0    conda-forge
fonts-conda-forge         1                             0    conda-forge
freetype                  2.10.4               h0708190_1    conda-forge
fribidi                   1.0.10               h36c2ea0_0    conda-forge
gdk-pixbuf                2.42.6               h04a7f16_0    conda-forge
gettext                   0.19.8.1          h0b5b191_1005    conda-forge
giflib                    5.2.1                h36c2ea0_2    conda-forge
glib                      2.68.3               h9c3ff4c_0    conda-forge
glib-tools                2.68.3               h9c3ff4c_0    conda-forge
graphite2                 1.3.13            h58526e2_1001    conda-forge
graphviz                  2.48.0               h85b4f2f_0    conda-forge
gst-plugins-base          1.18.4               hf529b03_2    conda-forge
gstreamer                 1.18.4               h76c114f_2    conda-forge
gtk2                      2.24.33              h539f30e_1    conda-forge
gts                       0.7.6                h64030ff_2    conda-forge
harfbuzz                  2.8.2                h83ec7ef_0    conda-forge
icc_rt                    2020.2                intel_254    numba
icu                       68.1                 h58526e2_0    conda-forge
idna                      3.1                pyhd3deb0d_0    conda-forge
importlib-metadata        4.6.1            py39hf3d152e_0    conda-forge
ipykernel                 6.0.3            py39hef51801_0    conda-forge
ipython                   7.25.0           py39hef51801_1    conda-forge
ipython_genutils          0.2.0                      py_1    conda-forge
jbig                      2.1               h7f98852_2003    conda-forge
jedi                      0.18.0           py39hf3d152e_2    conda-forge
jinja2                    3.0.1              pyhd8ed1ab_0    conda-forge
jpeg                      9d                   h36c2ea0_0    conda-forge
json5                     0.9.5              pyh9f0ad1d_0    conda-forge
jsonschema                3.2.0              pyhd8ed1ab_3    conda-forge
jupyter_client            6.1.12             pyhd8ed1ab_0    conda-forge
jupyter_core              4.7.1            py39hf3d152e_0    conda-forge
jupyter_server            1.10.1             pyhd8ed1ab_0    conda-forge
jupyterlab                3.0.16             pyhd8ed1ab_0    conda-forge
jupyterlab_pygments       0.1.2              pyh9f0ad1d_0    conda-forge
jupyterlab_server         2.6.1              pyhd8ed1ab_0    conda-forge
kiwisolver                1.3.1            py39h1a9c180_1    conda-forge
krb5                      1.19.1               hcc1bbae_0    conda-forge
lcms2                     2.12                 hddcbb42_0    conda-forge
ld_impl_linux-64          2.36.1               hea4e1c9_1    conda-forge
lerc                      2.2.1                h9c3ff4c_0    conda-forge
libblas                   3.9.0           5_h92ddd45_netlib    conda-forge
libcblas                  3.9.0           5_h92ddd45_netlib    conda-forge
libclang                  11.1.0          default_ha53f305_1    conda-forge
libdeflate                1.7                  h7f98852_5    conda-forge
libedit                   3.1.20191231         he28a2e2_2    conda-forge
libevent                  2.1.10               hcdb4288_3    conda-forge
libffi                    3.3                  h58526e2_2    conda-forge
libgcc-ng                 11.1.0               hc902ee8_2    conda-forge
libgd                     2.3.2                h78a0170_0    conda-forge
libgfortran-ng            11.1.0               h69a702a_0    conda-forge
libgfortran5              11.1.0               h6c583b3_0    conda-forge
libglib                   2.68.3               h3e27bee_0    conda-forge
libgomp                   11.1.0               hc902ee8_2    conda-forge
libiconv                  1.16                 h516909a_0    conda-forge
liblapack                 3.9.0           5_h92ddd45_netlib    conda-forge
libllvm11                 11.1.0               hf817b99_2    conda-forge
libogg                    1.3.4                h7f98852_1    conda-forge
libopenblas               0.3.17          pthreads_h8fe5266_0    conda-forge
libopus                   1.3.1                h7f98852_1    conda-forge
libpng                    1.6.37               h21135ba_2    conda-forge
libpq                     13.3                 hd57d9b9_0    conda-forge
librsvg                   2.50.7               hc3c00ef_0    conda-forge
libsodium                 1.0.18               h36c2ea0_1    conda-forge
libstdcxx-ng              11.1.0               h56837e0_2    conda-forge
libtiff                   4.3.0                hf544144_1    conda-forge
libtool                   2.4.6             h58526e2_1007    conda-forge
libuuid                   2.32.1            h7f98852_1000    conda-forge
libvorbis                 1.3.7                h9c3ff4c_0    conda-forge
libwebp                   1.2.0                h3452ae3_0    conda-forge
libwebp-base              1.2.0                h7f98852_2    conda-forge
libxcb                    1.13              h7f98852_1003    conda-forge
libxkbcommon              1.0.3                he3ba5ed_0    conda-forge
libxml2                   2.9.12               h72842e0_0    conda-forge
llvmlite                  0.37.0rc2        py39hf484d3e_0    numba
lz4-c                     1.9.3                h9c3ff4c_0    conda-forge
markupsafe                2.0.1            py39h3811e60_0    conda-forge
matplotlib                3.4.2            py39hf3d152e_0    conda-forge
matplotlib-base           3.4.2            py39h2fa2bec_0    conda-forge
matplotlib-inline         0.1.2              pyhd8ed1ab_2    conda-forge
mistune                   0.8.4           py39h3811e60_1004    conda-forge
mysql-common              8.0.25               ha770c72_2    conda-forge
mysql-libs                8.0.25               hfa10184_2    conda-forge
nbclassic                 0.3.1              pyhd8ed1ab_1    conda-forge
nbclient                  0.5.3              pyhd8ed1ab_0    conda-forge
nbconvert                 6.1.0            py39hf3d152e_0    conda-forge
nbformat                  5.1.3              pyhd8ed1ab_0    conda-forge
ncurses                   6.2                  h58526e2_4    conda-forge
nest-asyncio              1.5.1              pyhd8ed1ab_0    conda-forge
nomkl                     1.0                  h5ca1d4c_0    conda-forge
notebook                  6.4.0              pyha770c72_0    conda-forge
nspr                      4.30                 h9c3ff4c_0    conda-forge
nss                       3.67                 hb5efdd6_0    conda-forge
numba                     0.54.0rc1       np1.16py3.9hc547734_g9bed2ebb2_0    numba
numpy                     1.21.1           py39hdbf815f_0    conda-forge
olefile                   0.46               pyh9f0ad1d_1    conda-forge
openblas                  0.3.17          pthreads_h4748800_0    conda-forge
openjpeg                  2.4.0                hb52868f_1    conda-forge
openssl                   1.1.1k               h7f98852_0    conda-forge
packaging                 21.0               pyhd8ed1ab_0    conda-forge
pandoc                    2.14.1               h7f98852_0    conda-forge
pandocfilters             1.4.2                      py_1    conda-forge
pango                     1.48.7               hb8ff022_0    conda-forge
parso                     0.8.2              pyhd8ed1ab_0    conda-forge
pcre                      8.45                 h9c3ff4c_0    conda-forge
pexpect                   4.8.0              pyh9f0ad1d_2    conda-forge
pickleshare               0.7.5                   py_1003    conda-forge
pillow                    8.3.1            py39ha612740_0    conda-forge
pip                       21.2.1             pyhd8ed1ab_0    conda-forge
pixman                    0.40.0               h36c2ea0_0    conda-forge
prometheus_client         0.11.0             pyhd8ed1ab_0    conda-forge
prompt-toolkit            3.0.19             pyha770c72_0    conda-forge
pthread-stubs             0.4               h36c2ea0_1001    conda-forge
ptyprocess                0.7.0              pyhd3deb0d_0    conda-forge
pycparser                 2.20               pyh9f0ad1d_2    conda-forge
pygments                  2.9.0              pyhd8ed1ab_0    conda-forge
pyopenssl                 20.0.1             pyhd8ed1ab_0    conda-forge
pyparsing                 2.4.7              pyh9f0ad1d_0    conda-forge
pyqt                      5.12.3           py39hf3d152e_7    conda-forge
pyqt-impl                 5.12.3           py39h0fcd23e_7    conda-forge
pyqt5-sip                 4.19.18          py39he80948d_7    conda-forge
pyqtchart                 5.12             py39h0fcd23e_7    conda-forge
pyqtwebengine             5.12.1           py39h0fcd23e_7    conda-forge
pyrsistent                0.17.3           py39h3811e60_2    conda-forge
pysocks                   1.7.1            py39hf3d152e_3    conda-forge
python                    3.9.6           h49503c6_1_cpython    conda-forge
python-dateutil           2.8.2              pyhd8ed1ab_0    conda-forge
python_abi                3.9                      2_cp39    conda-forge
pytz                      2021.1             pyhd8ed1ab_0    conda-forge
pyyaml                    5.4.1            py39h3811e60_0    conda-forge
pyzmq                     22.1.0           py39h37b5a0c_0    conda-forge
qt                        5.12.9               hda022c4_4    conda-forge
readline                  8.1                  h46c0cb4_0    conda-forge
requests                  2.26.0             pyhd8ed1ab_0    conda-forge
requests-unixsocket       0.2.0                      py_0    conda-forge
roctools                  0.0.0                hf484d3e_1    numba
scipy                     1.7.0            py39hee8e79c_1    conda-forge
send2trash                1.7.1              pyhd8ed1ab_0    conda-forge
setuptools                49.6.0           py39hf3d152e_3    conda-forge
six                       1.16.0             pyh6c4a22f_0    conda-forge
sniffio                   1.2.0            py39hf3d152e_1    conda-forge
sqlite                    3.36.0               h9cd32fc_0    conda-forge
tbb                       2021.1.1              intel_119    numba
terminado                 0.10.1           py39hf3d152e_0    conda-forge
testpath                  0.5.0              pyhd8ed1ab_0    conda-forge
tk                        8.6.10               h21135ba_1    conda-forge
tornado                   6.1              py39h3811e60_1    conda-forge
traitlets                 5.0.5                      py_0    conda-forge
tzdata                    2021a                he74cb21_1    conda-forge
urllib3                   1.26.6             pyhd8ed1ab_0    conda-forge
wcwidth                   0.2.5              pyh9f0ad1d_2    conda-forge
webencodings              0.5.1                      py_1    conda-forge
websocket-client          0.57.0           py39hf3d152e_4    conda-forge
wheel                     0.36.2             pyhd3deb0d_0    conda-forge
xorg-kbproto              1.0.7             h7f98852_1002    conda-forge
xorg-libice               1.0.10               h7f98852_0    conda-forge
xorg-libsm                1.2.3             hd9c2040_1000    conda-forge
xorg-libx11               1.7.2                h7f98852_0    conda-forge
xorg-libxau               1.0.9                h7f98852_0    conda-forge
xorg-libxdmcp             1.1.3                h7f98852_0    conda-forge
xorg-libxext              1.3.4                h7f98852_1    conda-forge
xorg-libxrender           0.9.10            h7f98852_1003    conda-forge
xorg-renderproto          0.11.1            h7f98852_1002    conda-forge
xorg-xextproto            7.3.0             h7f98852_1002    conda-forge
xorg-xproto               7.0.31            h7f98852_1007    conda-forge
xz                        5.2.5                h516909a_1    conda-forge
yaml                      0.2.5                h516909a_0    conda-forge
zeromq                    4.3.4                h9c3ff4c_0    conda-forge
zipp                      3.5.0              pyhd8ed1ab_0    conda-forge
zlib                      1.2.11            h516909a_1010    conda-forge
zstd                      1.5.0                ha95c52a_0    conda-forge



Details about conda and system ( conda info ):
$ conda info
     active environment : base
    active env location : /home/user/Documents/Programming/Toolchains/miniconda3
            shell level : 1
       user config file : /home/user/.condarc
 populated config files : 
          conda version : 4.10.3
    conda-build version : not installed
         python version : 3.8.10.final.0
       virtual packages : __linux=5.13.4=0
                          __glibc=2.33=0
                          __unix=0=0
                          __archspec=1=x86_64
       base environment : /home/user/Documents/Programming/Toolchains/miniconda3  (writable)
      conda av data dir : /home/user/Documents/Programming/Toolchains/miniconda3/etc/conda
  conda av metadata url : None
           channel URLs : https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /home/user/Documents/Programming/Toolchains/miniconda3/pkgs
                          /home/user/.conda/pkgs
       envs directories : /mnt/scratch/user/Programming/Conda/envs
                          /home/user/Documents/Programming/Toolchains/miniconda3/envs
                          /home/user/.conda/envs
               platform : linux-64
             user-agent : conda/4.10.3 requests/2.25.1 CPython/3.8.10 Linux/5.13.4-arch2-1 arch/ glibc/2.33
                UID:GID : 1000:1000
             netrc file : None
           offline mode : False

Missing library alias on Mac

Solution to issue cannot be found in the documentation.

  • I checked the documentation.

Issue

The Mac packages distributed through the default channel include an alias with the name libopenblas.dylib pointing to the library. That allows it to be referenced with standard naming. The conda-forge packages are missing that alias. Instead you have to reference it with the name libopenblas.0.dylib. This causes problems for software that expects the standard name to work. See, for example, numpy/numpy#14165 and https://gitlab.kitware.com/cmake/cmake/-/issues/23291.

Would it be possible to add the missing alias?

Installed packages

# packages in environment at /Users/peastman/miniconda3/envs/test:
#
# Name                    Version                   Build  Channel
bzip2                     1.0.8                h3422bc3_4    conda-forge
ca-certificates           2021.10.8            h4653dfc_0    conda-forge
libffi                    3.4.2                h3422bc3_5    conda-forge
libgfortran               5.0.0.dev0      11_0_1_hf114ba7_23    conda-forge
libgfortran5              11.0.1.dev0         hf114ba7_23    conda-forge
libopenblas               0.3.18          openmp_h5dd58f0_0    conda-forge
libzlib                   1.2.11            hee7b306_1013    conda-forge
llvm-openmp               13.0.1               hf3c4609_0    conda-forge
ncurses                   6.3                  hc470f4d_0    conda-forge
openssl                   3.0.0                h3422bc3_2    conda-forge
pip                       22.0.3             pyhd8ed1ab_0    conda-forge
python                    3.9.10          h38ef502_2_cpython    conda-forge
python_abi                3.9                      2_cp39    conda-forge
readline                  8.1                  hedafd6a_0    conda-forge
setuptools                60.9.3           py39h2804cbe_0    conda-forge
sqlite                    3.37.0               h72a2b83_0    conda-forge
tk                        8.6.12               he1e0b03_0    conda-forge
tzdata                    2021e                he74cb21_0    conda-forge
wheel                     0.37.1             pyhd8ed1ab_0    conda-forge
xz                        5.2.5                h642e427_1    conda-forge
zlib                      1.2.11            hee7b306_1013    conda-forge

Environment info

active environment : test
    active env location : /Users/peastman/miniconda3/envs/test
            shell level : 2
       user config file : /Users/peastman/.condarc
 populated config files : /Users/peastman/.condarc
          conda version : 4.11.0
    conda-build version : not installed
         python version : 3.8.11.final.0
       virtual packages : __osx=12.2=0
                          __unix=0=0
                          __archspec=1=arm64
       base environment : /Users/peastman/miniconda3  (writable)
      conda av data dir : /Users/peastman/miniconda3/etc/conda
  conda av metadata url : None
           channel URLs : https://conda.anaconda.org/omnia/osx-arm64
                          https://conda.anaconda.org/omnia/noarch
                          https://conda.anaconda.org/conda-forge/osx-arm64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://repo.anaconda.com/pkgs/main/osx-arm64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/osx-arm64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /Users/peastman/miniconda3/pkgs
                          /Users/peastman/.conda/pkgs
       envs directories : /Users/peastman/miniconda3/envs
                          /Users/peastman/.conda/envs
               platform : osx-arm64
             user-agent : conda/4.11.0 requests/2.25.1 CPython/3.8.11 Darwin/21.3.0 OSX/12.2
                UID:GID : 503:20
             netrc file : None
           offline mode : False

Deleted old builds?

When I try to install one of my environment.yml files I get

Error: Package missing in current linux-64 channels: 
  - openblas 0.2.18 1

The reason seems to be that this build was removed from https://anaconda.org/conda-forge/openblas/files

This already happened with gdal a while ago conda-forge/gdal-feedstock#78

Is this common practice with conda-forge builds? I'd just like to know because this makes them essentially useless for making environment.yml files.

Request: Please create version with `make USE_OPENMP=1`

Is there a way to fix this via conda installation? I can't seem to get this to work.

Essnentially, I'm asking if there is a precompiled version I can install via conda that has USE_OPENMP=1?

I've posted a question on StackOverflow but I haven't gotten any bites:
https://stackoverflow.com/questions/57257712/how-to-fix-openblas-warning-detect-openmp-loop-and-this-application-may-hang

If I do a separate install via this post I fear that my conda environment will break.

These GitHub issues might help:
BinPro/CONCOCT#232
bxlab/metaWRAP#168

OpenBLAS Numpy's dot product hangs if OpenCV is imported

Issue:

Numpy's dot product hangs forever if OpenCV has been imported as well. It sometimes happens on the first dot product execution but not always. The code example below therefore loops on the dot product an arbitrary number of times.
nump.linalg.eig first because it seems this bug has something to do with the linear algebra libraries.
This happens on Ubuntu 19.10 if the default OpenBLAS libraries are used. Switching to the MKL libraries solves the problem. The bug also disappears if smaller matrices are used. Memory isn't freed at each iteration, so when memory usage accumulates about ~4 GB, it crashes.

Reproducing code example:

conda create -n npcrash
conda install numpy opencv -c conda-forge -n npcrash
conda activate npcrash
python npcrash.py

Python script npcrash.py:

import numpy as np
import cv2

S = np.ones((75000, 250), dtype=np.float64)
C = np.dot(S.T, S)
C /= np.linalg.norm(C, ord=2)
w, v = np.linalg.eig(C)
for ii in range(25):
    I = np.dot(S, v)

Information


Environment (conda list):
$ conda list
# packages in environment at $HOME/miniconda3/envs/tissue_motion:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                      1_llvm    conda-forge
asttokens                 2.0.3                    pypi_0    pypi
attrs                     19.3.0                     py_0    conda-forge
backcall                  0.1.0                      py_0    conda-forge
bleach                    3.1.1                      py_0    conda-forge
bzip2                     1.0.8                h516909a_2    conda-forge
ca-certificates           2019.11.28           hecc5488_0    conda-forge
cairo                     1.16.0            hfb77d84_1002    conda-forge
certifi                   2019.11.28               py38_0    conda-forge
cffi                      1.14.0           py38hd463f26_0    conda-forge
chardet                   3.0.4                 py38_1003    conda-forge
cloudpickle               1.3.0                      py_0    conda-forge
colorama                  0.4.3                    pypi_0    pypi
conda                     4.8.2                    py38_0    conda-forge
conda-package-handling    1.6.0            py38h516909a_1    conda-forge
cryptography              2.8              py38h72c5cf5_1    conda-forge
cycler                    0.10.0                     py_2    conda-forge
cytoolz                   0.10.1           py38h516909a_0    conda-forge
dask-core                 2.12.0                     py_0    conda-forge
dbus                      1.13.6               he372182_0    conda-forge
decorator                 4.4.2                      py_0    conda-forge
defusedxml                0.6.0                      py_0    conda-forge
entrypoints               0.3                   py38_1000    conda-forge
executing                 0.4.2                    pypi_0    pypi
expat                     2.2.9                he1b5a44_2    conda-forge
ffmpeg                    4.1.3                h167e202_0    conda-forge
fontconfig                2.13.1            h86ecdb6_1001    conda-forge
freetype                  2.10.0               he983fc9_1    conda-forge
gettext                   0.19.8.1          hc5be6a0_1002    conda-forge
giflib                    5.2.1                h516909a_2    conda-forge
glib                      2.58.3          py38h6f030ca_1002    conda-forge
gmp                       6.2.0                he1b5a44_2    conda-forge
gnutls                    3.6.5             hd3a4fd2_1002    conda-forge
graphite2                 1.3.13            hf484d3e_1000    conda-forge
gst-plugins-base          1.14.5               h0935bb2_2    conda-forge
gstreamer                 1.14.5               h36ae1b5_2    conda-forge
harfbuzz                  2.4.0                h9f30f68_3    conda-forge
hdf5                      1.10.5          nompi_h3c11f04_1104    conda-forge
icecream                  2.0.0                    pypi_0    pypi
icu                       64.2                 he1b5a44_1    conda-forge
idna                      2.9                        py_1    conda-forge
imageio                   2.8.0                      py_0    conda-forge
importlib_metadata        1.5.0                    py38_0    conda-forge
ipykernel                 5.1.4            py38h5ca1d4c_0    conda-forge
ipympl                    0.5.3                      py_0    conda-forge
ipython                   7.13.0           py38h5ca1d4c_0    conda-forge
ipython_genutils          0.2.0                      py_1    conda-forge
ipywidgets                7.5.1                      py_0    conda-forge
jasper                    1.900.1           h07fcdf6_1006    conda-forge
jedi                      0.16.0                   py38_0    conda-forge
jinja2                    2.11.1                     py_0    conda-forge
joblib                    0.14.1                     py_0    conda-forge
jpeg                      9c                h14c3975_1001    conda-forge
jsonschema                3.2.0                    py38_0    conda-forge
jupyter_client            6.0.0                      py_0    conda-forge
jupyter_core              4.6.3                    py38_0    conda-forge
kiwisolver                1.1.0            py38hc9558a2_0    conda-forge
lame                      3.100             h14c3975_1001    conda-forge
ld_impl_linux-64          2.33.1               h53a641e_8    conda-forge
libblas                   3.8.0               15_openblas    conda-forge
libcblas                  3.8.0               15_openblas    conda-forge
libclang                  9.0.1           default_hde54327_0    conda-forge
libffi                    3.2.1             he1b5a44_1006    conda-forge
libgcc-ng                 9.2.0                h24d8f2e_2    conda-forge
libgfortran-ng            7.3.0                hdf63c60_5    conda-forge
libiconv                  1.15              h516909a_1005    conda-forge
liblapack                 3.8.0               15_openblas    conda-forge
liblapacke                3.8.0               15_openblas    conda-forge
libllvm9                  9.0.1                hc9558a2_0    conda-forge
libopenblas               0.3.8                h5ec1e0e_0    conda-forge
libopencv                 4.2.0                    py38_2    conda-forge
libpng                    1.6.37               hed695b0_0    conda-forge
libsodium                 1.0.17               h516909a_0    conda-forge
libstdcxx-ng              9.2.0                hdf63c60_2    conda-forge
libtiff                   4.1.0                hc3755c2_3    conda-forge
libuuid                   2.32.1            h14c3975_1000    conda-forge
libwebp                   1.0.2                h56121f0_5    conda-forge
libxcb                    1.13              h14c3975_1002    conda-forge
libxkbcommon              0.10.0               he1b5a44_0    conda-forge
libxml2                   2.9.10               hee79883_0    conda-forge
llvm-openmp               9.0.1                hc9558a2_2    conda-forge
lz4-c                     1.8.3             he1b5a44_1001    conda-forge
markupsafe                1.1.1            py38h516909a_0    conda-forge
matplotlib-base           3.2.0            py38h250f245_1    conda-forge
mistune                   0.8.4           py38h516909a_1000    conda-forge
nbconvert                 5.6.1                    py38_0    conda-forge
nbformat                  5.0.4                      py_0    conda-forge
ncurses                   6.1               hf484d3e_1002    conda-forge
nettle                    3.4.1             h1bed415_1002    conda-forge
networkx                  2.4                        py_0    conda-forge
notebook                  6.0.3                    py38_0    conda-forge
nspr                      4.25                 he1b5a44_0    conda-forge
nss                       3.47                 he751ad9_0    conda-forge
numpy                     1.18.1           py38h95a1406_0    conda-forge
olefile                   0.46                       py_0    conda-forge
opencv                    4.2.0                    py38_2    conda-forge
openh264                  1.8.0             hdbcaa40_1000    conda-forge
openssl                   1.1.1d               h516909a_0    conda-forge
pandoc                    2.9.2                         0    conda-forge
pandocfilters             1.4.2                      py_1    conda-forge
parso                     0.6.2                      py_0    conda-forge
pcre                      8.44                 he1b5a44_0    conda-forge
pexpect                   4.8.0                    py38_0    conda-forge
pickleshare               0.7.5                 py38_1000    conda-forge
pillow                    7.0.0            py38hefe7db6_0    conda-forge
pip                       20.0.2                     py_2    conda-forge
pixman                    0.38.0            h516909a_1003    conda-forge
progress                  1.5                        py_1    conda-forge
prometheus_client         0.7.1                      py_0    conda-forge
prompt-toolkit            3.0.4                      py_0    conda-forge
prompt_toolkit            3.0.4                         0    conda-forge
pthread-stubs             0.4               h14c3975_1001    conda-forge
ptyprocess                0.6.0                   py_1001    conda-forge
py-opencv                 4.2.0            py38h5ca1d4c_2    conda-forge
pycosat                   0.6.3           py38h516909a_1002    conda-forge
pycparser                 2.20                       py_0    conda-forge
pydicom                   1.4.2                      py_0    conda-forge
pygments                  2.6.1                      py_0    conda-forge
pyhht                     0.1.0                    pypi_0    pypi
pyopenssl                 19.1.0                     py_1    conda-forge
pyparsing                 2.4.6                      py_0    conda-forge
pyqt                      5.12.3           py38hcca6a23_1    conda-forge
pyqt5-sip                 4.19.18                  pypi_0    pypi
pyqtwebengine             5.12.1                   pypi_0    pypi
pyrsistent                0.15.7           py38h516909a_0    conda-forge
pysocks                   1.7.1                    py38_0    conda-forge
python                    3.8.2           h9d8adfe_4_cpython    conda-forge
python-dateutil           2.8.1                      py_0    conda-forge
python_abi                3.8                      1_cp38    conda-forge
pywavelets                1.1.1            py38hc1659b7_0    conda-forge
pyzmq                     19.0.0           py38h1768529_0    conda-forge
qt                        5.12.5               hd8c4c69_1    conda-forge
readline                  8.0                  hf8c457e_0    conda-forge
requests                  2.23.0                   py38_0    conda-forge
ruamel_yaml               0.15.80         py38h516909a_1000    conda-forge
scikit-image              0.16.2           py38hb3f55d8_0    conda-forge
scipy                     1.4.1            py38h921218d_0    conda-forge
send2trash                1.5.0                      py_0    conda-forge
setuptools                46.0.0                   py38_0    conda-forge
six                       1.14.0                   py38_0    conda-forge
sqlite                    3.30.1               hcee41ef_0    conda-forge
terminado                 0.8.3                    py38_0    conda-forge
testpath                  0.4.4                      py_0    conda-forge
tk                        8.6.10               hed695b0_0    conda-forge
toolz                     0.10.0                     py_0    conda-forge
tornado                   6.0.4            py38h516909a_0    conda-forge
tqdm                      4.43.0                     py_0    conda-forge
traitlets                 4.3.3                    py38_0    conda-forge
urllib3                   1.25.7                   py38_0    conda-forge
wcwidth                   0.1.8                      py_0    conda-forge
webencodings              0.5.1                      py_1    conda-forge
wheel                     0.34.2                     py_1    conda-forge
widgetsnbextension        3.5.1                    py38_0    conda-forge
x264                      1!152.20180806       h14c3975_0    conda-forge
xorg-kbproto              1.0.7             h14c3975_1002    conda-forge
xorg-libice               1.0.10               h516909a_0    conda-forge
xorg-libsm                1.2.3             h84519dc_1000    conda-forge
xorg-libx11               1.6.9                h516909a_0    conda-forge
xorg-libxau               1.0.9                h14c3975_0    conda-forge
xorg-libxdmcp             1.1.3                h516909a_0    conda-forge
xorg-libxext              1.3.4                h516909a_0    conda-forge
xorg-libxrender           0.9.10            h516909a_1002    conda-forge
xorg-renderproto          0.11.1            h14c3975_1002    conda-forge
xorg-xextproto            7.3.0             h14c3975_1002    conda-forge
xorg-xproto               7.0.31            h14c3975_1007    conda-forge
xz                        5.2.4             h14c3975_1001    conda-forge
yaml                      0.2.2                h516909a_1    conda-forge
zeromq                    4.3.2                he1b5a44_2    conda-forge
zipp                      3.1.0                      py_0    conda-forge
zlib                      1.2.11            h516909a_1006    conda-forge
zstd                      1.4.4                h3b9ef0a_1    conda-forge

Details about conda and system ( conda info ):
$ conda info
     active environment : npcrash
    active env location : $HOME/miniconda3/envs/npcrash
            shell level : 2
       user config file : $HOME/.condarc
 populated config files : $HOME/.condarc
          conda version : 4.8.2
    conda-build version : not installed
         python version : 3.7.6.final.0
       virtual packages : __cuda=10.1
                          __glibc=2.30
       base environment : $HOME/miniconda3  (writable)
           channel URLs : https://conda.anaconda.org/conda-forge/linux-64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : $HOME/miniconda3/pkgs
                          $HOME/.conda/pkgs
       envs directories : $HOME/miniconda3/envs
                          $HOME/.conda/envs
               platform : linux-64
             user-agent : conda/4.8.2 requests/2.23.0 CPython/3.7.6 Linux/5.3.0-40-generic ubuntu/19.10 glibc/2.30
                UID:GID : 1000:1000
             netrc file : None
           offline mode : False

Add pkg-config files

blas.pc, cblas.pc and lapack.pc can be added so that software using pkg-config can detect the blas package to be used.

Segmantation fault with latest libopenblas 0.3.10

Issue:

We got a coredump with the latest version 0.3.10 (build 2): https://travis-ci.com/github/lldelisle/pyGenomeTracks/jobs/362129644#L974

libopenblas-0.3.9 seems to work for us. Both versions (also 0.3.10-openmp_h709eae2_2) seems to cause the segfault.

$ python
Python 3.7.6 | packaged by conda-forge | (default, Jun  1 2020, 18:57:50) 
[GCC 7.5.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> t = np.array([[1, 0.5], [-1, 0.5]])
>>> matrix_a = np.dot([(1,2)], t)
>>> matrix_a = np.dot([(1,2) for i in range(100)], t)
>>> matrix_a = np.dot([(1,2) for i in range(1000)], t)
>>> matrix_a = np.dot([(1,2) for i in range(10000)], t)
>>> matrix_a = np.dot([(1,2) for i in range(100000)], t)
>>> matrix_a = np.dot([(1,2) for i in range(1000000)], t)
Speicherzugriffsfehler (Speicherabzug geschrieben)

$ conda install libopenblas=0.3.9
Collecting package metadata (repodata.json): done
Solving environment: \ WARNING conda.resolve:_get_sat_solver_cls(57): Could not run SAT solver through interface 'pycryptosat'.
done

## Package Plan ##

  environment location: /home/bag/miniconda3/envs/pgt

  added / updated specs:
    - libopenblas=0.3.9


The following NEW packages will be INSTALLED:

  llvm-openmp        conda-forge/linux-64::llvm-openmp-10.0.0-hc9558a2_0

The following packages will be DOWNGRADED:

  _openmp_mutex                                   4.5-0_gnu --> 4.5-1_llvm
  libblas                                 3.8.0-17_openblas --> 3.8.0-16_openblas
  libcblas                                3.8.0-17_openblas --> 3.8.0-16_openblas
  liblapack                               3.8.0-17_openblas --> 3.8.0-16_openblas
  libopenblas                    0.3.10-pthreads_hb3c22a3_2 --> 0.3.9-h5ec1e0e_0


Proceed ([y]/n)? y

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
(pgt) bag@bag:~/projects/code/pyGenomeTracks$ python
Python 3.7.6 | packaged by conda-forge | (default, Jun  1 2020, 18:57:50) 
[GCC 7.5.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> t = np.array([[1, 0.5], [-1, 0.5]])
>>> matrix_a = np.dot([(1,2)], t)
>>> matrix_a = np.dot([(1,2) for i in range(100)], t)
>>> matrix_a = np.dot([(1,2) for i in range(1000)], t)
>>> matrix_a = np.dot([(1,2) for i in range(10000)], t)
>>> matrix_a = np.dot([(1,2) for i in range(100000)], t)
>>> matrix_a = np.dot([(1,2) for i in range(1000000)], t)
>>> 





Environment (conda list):
# packages in environment at /home/bag/miniconda3/envs/pgt:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                       0_gnu    conda-forge
argcomplete               1.12.0             pyh9f0ad1d_0    conda-forge
argh                      0.26.2                py37_1001    conda-forge
asciitree                 0.3.3                      py_2    conda-forge
attrs                     19.3.0                     py_0    conda-forge
bedtools                  2.29.2               hc088bd4_0    bioconda
biopython                 1.76             py37h516909a_0    conda-forge
blosc                     1.19.0               he1b5a44_0    conda-forge
bokeh                     2.1.1            py37hc8dfbb8_0    conda-forge
bzip2                     1.0.8                h516909a_2    conda-forge
ca-certificates           2020.6.20            hecda079_0    conda-forge
certifi                   2020.6.20        py37hc8dfbb8_0    conda-forge
click                     7.1.2              pyh9f0ad1d_0    conda-forge
cloudpickle               1.5.0                      py_0    conda-forge
cooler                    0.8.9              pyh864c0ab_0    bioconda
cycler                    0.10.0                     py_2    conda-forge
cytoolz                   0.10.1           py37h516909a_0    conda-forge
dask                      2.21.0                     py_0    conda-forge
dask-core                 2.21.0                     py_0    conda-forge
dbus                      1.13.6               he372182_0    conda-forge
dill                      0.3.2              pyh9f0ad1d_0    conda-forge
distributed               2.21.0           py37hc8dfbb8_0    conda-forge
expat                     2.2.9                he1b5a44_2    conda-forge
fontconfig                2.13.1            h86ecdb6_1001    conda-forge
freetype                  2.10.2               he06d7ca_0    conda-forge
fsspec                    0.7.4                      py_0    conda-forge
future                    0.18.2           py37hc8dfbb8_1    conda-forge
gettext                   0.19.8.1          hc5be6a0_1002    conda-forge
gffutils                  0.10.1                     py_0    bioconda
ghostscript               9.22              hf484d3e_1001    conda-forge
glib                      2.65.0               h6f030ca_0    conda-forge
gst-plugins-base          1.14.5               h0935bb2_2    conda-forge
gstreamer                 1.14.5               h36ae1b5_2    conda-forge
h5py                      2.10.0          nompi_py37h90cd8ad_103    conda-forge
hdf5                      1.10.6          nompi_h3c11f04_100    conda-forge
heapdict                  1.0.1                      py_0    conda-forge
hicmatrix                 13                         py_0    bioconda
htslib                    1.10.2               hd3b49d5_1    bioconda
icu                       64.2                 he1b5a44_1    conda-forge
importlib-metadata        1.7.0            py37hc8dfbb8_0    conda-forge
importlib_metadata        1.7.0                         0    conda-forge
intervaltree              3.0.2                      py_0    conda-forge
jinja2                    2.11.2             pyh9f0ad1d_0    conda-forge
jpeg                      9d                   h516909a_0    conda-forge
kiwisolver                1.2.0            py37h99015e2_0    conda-forge
krb5                      1.17.1               hfafb76e_1    conda-forge
lcms2                     2.11                 hbd6801e_0    conda-forge
ld_impl_linux-64          2.34                 h53a641e_7    conda-forge
libblas                   3.8.0               17_openblas    conda-forge
libcblas                  3.8.0               17_openblas    conda-forge
libclang                  9.0.1           default_hde54327_0    conda-forge
libcurl                   7.71.1               hcdd3856_2    conda-forge
libdeflate                1.6                  h516909a_0    conda-forge
libedit                   3.1.20191231         h46ee950_1    conda-forge
libffi                    3.2.1             he1b5a44_1007    conda-forge
libgcc-ng                 9.2.0                h24d8f2e_2    conda-forge
libgfortran-ng            7.5.0                hdf63c60_6    conda-forge
libgomp                   9.2.0                h24d8f2e_2    conda-forge
libiconv                  1.15              h516909a_1006    conda-forge
liblapack                 3.8.0               17_openblas    conda-forge
libllvm9                  9.0.1                he513fc3_1    conda-forge
libopenblas               0.3.10          pthreads_hb3c22a3_2    conda-forge
libpng                    1.6.37               hed695b0_1    conda-forge
libssh2                   1.9.0                hab1572f_4    conda-forge
libstdcxx-ng              9.2.0                hdf63c60_2    conda-forge
libtiff                   4.1.0                hc7e4089_6    conda-forge
libuuid                   2.32.1            h14c3975_1000    conda-forge
libwebp-base              1.1.0                h516909a_3    conda-forge
libxcb                    1.13              h14c3975_1002    conda-forge
libxkbcommon              0.10.0               he1b5a44_0    conda-forge
libxml2                   2.9.10               hee79883_0    conda-forge
locket                    0.2.0                      py_2    conda-forge
lz4-c                     1.9.2                he1b5a44_1    conda-forge
lzo                       2.10              h14c3975_1000    conda-forge
markupsafe                1.1.1            py37h8f50634_1    conda-forge
matplotlib                3.1.1                    py37_2    conda-forge
matplotlib-base           3.1.1            py37h250f245_2    conda-forge
mock                      4.0.2            py37hc8dfbb8_0    conda-forge
more-itertools            8.4.0                      py_0    conda-forge
msgpack-python            1.0.0            py37h99015e2_1    conda-forge
multiprocess              0.70.10          py37h8f50634_0    conda-forge
ncurses                   6.2                  he1b5a44_1    conda-forge
nose                      1.3.7           py37hc8dfbb8_1004    conda-forge
nspr                      4.26                 he1b5a44_0    conda-forge
nss                       3.47                 he751ad9_0    conda-forge
numexpr                   2.7.1            py37h0da4684_1    conda-forge
numpy                     1.19.0           py37h8960a57_0    conda-forge
olefile                   0.46                       py_0    conda-forge
openssl                   1.1.1g               h516909a_0    conda-forge
packaging                 20.4               pyh9f0ad1d_0    conda-forge
pairix                    0.3.7            py37h84994c4_0    bioconda
pandas                    1.0.5            py37h0da4684_0    conda-forge
partd                     1.1.0                      py_0    conda-forge
pathlib                   1.0.1            py37hc8dfbb8_2    conda-forge
pcre                      8.44                 he1b5a44_0    conda-forge
pillow                    7.2.0            py37h718be6c_1    conda-forge
pip                       20.1.1                     py_1    conda-forge
pluggy                    0.13.1           py37hc8dfbb8_2    conda-forge
psutil                    5.7.2            py37h8f50634_0    conda-forge
pthread-stubs             0.4               h14c3975_1001    conda-forge
py                        1.9.0              pyh9f0ad1d_0    conda-forge
pybedtools                0.8.1            py37h8270d21_2    bioconda
pybigwig                  0.3.17           py37h960e705_2    bioconda
pyfaidx                   0.5.9              pyh4c3bd37_0    bioconda
pygenometracks            3.5                      pypi_0    pypi
pyparsing                 2.4.7              pyh9f0ad1d_0    conda-forge
pyqt                      5.12.3           py37h8685d9f_3    conda-forge
pyqt5-sip                 4.19.18                  pypi_0    pypi
pyqtchart                 5.12                     pypi_0    pypi
pyqtwebengine             5.12.1                   pypi_0    pypi
pysam                     0.16.0.1         py37hc334e0b_1    bioconda
pytables                  3.6.1            py37h56451d4_2    conda-forge
pytest                    5.4.3            py37hc8dfbb8_0    conda-forge
python                    3.7.6           cpython_h8356626_6    conda-forge
python-dateutil           2.8.1                      py_0    conda-forge
python_abi                3.7                     1_cp37m    conda-forge
pytz                      2020.1             pyh9f0ad1d_0    conda-forge
pyyaml                    5.3.1            py37h8f50634_0    conda-forge
qt                        5.12.5               hd8c4c69_1    conda-forge
readline                  8.0                  he28a2e2_2    conda-forge
scipy                     1.5.1            py37ha3d9a3c_0    conda-forge
setuptools                49.2.0           py37hc8dfbb8_0    conda-forge
simplejson                3.17.2           py37h8f50634_0    conda-forge
six                       1.15.0             pyh9f0ad1d_0    conda-forge
sortedcontainers          2.2.2              pyh9f0ad1d_0    conda-forge
sqlite                    3.32.3               hcee41ef_1    conda-forge
tblib                     1.6.0                      py_0    conda-forge
tk                        8.6.10               hed695b0_0    conda-forge
toolz                     0.10.0                     py_0    conda-forge
tornado                   6.0.4            py37h8f50634_1    conda-forge
tqdm                      4.48.0             pyh9f0ad1d_0    conda-forge
typing_extensions         3.7.4.2                    py_0    conda-forge
wcwidth                   0.2.5              pyh9f0ad1d_0    conda-forge
wheel                     0.34.2                     py_1    conda-forge
xorg-libxau               1.0.9                h14c3975_0    conda-forge
xorg-libxdmcp             1.1.3                h516909a_0    conda-forge
xz                        5.2.5                h516909a_1    conda-forge
yaml                      0.2.5                h516909a_0    conda-forge
zict                      2.0.0                      py_0    conda-forge
zipp                      3.1.0                      py_0    conda-forge
zlib                      1.2.11            h516909a_1006    conda-forge
zstd                      1.4.5                h6597ccf_1    conda-forge


Details about conda and system ( conda info ):
$ conda info

     active environment : pgt
    active env location : /home/bag/miniconda3/envs/pgt
            shell level : 1
       user config file : /home/bag/.condarc
 populated config files : /home/bag/.condarc
          conda version : 4.8.3
    conda-build version : 3.4.2
         python version : 2.7.15.final.0
       virtual packages : __glibc=2.31
       base environment : /home/bag/miniconda3  (writable)
           channel URLs : https://conda.anaconda.org/conda-forge/linux-64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://conda.anaconda.org/bioconda/linux-64
                          https://conda.anaconda.org/bioconda/noarch
                          https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /home/bag/miniconda3/pkgs
                          /home/bag/.conda/pkgs
       envs directories : /home/bag/miniconda3/envs
                          /home/bag/.conda/envs
               platform : linux-64
             user-agent : conda/4.8.3 requests/2.22.0 CPython/2.7.15 Linux/5.4.0-40-generic ubuntu/20.04 glibc/2.31
                UID:GID : 1000:1000
             netrc file : /home/bag/.netrc
           offline mode : False

Segfault with openblas 0.3.10

I have observed a regression with openblas 0.3.10:

import numpy as np

np.ones(shape=(300000, 5)) @ np.ones(shape=(5, 5))

=> segfaults.

No problem with 0.3.9.

I will report upstream but maybe we might want to mark 0.3.10 as a bad release in conda-forge? Are we might do that once a bugfix release is available from upstream?

Original bug in scikit-learn: scikit-learn/scikit-learn#17980

Problems on osx-arm (correctness & speed)

Known issues currently with 0.3.20 & 0.3.21 (before, certain kernels weren't activated for osx-arm yet):

There's also a performance drop by factor 3-4 compared to compiling locally mentioned in the openblas issue. Not sure if this has anything to do with 7dac253, or why we added that at the time.

Related: conda-forge/conda-forge-repodata-patches-feedstock#304

CC @conda-forge/openblas @rgommers

Try to eliminate `binutils` on Linux

This can't be done at present because a newer version was required to Linux to build at all (see this comment and the one below). According to this user, they were able to build with binutils 2.25.1. We have the binutils 2.26 package at present. As we are going to start using devtools-2, we will have a binutils version in-between the two mentioned (2.23.52). It is unclear if that is new enough to work here, but it would be worth trying. If it does work, we should drop the binutils dependency.

Building against openmp variant still pulls pthread run dependency

Solution to issue cannot be found in the documentation.

  • I checked the documentation.

Issue

When listing openblas in the host/build requirements, it adds a run dependency to libopenblas. If the openmp variant is selected at build-time, the run dependency does not select openmp and still defaults to pthreads.

Installed packages

(base) root@338d4131e42c:/# conda list # (this is the standard contents of the anaconda3 docker + mamba/boa
# packages in environment at /opt/conda:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                  2_kmp_llvm    conda-forge
anyio                     3.5.0            py39hf3d152e_0    conda-forge
attrs                     21.4.0             pyhd8ed1ab_0    conda-forge
backports                 1.0                        py_2    conda-forge
backports.functools_lru_cache 1.6.4              pyhd8ed1ab_0    conda-forge
beautifulsoup4            4.11.1             pyha770c72_0    conda-forge
boa                       0.11.0             pyha770c72_0    conda-forge
brotlipy                  0.7.0           py39h27cfd23_1003
bzip2                     1.0.8                h7f98852_4    conda-forge
c-ares                    1.18.1               h7f98852_0    conda-forge
ca-certificates           2021.10.8            ha878542_0    conda-forge
certifi                   2021.10.8        py39hf3d152e_2    conda-forge
cffi                      1.15.0           py39hd667e15_1
chardet                   4.0.0            py39hf3d152e_3    conda-forge
charset-normalizer        2.0.4              pyhd3eb1b0_0
click                     8.1.3            py39hf3d152e_0    conda-forge
colorama                  0.4.4              pyh9f0ad1d_0    conda-forge
commonmark                0.9.1                      py_0    conda-forge
conda                     4.12.0           py39hf3d152e_0    conda-forge
conda-build               3.21.8           py39hf3d152e_0    conda-forge
conda-content-trust       0.1.1              pyhd3eb1b0_0
conda-package-handling    1.7.3            py39h27cfd23_1
conda-verify              3.1.1           py39hf3d152e_1004    conda-forge
cryptography              36.0.0           py39h9ce1e76_0
dataclasses               0.8                pyhc8e2a94_3    conda-forge
filelock                  3.6.0              pyhd8ed1ab_0    conda-forge
future                    0.18.2           py39hf3d152e_5    conda-forge
glob2                     0.7                        py_0    conda-forge
icu                       70.1                 h27087fc_0    conda-forge
idna                      3.3                pyhd3eb1b0_0
importlib-metadata        4.11.3           py39hf3d152e_1    conda-forge
importlib_resources       5.7.1              pyhd8ed1ab_0    conda-forge
jinja2                    3.1.1              pyhd8ed1ab_0    conda-forge
joblib                    1.1.0              pyhd8ed1ab_0    conda-forge
json5                     0.9.5              pyh9f0ad1d_0    conda-forge
jsonschema                4.4.0              pyhd8ed1ab_0    conda-forge
keyutils                  1.6.1                h166bdaf_0    conda-forge
krb5                      1.19.3               h3790be6_0    conda-forge
ld_impl_linux-64          2.35.1               h7274673_9
libarchive                3.5.2                hccf745f_1    conda-forge
libcurl                   7.83.0               h7bff187_0    conda-forge
libedit                   3.1.20191231         he28a2e2_2    conda-forge
libev                     4.33                 h516909a_1    conda-forge
libffi                    3.3                  he6710b0_2
libgcc-ng                 11.2.0              h1d223b6_16    conda-forge
libiconv                  1.16                 h516909a_0    conda-forge
liblief                   0.11.5               h9c3ff4c_1    conda-forge
libmamba                  0.23.0               hd8a31e3_1    conda-forge
libmambapy                0.23.0           py39hd55135b_1    conda-forge
libnghttp2                1.47.0               h727a467_0    conda-forge
libsolv                   0.7.22               h6239696_0    conda-forge
libssh2                   1.10.0               ha56f1ee_2    conda-forge
libstdcxx-ng              11.2.0              he4da1e4_16    conda-forge
libxml2                   2.9.14               h22db469_0    conda-forge
libzlib                   1.2.11            h166bdaf_1014    conda-forge
llvm-openmp               14.0.3               he0ac6c6_0    conda-forge
lz4-c                     1.9.3                h9c3ff4c_1    conda-forge
lzo                       2.10              h516909a_1000    conda-forge
mamba                     0.23.0           py39hfa8f2c8_1    conda-forge
markupsafe                2.1.1            py39hb9d737c_1    conda-forge
ncurses                   6.3                  h7f8727e_2
openssl                   1.1.1n               h166bdaf_0    conda-forge
patchelf                  0.14.5               h58526e2_0    conda-forge
pip                       21.2.4           py39h06a4308_0
pkginfo                   1.8.2              pyhd8ed1ab_0    conda-forge
prompt-toolkit            3.0.29             pyha770c72_0    conda-forge
prompt_toolkit            3.0.29               hd8ed1ab_0    conda-forge
psutil                    5.9.0            py39hb9d737c_1    conda-forge
py-lief                   0.11.5           py39he80948d_1    conda-forge
pybind11-abi              4                    hd8ed1ab_3    conda-forge
pycosat                   0.6.3            py39h27cfd23_0
pycparser                 2.21               pyhd3eb1b0_0
pygments                  2.12.0             pyhd8ed1ab_0    conda-forge
pyopenssl                 21.0.0             pyhd3eb1b0_1
pyrsistent                0.18.1           py39hb9d737c_1    conda-forge
pysocks                   1.7.1            py39h06a4308_0
python                    3.9.7                h12debd9_1
python-libarchive-c       4.0              py39hf3d152e_1    conda-forge
python_abi                3.9                      2_cp39    conda-forge
pytz                      2022.1             pyhd8ed1ab_0    conda-forge
pyyaml                    6.0              py39hb9d737c_4    conda-forge
readline                  8.1.2                h7f8727e_1
reproc                    14.2.3               h7f98852_0    conda-forge
reproc-cpp                14.2.3               h9c3ff4c_0    conda-forge
requests                  2.27.1             pyhd3eb1b0_0
rich                      12.3.0             pyhd8ed1ab_0    conda-forge
ripgrep                   13.0.0               h2f28480_2    conda-forge
ruamel.yaml               0.17.21          py39hb9d737c_1    conda-forge
ruamel.yaml.clib          0.2.6            py39hb9d737c_1    conda-forge
ruamel_yaml               0.15.100         py39h27cfd23_0
setuptools                58.0.4           py39h06a4308_0
six                       1.16.0             pyhd3eb1b0_0
sniffio                   1.2.0            py39hf3d152e_3    conda-forge
soupsieve                 2.3.1              pyhd8ed1ab_0    conda-forge
sqlite                    3.37.0               hc218d9a_0
tk                        8.6.11               h1ccaba5_0
tqdm                      4.62.3             pyhd3eb1b0_1
typing_extensions         4.2.0              pyha770c72_1    conda-forge
tzdata                    2021e                hda174b7_0
urllib3                   1.26.7             pyhd3eb1b0_0
watchgod                  0.8.2              pyhd8ed1ab_0    conda-forge
wcwidth                   0.2.5              pyh9f0ad1d_2    conda-forge
wheel                     0.37.1             pyhd3eb1b0_0
xz                        5.2.5                h7b6447c_0
yaml                      0.2.5                h7b6447c_0
yaml-cpp                  0.6.3                he1b5a44_4    conda-forge
zipp                      3.8.0              pyhd8ed1ab_0    conda-forge
zlib                      1.2.11            h166bdaf_1014    conda-forge
zstd                      1.5.2                ha95c52a_0    conda-forge

Environment info

active environment : base
    active env location : /opt/conda
            shell level : 1
       user config file : /root/.condarc
 populated config files : /root/.condarc
          conda version : 4.12.0
    conda-build version : 3.21.8
         python version : 3.9.7.final.0
       virtual packages : __cuda=11.8=0
                          __linux=4.15.0=0
                          __glibc=2.31=0
                          __unix=0=0
                          __archspec=1=x86_64
       base environment : /opt/conda  (writable)
      conda av data dir : /opt/conda/etc/conda
  conda av metadata url : None
           channel URLs : file:///opt/conda/conda-bld/linux-64
                          file:///opt/conda/conda-bld/noarch
                          https://conda.anaconda.org/conda-forge/linux-64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://conda.anaconda.org/nvidia/linux-64
                          https://conda.anaconda.org/nvidia/noarch
                          https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /opt/conda/pkgs
                          /root/.conda/pkgs
       envs directories : /opt/conda/envs
                          /root/.conda/envs
               platform : linux-64
             user-agent : conda/4.12.0 requests/2.27.1 CPython/3.9.7 Linux/4.15.0-156-generic debian/11 glibc/2.31
                UID:GID : 0:0
             netrc file : None
           offline mode : False

Adding Windows support

Needs to use MSYS2 packages. Needs to build with the MinGW-w64 toolchain. This needs to be done to ensure we have Fortran support and to get optimized AT&T assembly support. Without these, a build of OpenBLAS for Windows is pretty pointless as it will be a little slow (no AT&T assembly support with VS), have no LAPACK support, and be missing a Fortran API that many things expect to use.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.