I want to compile this C code with MKL, but when I run it using the command mpicc -mkl mkl_thread.c, it gives me an error about an unrecognized command line option -mkl. When I run it as mpicc mkl_thread.c -o mkl_thread, it gives a different error, saying “undefined reference to `MKL_Set_Num_Threads'”. I don’t know how I can run it with or link with MKL.
My code is:
define NUM_PROCS 5
int main (int argc, char ** argv)
{
int threads_per_proc[NUM_PROCS] = { 1,2 ,3, 4,5 };
int rank;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
// ...
// Signal an error if rank >= 5
// ...
mkl_set_num_threads(threads_per_proc[rank]);
MPI_Finalize();
}
-mklis an Intel specific option which can not be recognized bympicc.For non-Intel compiler, you could specify the link options explicitly.
Please refer to Intel® Math Kernel Library Link Line Advisor for other link options.