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

How to delete mkl out-of-core temporary files

Jens_E_
New Contributor I
621 Views

Hi,

I'm using pardiso_64 in MKL 11.3.3.1.

When run in out-of-core mode, temporary files are generated. I have set the environment variable MKL_PARDISO_OOC_KEEP_FILE = 1 according to https://software.intel.com/en-us/mkl-developer-reference-c-intel-mkl-pardiso-parallel-direct-sparse-solver-interface in order to delete temporary files when computations are complete. (I have also tried = 0 as "keep file  = 1" seemed counter intuitive, but that's besides the point).

I assumed that files would be deleted when I called pardiso_64 with phase=-1 in order to release internal memory. But the files are not deleted.

How can I get pardiso to delete temporary out-of-core files?

Best,
Jens

0 Kudos
7 Replies
Jing_Xu
Employee
621 Views

Could you provide us a simple test case that can reproduce the problem, so that we can use it for investigation?

0 Kudos
Zhen_Z_Intel
Employee
621 Views

Hi Jens,

I wonder how did you set the variable? The environmental variable has a higher priority than set variable in pardiso_ooc config file. If you set keep_file variable as env value, the pardiso will ignore keep_file setting in config file, like below:

Reordering completed ...
Number of factorization MFLOPS = 0ooc_keep_file      got by Env=1
ooc_path          got from config file=.\pardiso_ooc
ooc_max_core_size got from config file=2000
ooc_max_swap_size got from config file=10

Please check with it, and share your pardiso print-out result, or provide a simple reproducer. Thanks.

Best regards,
Fiona 

0 Kudos
Jens_E_
New Contributor I
621 Views

Thanks. I set the environment variable programatically using the Windows API; I do not use a config file.

This works for e.g. "MKL_PARDISO_OOC_PATH", as I am able to change the prefix of the files.

I'll check the pardiso messages.

One additional question though: when will the files be deleted? Is it when I call pardiso with phase=-1 ?

0 Kudos
Jens_E_
New Contributor I
621 Views

The pardiso printout is as follows:

ooc_path           got by Env=tmp_ooc
ooc_max_core_size  got by Env=1000
ooc_keep_file      got by Env=1
The file .\pardiso_ooc.cfg was not opened
=== PARDISO is running in Out-Of-Core mode, because iparam(60)=2 ===

 

But the files tmp_ooc.* are still present after calling pardiso with phase = -1

0 Kudos
Jens_E_
New Contributor I
621 Views

The pardiso printout is as follows:

ooc_path           got by Env=tmp_ooc
ooc_max_core_size  got by Env=1000
ooc_keep_file      got by Env=1
The file .\pardiso_ooc.cfg was not opened
=== PARDISO is running in Out-Of-Core mode, because iparam(60)=2 ===

 

But the files tmp_ooc.* are still present after calling pardiso with phase = -1

0 Kudos
Zhen_Z_Intel
Employee
621 Views

Hi Jens,

Please try with below solution:

1. build a config file "pardiso_ooc.cfg" in the same path of exe file with following content:

MKL_PARDISO_OOC_PATH = .\tmp_ooc
MKL_PARDISO_OOC_MAX_CORE_SIZE = 2000
MKL_PARDISO_OOC_MAX_SWAP_SIZE = 10

2. Now, reopen cmd. For generate temporary file, set MKL_PARDISO_OOC_KEEP_FILE=0, the program will generate files "tmp_ooc.*".

3. For deleting those file, you do not need to change config file, just reset MKL_PARDISO_OOC_KEEP_FILE =1, the program will firstly read env variable "MKL_PARDISO_OOC_KEEP_FILE" then, read config file. And all files named "tmp_ooc.*" will be removed.

0 Kudos
Jens_E_
New Contributor I
621 Views

Got it to work - thanks!

0 Kudos
Reply