- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I am trying to understand the meaning of this error; I had thought I had followed the example properly but I guess not...
My goal is to convert COO matrix data to a sorted CSR format that PARDISO can use. Here are the relevant lines of code:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
integer,intent(in):: n,nz
integer,intent(in)::jrn(n),jcn(n)
doubleprecision,intent(in):: matA_coo(nz), vB(n)
! Row index and colum pointer - CSR format
integer,allocatable::row_ptr(:),col_ind(:)
! Sparse matrix data - CSR format
double precision,allocatable::matA_csr(:)
! For conversion utility
integer info, job(8)
! Local storage of sparse matrix
allocate(col_ind(nz),row_ptr(n+1),matA_csr(nz))
! Convert triplet/COO data to CSR format
job(1)=2 ! convert COO to CSR and sort
job(2)=1 ! 1-based indexing in CSR
job(3)=1 ! 1-based indexing in COO
job(5)=nz ! # of non-zeros in matrix A
job(6)=0 ! Fill all CSR arrays
call mkl_dcsrcoo(job, n, matA_csr, col_ind, row_ptr, nz, matA_coo, jrn, jcn, info)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
The code generates a MKL ERROR as per the subject line. I would guess that there is something wrong with my job variable but I don't see it.
I am trying to understand the meaning of this error; I had thought I had followed the example properly but I guess not...
My goal is to convert COO matrix data to a sorted CSR format that PARDISO can use. Here are the relevant lines of code:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
integer,intent(in):: n,nz
integer,intent(in)::jrn(n),jcn(n)
doubleprecision,intent(in):: matA_coo(nz), vB(n)
! Row index and colum pointer - CSR format
integer,allocatable::row_ptr(:),col_ind(:)
! Sparse matrix data - CSR format
double precision,allocatable::matA_csr(:)
! For conversion utility
integer info, job(8)
! Local storage of sparse matrix
allocate(col_ind(nz),row_ptr(n+1),matA_csr(nz))
! Convert triplet/COO data to CSR format
job(1)=2 ! convert COO to CSR and sort
job(2)=1 ! 1-based indexing in CSR
job(3)=1 ! 1-based indexing in COO
job(5)=nz ! # of non-zeros in matrix A
job(6)=0 ! Fill all CSR arrays
call mkl_dcsrcoo(job, n, matA_csr, col_ind, row_ptr, nz, matA_coo, jrn, jcn, info)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
The code generates a MKL ERROR as per the subject line. I would guess that there is something wrong with my job variable but I don't see it.
1 Solution
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Michel,
The problem comes fromyour setting
job(1)=2 ! convert COO to CSR and sort
The possibility of conversion with follow-up sorting was first integrated in 10.3Gold and their updates. MKL 10.2.7 and earlier supports only two values of job(1) (see page 338 of MKL 10.2.6 User Guide):
All the best
Sergey
The problem comes fromyour setting
job(1)=2 ! convert COO to CSR and sort
The possibility of conversion with follow-up sorting was first integrated in 10.3Gold and their updates. MKL 10.2.7 and earlier supports only two values of job(1) (see page 338 of MKL 10.2.6 User Guide):
If job(1)=0, the matrix in the CSR format is converted to the coordinate format;
if job(1)=1, the matrix in the coordinate format is converted to the CSR format.
So the converter from MKL 10.2.7 works correctly.All the best
Sergey
Link Copied
10 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ifinfo=1, the routine is interrupted because there is no space in the arraysacoo,rowind,colindaccording to the valuenzmax.
please try to allocate these arrays accordingly
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This line looks incorrect:
integer,intent(in)::jrn(n),jcn(n)
jcn and jrn arrays each must have nz elements.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Indeed, that was a stupid mistake; the array isn't used directly in this routine so I did not spot it before. The declaration is OK in the subroutine that actually uses the array so I guess I was lucky that passing the pointer here was sufficient in my old code.
Unfortunately, fixing this doesn"t solve the problem and I get the same error.
As for the memory allocation, it is done one level up from this subroutine as allocate(jrn(nz),jcn(nz),matA_coo(nz)) so I think it should be OK. The output value of info is 0 so that is not telling me anything useful either.
BTW, I am using version 11.1.067
Unfortunately, fixing this doesn"t solve the problem and I get the same error.
As for the memory allocation, it is done one level up from this subroutine as allocate(jrn(nz),jcn(nz),matA_coo(nz)) so I think it should be OK. The output value of info is 0 so that is not telling me anything useful either.
BTW, I am using version 11.1.067
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Then could you please provide the comprehensive example which we can build and check the behavior?
--Gennady
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Michel,
I reproduced the problem with this version of MKL ( the Compiler PRO v.11.0.67 contains version of MKL 10.2 Update6 ) even on win32 system.
With the latest version 10.3 uipdate3, the problem is dissapeared ( at least with windows32 ).
please see here the log file I got with the 10.3Update3:
+++++++++++++++
matrix order= 6
matrix fill= 19
info= 0
idum= 19
1 1 1 10.0000000000000
2 1 5 -2.00000000000000
3 2 1 3.00000000000000
4 2 2 9.00000000000000
5 2 6 3.00000000000000
6 3 2 7.00000000000000
7 3 3 8.00000000000000
8 3 4 7.00000000000000
9 4 1 3.00000000000000
10 4 3 8.00000000000000
11 4 4 7.00000000000000
12 4 5 5.00000000000000
13 5 2 8.00000000000000
14 5 4 9.00000000000000
15 5 5 9.00000000000000
16 5 6 13.0000000000000
17 6 2 4.00000000000000
18 6 5 2.00000000000000
19 6 6 -1.00000000000000
!!!!!!!!!!!!!!!!!!!!!!!!
1 3 6 9 13 17
20
!!!!!!!!!!!!!!!!!!!!!!!!
1 1 10.0000000000000
2 5 -2.00000000000000
3 1 3.00000000000000
4 2 9.00000000000000
5 6 3.00000000000000
6 2 7.00000000000000
7 3 8.00000000000000
8 4 7.00000000000000
9 1 3.00000000000000
10 3 8.00000000000000
11 4 7.00000000000000
12 5 5.00000000000000
13 2 8.00000000000000
14 4 9.00000000000000
15 5 9.00000000000000
16 6 13.0000000000000
17 2 4.00000000000000
18 5 2.00000000000000
19 6 -1.00000000000000
Press any key to continue . . .
--Gennady
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
OK, I will check if we have an update available or ask our IT guy to get it.
Can you check for 64-bit in the meanwhile ?
Can you check for 64-bit in the meanwhile ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
yes, win64 binaries produces the similar results with the latest 10.3. Update3.
there is one tips which may help You with the version which you use - could you please initialize
job(4)=2
and check if it will work on your side.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Same error with job(4)=2.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Michel,
The problem comes fromyour setting
job(1)=2 ! convert COO to CSR and sort
The possibility of conversion with follow-up sorting was first integrated in 10.3Gold and their updates. MKL 10.2.7 and earlier supports only two values of job(1) (see page 338 of MKL 10.2.6 User Guide):
All the best
Sergey
The problem comes fromyour setting
job(1)=2 ! convert COO to CSR and sort
The possibility of conversion with follow-up sorting was first integrated in 10.3Gold and their updates. MKL 10.2.7 and earlier supports only two values of job(1) (see page 338 of MKL 10.2.6 User Guide):
If job(1)=0, the matrix in the CSR format is converted to the coordinate format;
if job(1)=1, the matrix in the coordinate format is converted to the CSR format.
So the converter from MKL 10.2.7 works correctly.All the best
Sergey
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks. Just upgraded to XE2011 and it does indeed solve the problem.
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