Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
28435 Discussions

Problem with large matrix diagonalization using LAPACK subroutine

sk_n_
Beginner
750 Views

Hi,

I am using LAPACK (DSYEV) subroutine to diagonalize a real symmetric sparse matrix of dimension 20 X 20 using intel fortran complier. For this matrix dimension, the DSYEV subroutine is giving me both the eigenvalue and eigenvector without any errors. However, as soon as my matrix dimension goes to 20**4 X 20**4 then I am getting this following errors after compiling with this command-

ifort -mkl mycode.f90 

The errors are the following

/tmp/ifortbT6Gij.o: In function `MAIN__':
mycode.f90:(.text+0x47): relocation truncated to fit: R_X86_64_PC32 against `.bss'
mycode.f90:(.text+0x52): relocation truncated to fit: R_X86_64_PC32 against `.bss'
mycode.f90:(.text+0xd28): relocation truncated to fit: R_X86_64_PC32 against `.bss'
mycode.f90:(.text+0xd44): relocation truncated to fit: R_X86_64_PC32 against `.bss'
mycode.f90:(.text+0xd4c): relocation truncated to fit: R_X86_64_PC32 against `.bss'
mycode.f90:(.text+0xd54): relocation truncated to fit: R_X86_64_PC32 against `.bss'
mycode.f90:(.text+0xd78): relocation truncated to fit: R_X86_64_PC32 against `.bss'
mycode.f90:(.text+0xd80): relocation truncated to fit: R_X86_64_PC32 against `.bss'
mycode.f90:(.text+0xd9c): relocation truncated to fit: R_X86_64_PC32 against `.bss'
mycode.f90:(.text+0xda4): relocation truncated to fit: R_X86_64_PC32 against `.bss'
mycode.f90:(.text+0xdc0): additional relocation overflows omitted from the output

After getting this errors, I have decided to allocate the memory using allocate and deallocate command. After allocating the matrix and other arrays, 

although it is compiling successfully but when it is going to execute it is giving me the error "NOT ENOUGH MEMORY". 

 

I am using latest version of the intel compiler that is Intel parallel studie XE 2018. 

Is there any critical limit for the matrix dimension beyond which LAPACK can not solve or is there anything I am not taking care of it.

please help me to sort out this problem.

thanks,

noor nabi

0 Kudos
1 Reply
Ferdinand_T_
New Contributor II
749 Views

Hi noor nabi,

seeing that you didn't get an informed response yet, maybe it helps if you clarified

  • whether the error occurs during the initial allocations (i.e. as you might infer from STAT and ERRMSG diagnostics of the ALLOCATE(...) statement), or rather inside the DSYEV routine itself?
  • Since you allocate a ~200GB matrix and other arrays as well, is it unreasonable to assume the error message is right and you indeed ran out of primary memory?

Best regards
Ferdinand

 

 

 

 

0 Kudos
Reply