For all the Frontera Python installations, the core numerical packages NumPy and SciPy are linked to the Intel MKL and are compiled to take advantage of the MIC-AVX512 and CORE-AVX512 ISAs relevant to Frontera nodes. MKL provides access to optimized versions of the low-level BLAS and LAPACK libraries. Other packages in the Python ecosystem typically do not themselves need direct access to those low-level libraries, but instead call functions within NumPy and SciPy, and therefore benefit from their linkage to optimized versions of BLAS and LAPACK. Results of the command numpy.__config__.show() demonstrating this linkage on Frontera were reported earlier in the page on Configuring and Compiling for Performance.

Furthermore, as noted in the Frontera User Guide, "TACC's MATLAB, Python, and R modules all use threaded (parallel) MKL as their underlying BLAS/LAPACK library. These means that even serial codes written in MATLAB, Python, or R may benefit from MKL's thread-based parallelism. This requires no action on your part other than specifying an appropriate max thread count for MKL".

The specifics of how to specify an appropriate max thread count is described in more detail in the user guide section on Controlling Threading in MKL. In particular, this involves setting either of the two environment variables MKL_NUM_THREADS or OMP_NUM_THREADS.

 
©  |   Cornell University    |   Center for Advanced Computing    |   Copyright Statement    |   Inclusivity Statement