Pardiso and OpenMP - Does the first one depend on the second?
I am currently using the direct sparse solvers (DSS subroutines) for a FEM code. I implemented Pardiso to take advantage of the parallelism. However, I don't see any difference by using the previous solver and Pardiso. I amfairlynew with parallel computations, so my question is: do I need to implement Pardiso inside an OpenMP Parallel loop or am I just missing something?
I tried changing the number of threads (Iparm(3)=4) and even getting it from OMP_GET_NUM_THREADS, however I only see 2 of my 4 threads doing the work. I use Intel Fortran Compiler 11 for Windows XP 32 bits. My processor is an Intel Core i5 VPro.
I also tried to use mkl_progress to track progress and check which threads are being used but I did not figure out how to do it.
Do you have a single 2-core Intel Core i5 vPro processor? That would explain what you are seeing. Since this processor has Intel Hyper-Threading Technology, your OS will report that 4 processors are available. Hyper-threading can speed up many applications, but we've found that with the compute intensive routines in Intel MKL it is better to use only as many threads as there are physical cores available. That will be half the number of threads that the OS reports are available if Hyper-threading is enabled.