0
votes

if so which?

The specific example I'm interested in is np.einsum.

I'm really confused with what OPENBLAS / BLAS / LAPACK / ATLAS / INTEL MKL offers.

I've tried reading about this and installing packages but have made a mess, so I've decided to go back to basics.

The ideal answer will be a yes / no and an example of the function and configuration that does this if the answer is yes. By configuration I mean OS, version of python / numpy / BLAS / LAPACK etc

Thank you

1

1 Answers

1
votes

To lift you confusion a little:

  • BLAS and LAPACK are standardized APIs (you can think of these as header files)
  • OpenBLAS, ATLAS, and MKL provide optimized implementations of these APIs. If you have MKL you should be covered, otherwise I recommend OpenBLAS over ATLAS.

If not told otherwise, BLAS libraries will check certain environment variables to decide how many threads to use. If no more specific variables are defined, most libraries will default to OMP_NUM_THREADS, so run on e.g. 4 threads, try

export OMP_NUM_THREADS=4

before starting your program. For more details on how to control threading, check your BLAS implementations manual/documentation.