- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I'm in the process of porting something from Visual Studio to XCode on the Mac. I have a piece of Pardiso code (below) that works fine on Windows but is crashing (EXC_BAD_ACCESS) on the _second_ time through the solve code (the second call to pardiso in the second round). The results from the first call are fine. As per a previous post, I changed the reporting (iMsgLvl) to zero; that didn't help. I've checked that the first round gives a valid answer. I don't re-initialize the PT data and I don't do any memory frees (problems I fixed to get it working under Windows).
Any help would be appreciated... :)
XCode: version 3
Compiler: gcc 4.0.1
Intel libraries: 10.1.014, 32 bit
WINbool
FITTools_LS::Solve_sparse(const WINbool in_bPrintProgress)
{
static WINbool s_bInit = FALSE;
static void *s_aPt[64];
static int s_aiParams[64];
int iMaxFct = 1, iMNum = 1, iMType = 11, iPhase = 11, iMsgLvl = 0, iErr = 0, iDummy = 0;
double dDummy = 0.0;
if ( s_bInit == FALSE ) {
for ( int i = 0; i s_aPt = 0;
s_aiParams = 0;
}
s_bInit = TRUE;
s_aiParams[0] = 0;
s_aiParams[2] = omp_get_max_threads();
}
iPhase = 11;
pardiso_( s_aPt, &iMaxFct, &iMNum, &iMType, &iPhase,
&m_iNDesired, &m_adDesiredData[0], &m_aiRowIndex[0], &m_aiColIndex[0], &iDummy, &m_iNDimension,
s_aiParams, &iMsgLvl, &dDummy, &dDummy, &iErr );
if ( iErr != 0 ) {
TRACE("Error in Symbolic Factorization %d %d ", iErr, s_aiParams[20]);
return FALSE;
}
if ( in_bPrintProgress ) {
TRACE("Reordering complete ");
TRACE("Number of non-zero factors %d ", s_aiParams[17] );
TRACE("Number of factorizations %d ", s_aiParams[18] );
}
// Dies here second time through
iPhase = 22;
pardiso_( s_aPt, &iMaxFct, &iMNum, &iMType, &iPhase,
&m_iNDesired, &m_adDesiredData[0], &m_aiRowIndex[0], &m_aiColIndex[0], &iDummy, &m_iNDimension,
s_aiParams, &iMsgLvl, &dDummy, &dDummy, &iErr );
if ( iErr != 0 ) {
TRACE("Error in Numerical Factorization %d ", iErr);
return FALSE;
}
if ( in_bPrintProgress ) {
TRACE("Factorization complete ");
}
iPhase = 33;
pardiso_( s_aPt, &iMaxFct, &iMNum, &iMType, &iPhase,
&m_iNDesired, &m_adDesiredData[0], &m_aiRowIndex[0], &m_aiColIndex[0], NULL, &m_iNDimension,
s_aiParams, &iMsgLvl, &m_adRhsData[0], &m_adSolutionData[0], &iErr );
if ( in_bPrintProgress ) {
if ( iErr == 0 ) {
TRACE("Time %f Iterations %d ", dDiff, s_aiParams[20]);
}
}
if ( iErr == 0 ) {
return TRUE;
}
TRACE("Failed: time %f iterations %d Error", dDiff, iErr );
switch ( -iErr ) {
case 1 : TRACE("Large fluctuations in residual "); break;
case 2 : TRACE("Slow convergence "); break;
case 3 : TRACE("Stopping criteria not reached "); break;
case 4 : TRACE("Perturbed pivots caused iterative refinement "); break;
case 5 : TRACE("Try again with iparam[3] = 0 "); break;
}
return FALSE;
}
I'm in the process of porting something from Visual Studio to XCode on the Mac. I have a piece of Pardiso code (below) that works fine on Windows but is crashing (EXC_BAD_ACCESS) on the _second_ time through the solve code (the second call to pardiso in the second round). The results from the first call are fine. As per a previous post, I changed the reporting (iMsgLvl) to zero; that didn't help. I've checked that the first round gives a valid answer. I don't re-initialize the PT data and I don't do any memory frees (problems I fixed to get it working under Windows).
Any help would be appreciated... :)
XCode: version 3
Compiler: gcc 4.0.1
Intel libraries: 10.1.014, 32 bit
WINbool
FITTools_LS::Solve_sparse(const WINbool in_bPrintProgress)
{
static WINbool s_bInit = FALSE;
static void *s_aPt[64];
static int s_aiParams[64];
int iMaxFct = 1, iMNum = 1, iMType = 11, iPhase = 11, iMsgLvl = 0, iErr = 0, iDummy = 0;
double dDummy = 0.0;
if ( s_bInit == FALSE ) {
for ( int i = 0; i s_aPt = 0;
s_aiParams = 0;
}
s_bInit = TRUE;
s_aiParams[0] = 0;
s_aiParams[2] = omp_get_max_threads();
}
iPhase = 11;
pardiso_( s_aPt, &iMaxFct, &iMNum, &iMType, &iPhase,
&m_iNDesired, &m_adDesiredData[0], &m_aiRowIndex[0], &m_aiColIndex[0], &iDummy, &m_iNDimension,
s_aiParams, &iMsgLvl, &dDummy, &dDummy, &iErr );
if ( iErr != 0 ) {
TRACE("Error in Symbolic Factorization %d %d ", iErr, s_aiParams[20]);
return FALSE;
}
if ( in_bPrintProgress ) {
TRACE("Reordering complete ");
TRACE("Number of non-zero factors %d ", s_aiParams[17] );
TRACE("Number of factorizations %d ", s_aiParams[18] );
}
// Dies here second time through
iPhase = 22;
pardiso_( s_aPt, &iMaxFct, &iMNum, &iMType, &iPhase,
&m_iNDesired, &m_adDesiredData[0], &m_aiRowIndex[0], &m_aiColIndex[0], &iDummy, &m_iNDimension,
s_aiParams, &iMsgLvl, &dDummy, &dDummy, &iErr );
if ( iErr != 0 ) {
TRACE("Error in Numerical Factorization %d ", iErr);
return FALSE;
}
if ( in_bPrintProgress ) {
TRACE("Factorization complete ");
}
iPhase = 33;
pardiso_( s_aPt, &iMaxFct, &iMNum, &iMType, &iPhase,
&m_iNDesired, &m_adDesiredData[0], &m_aiRowIndex[0], &m_aiColIndex[0], NULL, &m_iNDimension,
s_aiParams, &iMsgLvl, &m_adRhsData[0], &m_adSolutionData[0], &iErr );
if ( in_bPrintProgress ) {
if ( iErr == 0 ) {
TRACE("Time %f Iterations %d ", dDiff, s_aiParams[20]);
}
}
if ( iErr == 0 ) {
return TRUE;
}
TRACE("Failed: time %f iterations %d Error", dDiff, iErr );
switch ( -iErr ) {
case 1 : TRACE("Large fluctuations in residual "); break;
case 2 : TRACE("Slow convergence "); break;
case 3 : TRACE("Stopping criteria not reached "); break;
case 4 : TRACE("Perturbed pivots caused iterative refinement "); break;
case 5 : TRACE("Try again with iparam[3] = 0 "); break;
}
return FALSE;
}
Link Copied
2 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Do you mean you're using MKL 10.0(.014)? (Check mklsupport.txt in the doc directory). Your problem may have to do with some problems with 10.0 on 32-bit systems with Leopard. If that is your problem, you could try Update 3 which fixed that problem.
-Todd
-Todd
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Looks like I am running the latest version:
Package ID: m_mkl_p_10.0.3.020
Package Contents: Intel Math Kernel Library 10.0 Update 3 for Mac OS* X
according to mklsupport.txt. Sigh.
--Cindy
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page