Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Jens_E_
New Contributor I
42 Views

Can pardiso use the windows virtual memory?

Hi,

I know about the OOC functionality, but if I just want to use the in-core option (iparm(60) = 0), how can I make sure pardiso uses virtual memory (windows 7)? In a large solve with 6 million unknowns, I get the error code -2. After phase 1 I calculate the memory requirement from pardiso as around 30gb, which is more than my available ram, but much less than my available virtual memory. 

Related to this is the following question: what is the exact criterion which causes error code -2?

Best,
Jens



 

0 Kudos
2 Replies
Zhang_Z_Intel
Employee
42 Views

If in-core option is used, then after phase 1 calculation, you can determine the total peak memory consumed by MKL PARDISO with max(iparm(15), iparm(16)+iparm(17)). If this value is larger than the size of your RAM then it gives error code -2. 

To use the virtual memory for in-core mode, you probably can try this:

  • Set impar(60) = 1
  • Set env-variable MKL_PARDISO_OOC_MAX_CORE_SIZE to a size close to but smaller than the size of your RAM (in MB). By default this env-variable is 2000 MB.
  • Set env-variable MKL_PARDISO_OOC_MAX_SWAP_SIZE to something close to but smaller than the size of your virtual memory (in MB). By default this env-variable is 0MB.

Read details here: https://software.intel.com/en-us/node/470298#IPARM60 

Jens_E_
New Contributor I
42 Views

Thanks - I have now revisited this issue. 

Will this work only if iparm(60)=1, or also if iparm(60)=2?

https://software.intel.com/en-us/node/470298#IPARM60  states that "If the total peak memory needed for storing the local arrays is more than MKL_PARDISO_OOC_MAX_CORE_SIZE, increase MKL_PARDISO_OOC_MAX_CORE_SIZEif possible." Is this a fundamental limitation, or is it possible to use virtual memory also for the amount of data required by pardiso to stay in core?

 

Jens

Reply