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

dgetrf, access violation, MKL7.2, Intel C++ Compiler

maniac83
Beginner
395 Views

Hello.

Im working with dgetrf (lapack function)function in my project.

Unfortunately I have some problem.

In case when input array has less than (around) 2000*500 double type elements function works correctly but when array is bigger I always get access violation exception.

In case when I get access violation exception,thefunction works some time (around one second) before it crashes.

Does dgetrf function support large arrays (with more than 1000000 elements)?

--------------------------------------------------------

MKL 7.2

Intel C++ Compiler 10 integrated with VS 2005;

Intel Core 2 Quad processor, 4GB RAM , XP

0 Kudos
3 Replies
Michael_C_Intel4
Employee
395 Views

Hello.

Of course dgetrf works on large matrices. The issue could be in the matrix source. If the big matrix is allocated on stack there could be a failure just because of exceeding stack size. It looks like it's the case, and you have exceeded 8M stack. Please, verify how you allocate the matrix. There should be static allocation or dynamic allocation on heap, no allocation on stack.

Michael.

0 Kudos
maniac83
Beginner
395 Views

Hello,

Thx for help.

The problem was on my side and it is solved now.

Unfortunately, something is stillwrong.

Im using this function with portion of data loaded from file (2D array) into vector (1D array) column by column.

Concurrently, Im using the same data with MATLAB (to compare the results).

The results from C++ program are wrong.

Im also getting the warning that:

The factorization has been completed, but the factor U is exactly singular, and division by zero will occur if it is used to solve a system of equations .

Ive tried to use different data, generated randomly in MATLAB (the format of file, size of the array and type of values are identical) and saved into a file. In this case results were identical(?!).

MATLAB uses also Lapack routines to make his computation so the results always should be same.

Do you have any idea what can be wrong?

0 Kudos
Michael_C_Intel4
Employee
395 Views

To understand what's wrongit would be niceto see the code. Probably thegood idea is to submit an issue with a test case at Intel premier support (http://premier.intel.com).

0 Kudos
Reply