How to use OOC PARDISO?

In Intel® MKL PARDISO, iparm(60) controls - out-of-core (OOC) version or in-core version - is used. The OOC PARDISO can solve very large problems by holding the matrix factors in files on the disk resulting the amount of main memory required by OOC PARDISO is significantly reduced.

The current OOC version does not use threading*, thus both the parameter iparm(3) and the variable MKL_NUM_THREADS must be set to 1 when iparm(60) is equal to 1 or 2.

If iparm(60) is set to 0, then the in-core PARDISO is used. If iparm(60) is set to 2 - the OOC PARDISO is used. If iparm(60) is set to 1 - the in-core PARDISO is used if the total memory (in MBytes) needed for storing the matrix factors is less than the value of the environment variable MKL_PARDISO_OOC_MAX_CORE_SIZE (its default value is 2000), and OOC PARDISO is used otherwise.

The default value of iparm(60) is 0.

Note that if iparm(60) is equal to 1 or 2, and the total peak memory needed for storing local arrays is more than MKL_PARDISO_OOC_MAX_CORE_SIZE, the program stops with error -9. In this case, increase of MKL_PARDISO_OOC_MAX_CORE_SIZE is recommended.

OOC parameters can be set in the configuration file. You can set the path to this file and its name via environmental variable MKL_PARDISO_OOC_CFG_PATH and MKL_PARDISO_OOC_CFG_FILE_NAME.

Path and name are as follows:
By default, the name of the file is pardiso_ooc.cfg and it is placed to the current directory.

Please refer the Intel® MKL reference manual for more details about OOC PARDISO and to the KB article Tips For Using PARDISO.

* - the OOC version of the PARDISO was parallelized since the version MKL 10.2 Update 2.
For more complete information about compiler optimizations, see our Optimization Notice.