C++ Math: Boost uBlas with Intel MKL
It has been always attractive to extended C or C++ beyond the standardized set of math functions. The foundations of C++ made this even more attractive since the introduction of user-defined types along with operator overloading allows to seamlessly integrate new math functionality with the language's built-in operators. Beyond high-level software design the talk also gives the perspective of a hardware vendor that enables a platform to leverage its capabilities. This insight closes with how the Intel AVX instruction set extension maps to what "x86" really is today, and how Intel Architecture evolves in general. With Boost uBLAS and Intel MKL, an example along with performance numbers is given on how a high-level C++ library leverages a high-performance implementation. Moreover, the reuse of industry-standard interfaces such as BLAS and CBLAS is emphasized. The main part closes with an overview of Intel MKL functional domains and other (mostly HPC-centric) interfaces e.g., NETLIB, and ScaLAPACK. The last part of the talk picks up performance again, and gives insight into the Intel MKL development cycle to enable upcoming hardware, and to tune performance beyond a single GLOPS/s-number.
Speaker: Hans Pabst