- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

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

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.

All the best

Sergey

*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

`info=1`, the routine is interrupted because there is no space in the arrays

`acoo`,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

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

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

--Gennady

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

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

Can you check for 64-bit in the meanwhile ?

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

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

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.

All the best

Sergey

*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.

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