- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Mehdi, your issue is related to Intel Math Kernel Library, I will transfer your issue to the MKL forum. Thanks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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

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