Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
6977 Discussions

MKL_PARDISO_OOC_MAX_CORE_SIZE and MKL_PARDISO_OOC_PATH

xian-zhong_guous_cd-
589 Views
Can PARDISO provide API to set those two variables? Our code does not use environment variables.
0 Kudos
3 Replies
Sergey_Solovev__Inte
New Contributor I
589 Views

These variables can be set by configuration file pardiso_ooc.cfg (see MKL manual , Sparse Solver Routines/PARDISO/pardiso).

MKL_PARDISO_OOC_MAX_CORE_SIZE cannot be set via API.

MKL_PARDISO_OOC_PATH can be set by pardiso_setenv function (see Sparse Solver Routines/PARDISO/pardiso_setenv)

0 Kudos
xian-zhong_guous_cd-
589 Views
Can you give me an C example how to use pardiso_setenv to set MKL_PARDISO_OOC_PATH?
0 Kudos
Sergey_Solovev__Inte
New Contributor I
589 Views

Yes, please see below:

...
#include "mkl_types.h"
#include "mkl_pardiso.h"
...
const char* fname = "test_name_for_OOC_pardiso";
...
for (i = 0; i < 64; i++) {
iparm = 0;
}
iparm[0] = 1; /* No solver default */
iparm[1] = 2; /* Fill-in reordering from METIS */
...
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 */
iparm[60-1] = 2; /* strong OOC mode */
maxfct = 1; /* Maximum number of numerical factorizations. */
mnum = 1; /* Which factorization to use. */
msglvl = 1; /* Print statistical information in file */
error = 0; /* Initialize error flag */

for (i = 0; i < 64; i++) {
pt = 0;
}

param = PARDISO_OOC_FILE_NAME;
pardiso_setenv(pt, &param, fname);
phase = 11;
PARDISO (pt, &maxfct, &mnum, &mtype, &phase,
&n, a, ia, ja, &idum, &nrhs,
iparm, &msglvl, &ddum, &ddum, &error);
....

0 Kudos
Reply