Author Topic: Memory release in Pardiso Solver  (Read 4169 times)

Brisk

  • Jr. Member
  • **
  • Posts: 26
Memory release in Pardiso Solver
« on: July 13, 2017, 05:52:23 AM »
Dear All,

I think that the memory should be released after each solving step. If not so, the memory allocation would be huge after sever time steps for a model with thousands of nodes. Thus, I believe it's a good idea to add

Code: [Select]
phase = -1               
          call pardiso(pt, maxfct, mnum, mtype, phase, neq, ddum, idum,
     1                 idum,idum,nrhs,iparm, istats, ddum, ddum, error)

after
Code: [Select]
        setvar = palloc(229,'USOL5',0,2)
in usolve.f of FEAP 8.4 user interface to pardiso solver.

Prof. R.L. Taylor

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 2649
Re: Memory release in Pardiso Solver
« Reply #1 on: July 13, 2017, 06:39:46 AM »
Do you give the 'pard' commands more than once?  You should not!

JStorm

  • Sr. Member
  • ****
  • Posts: 250
Re: Memory release in Pardiso Solver
« Reply #2 on: August 30, 2017, 06:49:13 AM »
I have used the interface from http://feap.berkeley.edu/forum/index.php?topic=761.msg2050#msg2050 with some minor corrections. I also observe that the memory is increasing with every iteration. I'm not sure whether the pardiso memory needs to be completely released after every solution and pardisoinit should be called at every increment or pardisoinit should only called once for all and the memory only needs be released at the very end.

The latter one has caused that pardiso fails with an error.

Does anyone know what is the right usage of MKL Pardiso?