Hello!
I am using PARDISO for factorization of symmetrical complex matrices. Recently I downloaded evaluation library v. 11.2 upd3 and run a code that was developed for v.10 library some time ago. It solves the problem with success but only with 1 thread. I.e. I failed to enable multithreading for PARDISO. Last time I used OMP_NUM_THREADS variable and it was ok.
How can I enable multithreading? Can the evaluation (trial) license be locked for more than 1 thread?
Environment:
Win7 OS
MS Visual Studio 2010 C++
Desktop PC with Intel i5 CPU
Pardiso iparm:
iparm[0] = 0; // No solver default.
iparm[1] = 3; // The parallel (OpenMP) version of the nested dissection algorithm
iparm[2] = 0; //
iparm[3] = 0; // No iterative-direct algorithm.
iparm[4] = 0; // No user fill-in reducing permutation.
iparm[5] = 0; // Write solution into x.
iparm[6] = 0; // Not in use.
iparm[7] = 2; // Max numbers of iterative refinement steps.
iparm[8] = 0; // Not in use.
iparm[9] = 13; // Perturb the pivot elements with 1E-13.
iparm[10] = 1; // Use nonsymmetric permutation and scaling MPS.
iparm[11] = 0; // Not in use.
iparm[12] = 0; // Not in use.
iparm[13] = 0; // Output: Number of perturbed pivots.
iparm[14] = 0; // Not in use.
iparm[15] = 0; // Not in use.
iparm[16] = 0; // Not in use.
iparm[17] = -1; // Output: Number of nonzeros in the factor LU.
iparm[18] = -1; // Output: Mflops for LU factorization.
iparm[19] = 0; // Output: Numbers of CG Iterations.
Task: Reordering + factorization of Complex symmetrical matrix;
Goal: multithread run within OpenMP paradigm
I tried following methods for multithreading:
Set environment variable OMP_NUM_THREADS– does not work (process uses 1 thread/CPU kernel)
Set variable MKL_NUM_THREADS– does not work (process uses 1 thread)
Call function omp_set_num_threads(num_threads) – does not work (process uses 1 thread)
Call function mkl_set_num_thread(num threads) – does not work (process uses 1 thread)
All “*_set_num_thread” functions call are in the main() before calling any Pardiso routine. Variables are set for the process or in the main function.
Thank you in advance.