"Access violation reading location" in Pardiso

"Access violation reading location" in Pardiso

Portrait de Guido Valerio

Hi all,

I'm having problems with the "Pardiso" subroutine in Intel Visual Fortran Composer XE 2011 Update 8.

I get an "access violation reading location" during the computation of the "non-zeros for LL^T factorization," at the very beginning of the analysis phase.

I guess the problem is related either to my MKL configuration or to the way I'm declaring some variables.

I'm attaching a sample project (a simplified version of the actual code).

I run Microsoft Visual Studio 2010 Version 10.040219.1 SP1Rel on Windows 7 SP1, with an Intel Xeon X5650.

The options I chose in the "Properties" window of my project are in the txt file "Properties".

The other text files are the data used by the project (the size of the matrices involved is also very small for practical reasons).

Thank you for your help!

5 posts / 0 nouveau(x)
Dernière contribution
Reportez-vous à notre Notice d'optimisation pour plus d'informations sur les choix et l'optimisation des performances dans les produits logiciels Intel.
Portrait de mecej4
Best Reply

You probably need to set IPARM(28) = 1 after calling PARDISOINIT and before calling PARDISO_SC. The default value which is set by the call to PARDISOINIT is 0, which is appropriate for double precision complex matrices, whereas your.program concerns itself with a single-precision complex matrix problem.

Until you get rid of errors in calling sequences, it would be prudent to check the error flags returned by PARDISO before continuing computations with the results set by each call.

Portrait de Guido Valerio

Thank you for your help,
The code seems to be working fine now!

Portrait de Guido Valerio

Another quick question.

Does PARDISO have problems if a complex and unsymmetric matrix happens to have specific symmetries?

I'm trying to use PARDISO with the following simple matrix:
a = (/ 1.0, 1.0, 1.0, 1.0, 1.0 /)
ja = (/ 1, 2, 3, 4, 5 /)
ia(1:5) = (/ 1, 2, 3, 4, 5, 0, 0 /)
ia(6:915) = 0
ia(916) = 6

It's a 915x915 matrix whit a 5x5 diagonal block (a 5x5 unit matrix) in the first 5 diagonal entries.

The output of pardiso says:

Input check: ia(neqns+1)_new 5 old 0 are incompatible
Input parameters: inconsistent error=8 max_fac_store_in: 1
matrix_number_in: 1 matrix_type_in : 13
ido_in : 13 neqns_in : 915
ia(neqns_in+1)-1 : 5 nb_in : 1

I'm calling pardiso with the same code I have uploaded in the first post
(this time I use single precision, and for more complex matrices it works fine).

Thank you

Portrait de mecej4

Does PARDISO have problems if a complex and unsymmetric matrix happens to have specific symmetries?
To answer that would lead one to indulge oneself in idle speculation.

Your data initializations do not correctly describe the packed column form of the diagonal matrix. The MKL Reference should be consulted regarding compact columns storage conventions.


ia(1:5) = (/ 1, 2, 3, 4, 5 /); ia(6:n+1)=nnz+1

ja(1:5) = (/ 1, 2, 3, 4, 5 /)

a(1:5) = (/ 1d0, 1d0, 1d0, 1d0, 1d0 /); a(6:nnz)=0d0

Connectez-vous pour laisser un commentaire.