Intel® oneAPI Math Kernel Library Developer Reference - C

mkl_set_mpi

Sets the implementation of the message-passing interface to be used by Intel® oneAPI Math Kernel Library.

Syntax

int mkl_set_mpi (int vendor, const char *custom_library_name);

Include Files

Input Parameters

Name

Type

Description

vendor

int

Specifies the implementation of the message-passing interface (MPI) to use:

Possible values:

  • MKL_BLACS_CUSTOM - a custom MPI library. Requires a prebuilt custom MPI BLACS library.

  • MKL_BLACS_MSMPI - Microsoft MPI library.

  • MKL_BLACS_INTELMPI - Intel® MPI library.

  • MKL_BLACS_MPICH - MPICH MPI library.

custom_library_namevendor

const char *

The filename (without a directory name) of the custom BLACS dynamic library to use. This library must be located in the directory with your application executable or with Intel® oneAPI Math Kernel Library dynamic libraries. Can beNULL or an empty string.

Description

Call this function to set the MPI implementation to be used by Intel® oneAPI Math Kernel Library on Windows* OS when dynamic Intel® oneAPI Math Kernel Library libraries are used. For all other configurations, the function returns an error indicating that you cannot set the MPI implementation. You can specify your own prebuilt dynamic BLACS library for a custom MPI by settingvendor to MKL_BLACS_CUSTOM and optionally passing the name of the custom BLACS dynamic library. If the custom_library_path parameter is NULLor an empty string, Intel® oneAPI Math Kernel Library uses the default platform-specific library name:mkl_blacs_custom_lp64.dll or mkl_blacs_custom_ilp64.dll, depending on whether the BLACS interface linked against your application is LP64 or ILP64.

Return Values

Name

Type

Description

status

int

The return status:

  • 0 - The function completed successfully.

  • -1 - The vendor parameter is invalid.

  • -2 - The custom_library_name parameter is invalid.

  • -3 - The MPI library cannot be set at this point.

Optimization Notice

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804

This notice covers the following instruction sets: SSE2, SSE4.2, AVX2, AVX-512.