Turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Intel Community
- Software Development SDKs and Libraries
- Intel® oneAPI Math Kernel Library & Intel® Math Kernel Library
- Regarding cluster_sparse_solver

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

Mehdi_M_1

Beginner

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

08-19-2017
06:01 PM

65 Views

Regarding cluster_sparse_solver

I am Mehdi and this is my first time using this forum.

I need to used cluster_sparse_solver in my FORTRAN Finite Element program. Because the degree of freedom of my system is very high (1^6), the number of nonzero members in the stiffness matrix (A in Ax=B) will be also very high in a way that I can not store the number of non-zero in an integer number with type 4 and I must use integer(8). Therefore, the parameter ia (row indexing of sparse matrix) must be integer(8).

In this situation, how I should compile my program. I have tried to use 4 bit and 8 bit libraries, during compiling of my program and none of them are working. Shall I use all of the integers in my program with type integer(8)? When ia in integer(8) and ja is integer(4), is it possible to compile the program?

Please help me. I can provide any more information you may need.

Bests

Mehdi

Link Copied

4 Replies

Zhuowei_S_Intel

Employee

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

08-20-2017
07:22 PM

65 Views

Alexander_K_Intel2

Employee

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

08-20-2017
07:34 PM

65 Views

Hi Mehdi,

Just use MKL_INT instead of int type for whole program - it allow you to switch between 4 and 8 bytes integer using compiling flag -i8 during compiling and link _lp64 or _ilp64 libraries corresponded. Correct link line can be found here:

https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/

As about pardiso parameters - ia and ja need to be set to same MKL_INT type. However, in case of lp64 library you can use 8byte input parameters in direct solver using pardiso_64 interface. Details here:

https://software.intel.com/en-us/mkl-developer-reference-fortran-pardiso-64

Thanks,

Alex

Mehdi_M_1

Beginner

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

08-21-2017
04:35 AM

65 Views

Hi Alex,

I do not know how to use MKL_INT in my FORTRAN program. Can you please explain me. As far as I found on the web, MKL_INT is used for C++ compilers not FORTRAN.

I have also a question regarding cluster_sparse_solver_64:Should I define ia and ja as well as all of the parameters using integer(8)? by that I mean:

TYPE(MKL_CLUSTER_SPARSE_SOLVER_HANDLE) :: PT(64)

INTEGER(8) :: MAXFCT, MNUM, MTYPE, PHASE, N , MSGLVL

INTEGER(8) :: PERM(1), NRHS, ERROR, IPARM(64) , COMM

Thanks

Mehdi

Mehdi_M_1

Beginner

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

08-21-2017
05:06 AM

65 Views

Hi Alex,

I do not know how to use MKL_INT in my FORTRAN program. Can you please explain me. As far as I found on the web, MKL_INT is used for C++ compilers not FORTRAN.

I have also a question regarding cluster_sparse_solver_64:Should I define ia and ja as well as all of the parameters using integer(8)? by that I mean:

TYPE(MKL_CLUSTER_SPARSE_SOLVER_HANDLE) :: PT(64)

INTEGER(8) :: MAXFCT, MNUM, MTYPE, PHASE, N , MSGLVL

INTEGER(8) :: PERM(1), NRHS, ERROR, IPARM(64) , COMM

Thanks

Mehdi

Hi Mehdi,

Just use MKL_INT instead of int type for whole program - it allow you to switch between 4 and 8 bytes integer using compiling flag -i8 during compiling and link _lp64 or _ilp64 libraries corresponded. Correct link line can be found here:

https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/

As about pardiso parameters - ia and ja need to be set to same MKL_INT type. However, in case of lp64 library you can use 8byte input parameters in direct solver using pardiso_64 interface. Details here:

https://software.intel.com/en-us/mkl-developer-reference-fortran-pardiso-64

Thanks,

Alex

For more complete information about compiler optimizations, see our Optimization Notice.