size limitation with the MKL library

size limitation with the MKL library

mjrodri@mat.upv.es's picture



Hello


We are working with the Intel-MKL free evaluation library. (We also use Compaq Visual Fortran 6.6 as you recommend). The problem we want to solve is to calculate the pseudoinverse matrix by using the DGESVD routine (i . e. single value decomposition with the double precision option). However we have experience linking problem as the dimension of the matrix we must work is very high (200.000x 200.000).


There are no problems when linking for a 3000x 3000 matrix and the programs run. We have no problem. When we try to increase the NMAX, MMAX parameters up to 4000x4000 matrix dimensions, we obtain the following warning message:


LNK4084: total image size 86579096 exceeds max <268435456>; image may not run


Our questions is Where is the limit INTEL MKL library and Compaq Visual Fortran 6.6 for the keys we have explained above?


The limit is only in the RAM of the machine where its running or if we get another bigger machine then We`ll still have problems with Intel-MKL library and visual Fortran ?


It is very important for us to know if for the dimension matrix we need to work (200.000x200.000) the limits are imposed by the machine performances or by also Intel MKL library and Compaq Visual Fortran.


Thank you very much in advance for your interest




PD: We will be very thankfull if you could advice us in the way we can manage with this problem



2 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.
Community Admin's picture

It is not clear why you should get an error for trying to run a 4000x4000 problem. But I do know that you cannot build a program with CVF using LAPACK that will work on a 200000Kx200000K problem. On a 32-bit operating system you are limited to 31 bits of address space which is the number the linker gave you - 268435456 double precision words. The problem you want to solve requires at least 5 times the memory that can be addresses on a 32-bit operating system.

You will need a 64-bit processor - Intel's EM64T and Itanium processors come to mind - to address that much memory. And you will need a compiler that will support addressing that much memory. Intel's compiler on both Windows and Linux meet that challenge.

The MKL version supporting EM64T will handle large addresses just fine. We have solved very large LINPACK problems with the library, but not as large as you have proplsed.

I hope these comments are of help to you.

Bruce

Login to leave a comment.