Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Beginner
19 Views

Problem using pardiso in 64 bit build

hi.

i have a strange problem using the pardiso solver. i have a 32bit (vc++2008) application that uses the pardiso solverand which works fine. i just recompiled the app for 64bits: in this version (no code changes), pardisoemmediately returns '-3' (reordering problems.) - iow: nothing gets solved.

i couldn't find any documentation for the error code besides 'a reordering problem occured'.

i already verified that the matrices passed to the 32bit and the 64bit version are completely identical. (just to make sure the input data did not get garbled due to some other error introduced by compiling for 64bit.). they _are_ identical.

any suggestions what might be causing this behaviour in the 64bit build ?

WM_THX
-thomas woelfer



0 Kudos
10 Replies
Highlighted
Moderator
19 Views

please check first by the Linker Adviserwhich libraries are required to be linked with MKL.
if it doesn't help - please give us the example.
--Gennady
0 Kudos
Highlighted
Black Belt
19 Views

Details matter: did you use 32-bit or 64-bit integers in your 64-bit build? What compiler options did you use?

Please show at least the calls to Pardiso and the declarations of the arguments in the calls.
0 Kudos
Highlighted
Beginner
19 Views

Gennady,

according to the linker adviser, i'm linking with the correct libraries.

WM_THX
-thomas
0 Kudos
Highlighted
Beginner
19 Views

i'm using 32bit integers in the 64bit build.

compiler options:

/I"C:\Statik\kernel\include" /Zi /nologo /W4 /WX- /Od /D "WIN32" /D "_WINDOWS" /D "_DEBUG" /D "_AFXEXT" /D "WINVER=0x500" /D "XFEM_DLL_EXPORTS" /D "_VC80_UPGRADE=0x0710" /D "_WINDLL" /D "_MBCS" /D "_AFXDLL" /Gm- /EHa /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fp"DebugX64\kernel.native.calculations.fem64.pch" /Fa"DebugX64" /Fo"DebugX64" /Fd"DebugX64\vc100.pdb" /Gd /errorReport:queue

prototype for the call:

extern

"C" int PARDISO( INT_PTR*, int*, int*, int*, int*, int*, double*, int*, int*, int*, int*, int*, int*, double*, double*, int*);


call:

int

FEMatrix::Pardiso( int targetPhase, double* rightHandSide, double* solution, int &uEquitation )

{

uEquitation=0;

if ( pardisoPhase == -1 ) PardisoInit();

int phase = pardisoPhase * 10 + targetPhase;

int mtype = 2; /* Real symmetric positive definite matrix */

int nrhs = 1; /* Number of right hand sides. */

int maxfct = 1; /* Maximum number of numerical factorizations. */

int mnum = 1; /* Which factorization to use. */

int msglvl = 0; /* Print statistical information in file */

int error = 0; /* Initialize error flag */

#ifdef

DBG_DUMP_INCLUDED

Dump();

#endif

PARDISO( pardisoInternalMemory, &maxfct, &mnum, &mtype, &phase, &dimension,

this->values, this->rowStartIndices, this->columIndices, NULL, &nrhs,

pardisoControl, &msglvl, rightHandSide, solution, &error );

if ( error )

{

PardisoCleanup();

uEquitation = pardisoControl[29];

}

else

{

pardisoPhase = targetPhase;

}

return error;

}



WM_THX
-thomas
0 Kudos
Highlighted
Beginner
19 Views

i apologize for the formatting... the editor did this all by itself ...
0 Kudos
Highlighted
Black Belt
19 Views

It would be useful if you could post, as an attachment, a complete and self-contained example code that demonstrates the problem.
0 Kudos
Highlighted
Beginner
19 Views

yes, i'm sure that would be useful. i'll try to build such a sample. this will be a lot of work though - the current usage scenario is embedded in a rather _huge_ application... (and as it is the case with such things, i have doubts the problem will show up in the "small" example).

WM_THX
-thomas
0 Kudos
Highlighted
Beginner
19 Views

just in case someone else is having similar problems, here's what i did:

instead linking mkl statically, i linked it dynamically. the problems went away.

WM_FYI
-thomas woelfer
0 Kudos
Highlighted
Moderator
19 Views

Thomas, we know nothing about the similar problem. are you sure that you have only one set of mkl binaries on your system?
0 Kudos
Highlighted
Beginner
19 Views

Gennady,

yes. i'm sure.

WM_FYI
-thomas
0 Kudos