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

Pardiso can't get memory in Linux

Wesley_M_
Beginner
313 Views
I am having trouble getting a code to work in a Linux environment. I can get the code to link and run, but when I run the code, which contains Pardiso, I get error code -2 (Not Enough Memory) during the factorization stage. The Paradiso example (with dynamic linking) that comes with MKL appears to work correctly on this system, however. I suspect I may not be linking something correctly for my executable. I just want to ask the more knowledgeable individuals here is there is something obvious that I am omitting? I suppose there could be other reasons I am getting the error. I'm solving an extremely small system in this case (60 dof FEA test problem), so problem size is definitely not the reason that I am getting the error. Also, the same code works fine on other platforms (Windows, Mac OS)

My link commad is the following (obviously using intel compilers for this project):

icpc -o ~/bin/executable -L/g/software/intel/mkl/10.2.5.035/lib/em64t -lmkl_intel_ilp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm -openmp

If there isn't something obvious here, then I suspect that it may be an issue particular to the system I am on. I'd just like to eliminate this as a possible cause for the problem.

-Ross McLendon
Texas A&M University
0 Kudos
3 Replies
Gennady_F_Intel
Moderator
313 Views

Hello Ross,

All are ok with the your linking line.

1)The cause of the problem you encountered not enough RAM memory available.You can to estimate how much memory is needed for factorization and solver step: a rough estimate for the total double precision memory consumption in Kbytes for factorization and solver steps can be computed afterthe reordering and symbolic factorization stepaccording to the formula: Mem Required = max(iparm(15), iparm(16) + iparm(18)*8/1024)and Mem Required < RAM memory available.

2) you can try to use out-of-core version ( set iaprm(60) == 2. See more detail in Reference Manual ortry to decrease the size of input task to fit the task size with RAM available.

--Gennady

0 Kudos
Wesley_M_
Beginner
313 Views
Thank you for the reply and for confirming that I am linking things correctly. The problem must be something specific to the system I am running on, so I'll try and work it out with the group that manages the system. As I mentioned, the problem size is definitely not the problem, as this test problem is a 60 equation sparse system running on a compute node with 48GB of RAM available.
0 Kudos
Artem_V_Intel
Employee
313 Views
Hello Ross,

Could you please provide the test case for this issue?

I saw that you linked against ILP64 library (-lmkl_intel_ilp64). Did youspecified -DMKL_ILP64 during compilation?

Best regards,
Artem
0 Kudos
Reply