- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Could you provide us a simple test case that can reproduce the problem, so that we can use it for investigation?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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 ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Got it to work - thanks!
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page