4 ms·
False. OpenMP does shared-memory parallelism and has nothing to do with LAPACK. numpy is completely serial.
by milancurcic 9y ago
False. OpenMP does shared-memory parallelism and has nothing to do with LAPACK. numpy is completely serial.
- auxym 9y agoNumpy can be compiled against a multi-threaded BLAS, for example MKL.
- pletnes 9y agoAnaconda python is a great option for exactly that. MKL gives great multicore performance. Many packages, e.g scikit-learn, dask and others, lean on numpy for performance, and are thus much faster.
- milancurcic 9y agoYes it can, in which case you embed OpenMP parallelism in low-level library calls, and is another way to accomplish what the article suggests. But it's still a fine-grained parallelism so numpy can match plain Fortran performance in special cases (and not the other way around).
- santaclaus 9y agoI've seen OpenMP-based, non-BLAS implementations beat out MKL, on Intel hardware nonetheless. We emailed the MKL folks and they just shrugged. :) Don't presume that MKL is the lower limit on performance.
- Derbasti 9y agoNumpy (or rather, BLAS) is running many threads in parallel. The amount of concurrency is actually configurable, and is something well worth optimizing for multiprocessing workloads.