Developer Guide

Contents

Shared Library Versioning

Intel® oneAPI Math Kernel Library (oneMKL)
adds shared library versioning for all operating systems and platforms, as opposed to not using any library versioning up to Intel® Math Kernel Library (Intel® MKL) 2020 Update 4.
This new feature:
  • Allows applications to work correctly in an environment with multiple
    oneMKL
    and/or Intel® MKL packages installed
  • Communicates clearly when incompatible changes are made, and an application should be rebuilt
  • Allows you to link against a specific version of shared libraries
The starting version for shared libraries is “1” and any change that break backward compatibility will result in an increment to this number. Intel expects to make this change as seldom as possible and inform customers about it at least 24 months in advance.
The product version “2021.1” is now decoupled from the library version, meaning that “2021.2” can ship with shared libraries versioned as “1”. This means that the libraries shipped in “2021.2” are backward compatible with libraries shipped in “2021.1”.
Changes to the link-line:
  • No changes are required to the link-line because symbolic links are provided with the old names, which point to the new library that contains the version information on Linux* and MacOS*. The symbolic link name is also the
    soname
    and
    install_name
    of that library on Linux and MacOS, respectively.
    • For example,
      libmkl_core.so
      ->
      libmkl_core.<version>.so
    • For example,
      libmkl_core.dylib
      ->
      libmkl_core.<version>.dylib
    • Using
      -lmkl_core
      will still work as before, ensuring backward compatibility with Intel® MKL 2020 line-up (including Intel® Parallel Studio and Intel® System Studio distributions).
  • On Windows*, import libraries used in the link-line do not contain any version information, as before, but point to the new DLL, which contains the version information.
    • For example,
      mkl_core_dll.lib
      has the same name as before and requires no change to the link-line. The linker, however, resolves this to the new
      mkl_core.<version>.dll
      instead of the older
      mkl_core.dll
      .

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.