LAPACK compatibile wrapper for IBM’s ESSL

  • by

Complemental LAPACK for IBM’s ESSL library. For the routines defined in ESSL with standard LAPACK names, but with non-standard calling sequences, it defines set of interfaces with standard LAPACK names. For the routines missing in ESSL, it provides standard reference LAPACK 3.1.1 versions.

At allows to compile codes which require LAPACK routines without any modifications to the code, and make use of optimized ESSL routines at the same time.

It works ONLY with shared ESSL and must be also compiled as shared library. When code is linked with this library, “-lESSLlapack” must be ALWAYS in front of “-lESSL” in set of linker arguments.

Brief idea behind this schema: On load of shared library “libESSLlapack.so” it resolves entrance points for shared objects in libessl.so and store them in memory. When application calls routine with overlaping name, function if this library modify calling sequince and then pass arguments to ESSL version of it.

You can get this library at my GitHub repo .