Sarah,
You are probably running out of 32-bit integer index space. By default FORTRAN
uses 32-bit signed integers, and since 50000^2 > 2^31, for the 50000 size
matrix you could be accessing an array with an illegal index, which would cause
the seg fault. The way around this is to recompile LAPACK, BLAS and your
application with 64-bit (integer*8) default integer types. For example, with
gfortran the option is -fdefault-integer-8.
Regards,
Rodney
On Apr 27, 2012, at 9:29 AM, <sarah.wulf@Domain.Removed> wrote:
Dear Lapack Team,
I have a question concerning internal restrictions according to the
size of the matrices.
I am using SSYEVX and my code works well with matrix dimensions up to
30000x30000 using real*4 (less than 4GB memory).
I have tried to enlarge the dimension to 50000 or 70000. After approx.
10 hours calculation after calling SSYEVX the only result is a
segmentation fault. I expected the need of about 12 to 20 GB RAM. Are
there any restrictions?
I am using a node of a compute cluster with 256 GB RAM, AMD Opteron
processor and CentOS 64bit Linux system. Below you can see an extract
of my program.
Thank you in advance. I am looking forward to read from you. I really
could need some help.
Kind regards,
Sarah
IMPLICIT NONE
integer*4 dim,lwork,liwork,nfdim
PARAMETER (dim=71000)
PARAMETER (lwork= 80000000)
PARAMETER (liwork=80000000)
PARAMETER (nfdim=71000)
real*4 C(dim,dim),xx(dim,nfdim)
real*4 work(lwork),lambda(dim)
real*4 abstol,vl,vu
integer*4 iwork(liwork),mm,il,iu,ifail(dim),ier
C set up of matrix C ......, nmax <= dim
call SSYEVX('V','I','U',nmax,c,dim,
1 vl,vu,il,iu,abstol,mm,lambda,xx,dim,work,lwork,iwork,ifail,ier)
--
Sarah F. Wulf
CellNetworks-Cluster of Excellence (EXC81), BioQuant,
Heidelberg University
Im Neuenheimer Feld 267
69120 Heidelberg, Germany
Tel. +49-(0)6221-5451349
e-mail sarah.wulf@Domain.Removed
_______________________________________________
Lapack mailing list
Lapack@Domain.Removed
http://lists.eecs.utk.edu/mailman/listinfo/lapack
|