We're running an application that's in the process of being MKL BLAS enhaced. We've been told not to hyperthread.
In order for multithreaded (so-called parallel?) version to not be considered during compilation, i.e. to disable hyperthreading but only wanting MKL sequential vectorization, we removed the threaded library from the FindMKL Cmake file. The compiler was icc 2019.
In order to disable multithreading at runtime we launched the tasks in slurm setting --threads-per-core=1 in the slurmfile.
Yet we are not sure how to double-check that MKL is only running sequentially, so we collected a (summed over 4 cores, single cluster node) profile w/ gprof.
The following functions appear on the flat profile albeit consuming less than 0.3% each. Are they evidence to support the idea that MKL is hyperthreading, i.e. "not running in sequential mode"?
mkl_vml_serv_threader_d_2iI_1oI
mkl_vml_serv_threader_d_1i_1o
mkl_vml_serv_threader_d_1iI_1oI
mkl_vml_serv_threader_d_2i_1o