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

PARDISO using > 2GB results in segfault

xilin1
Beginner
929 Views

Hi,

I'm using the portland fortran 90 compiler (pgf90) to link with PARDISO in the MKL 10.0 library. When the memory needed by PARDISO exceeds 2 GB, I get a segmentation fault.

My compiler flags are

-O0 -g -Mbounds -Mlarge_arrays -mcmodel=medium

My link flags are

-tp=k8-64 -mp -Mcache_align -Mlarge_arrays -mcmodel=medium -L$(MKL_LINK) -lmkl_solver -lmkl_em64t -lguide -lacml_mp -lacml

As you can see, I've tried changing the memory model to medium, but to no avail. Is this error occuring because I'm using the portland compiler and not the intel compiler? If so, is there a workaround?

Xi Lin

edit: I also removed the stack limit by typing

ulimit -s unlimited

0 Kudos
8 Replies
xilin1
Beginner
929 Views

If it helps here is the output

=== PARDISO is running in In-Core mode, because iparam(60)=0 ===


================ PARDISO: solving a complex symmetr. system ================


Summary PARDISO: ( reorder to reorder )
================

Times:
======
Time fulladj: 0.182484 s
Time reorder: 9.964473 s
Time symbfct: 1.355061 s
Time malloc : 0.084384 s
Time total : 12.561450 s total - sum: 0.975047 s

Statistics:
===========
< Parallel Direct Factorization with #processors: > 1
< Numerical Factorization with Level-3 BLAS performance >

< Linear system Ax = b>
#equations: 419455
#non-zeros in A: 6888943
non-zeros in A (%): 0.003915

#right-hand sides: 1

< Factors L and U >
#columns for each panel: 80
#independent subgraphs: 0
< Preprocessing with state of the art partitioning metis>
#supernodes: 84004
size of largest supernode: 5855
number of nonzeros in L 284447593
number of nonzeros in U 1
number of nonzeros in L+U 284447594
Reordering completed ...
Number of nonzeros in factors = 284447594
Number of factorization MFLOPS = 2907584
[nyx424:00634] *** Process received signal ***
[nyx424:00634] Signal: Segmentation fault (11)
[nyx424:00634] Signal code: Address not mapped (1)
[nyx424:00634] Failing at address: 0x154511bf8
[nyx424:00634] *** End of error message ***
mpirun noticed that job rank 0 with PID 634 on node nyx424 exited on signal 11 (Segmentation fault).

0 Kudos
Gennady_F_Intel
Moderator
929 Views

1. its not clear what version are you using. Can you get your mkl version package ID? You can find it into $MKLROOT/doc/mklsupport.txt file.

2. At the first glance you have to change your linking line. Please look at userguide manual you can find there all info and examples you need (for example Chapter #5)

--Gennady

0 Kudos
xilin1
Beginner
929 Views

1. its not clear what version are you using. Can you get your mkl version package ID? You can find it into $MKLROOT/doc/mklsupport.txt file.

Package ID: l_mkl_p_10.1.0.015
Package Contents: Intel Math Kernel Library 10.1 for Linux*

0 Kudos
xilin1
Beginner
929 Views

2. At the first glance you have to change your linking line. Please look at userguide manual you can find there all info and examples you need (for example Chapter #5)

--Gennady

I changed my linking to

-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lguide

and it still gives the same errors.

0 Kudos
Gennady_F_Intel
Moderator
929 Views

Ok, I see.

This version ( 10.1 ) supports PGI compiler, therefore you need to link libmkl_pgi_thread.a or libmkl_sequential.a ( in this case all treading from Intel MKL calls will be removed). Some more info about Threading Layer you can find into Table 5-3.

--Gennady

0 Kudos
xilin1
Beginner
929 Views

Ok, I see.

This version ( 10.1 ) supports PGI compiler, therefore you need to link libmkl_pgi_thread.a or libmkl_sequential.a ( in this case all treading from Intel MKL calls will be removed). Some more info about Threading Layer you can find into Table 5-3.

--Gennady

OK, I tried linking with libmkl_pgi_thread but the same problem occured. I also tried using ilp but that also did not fix the problem. In both cases, smaller matrices were able to be solved.

0 Kudos
xilin1
Beginner
929 Views

Ok, I see.

This version ( 10.1 ) supports PGI compiler, therefore you need to link libmkl_pgi_thread.a or libmkl_sequential.a ( in this case all treading from Intel MKL calls will be removed). Some more info about Threading Layer you can find into Table 5-3.

--Gennady

I also tried libmkl_sequential and that did not work either.

0 Kudos
xilin1
Beginner
929 Views

Ok, I see.

This version ( 10.1 ) supports PGI compiler, therefore you need to link libmkl_pgi_thread.a or libmkl_sequential.a ( in this case all treading from Intel MKL calls will be removed). Some more info about Threading Layer you can find into Table 5-3.

--Gennady

is there anything else i need to change when using libmkl_pgi_thread instead of libmkl_intel_thread? i find that when using pgi_thread, setting MKL_NUM_THREADS to anything other than 1 crashes the program. Using intel_thread with more than 1 proc is fine.
0 Kudos
Reply