<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Hi Medhai, in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-and-pardiso-64/m-p/1170663#M28553</link>
    <description>&lt;P&gt;Hi Mehdi,&lt;/P&gt;

&lt;P&gt;The error means&amp;nbsp;you're touching memory which you're not allowed to. You probably&amp;nbsp;read/write outside of bounds, my advice is:&lt;/P&gt;

&lt;P&gt;1. Add -i8 compiler option for ifort.&lt;BR /&gt;
	2. If above suggestion no help, please add "-check bounds"&amp;nbsp;option. If you get error message, please paste it to me.&lt;/P&gt;

&lt;P&gt;Best regards,&lt;BR /&gt;
	Fiona&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 22 Aug 2017 06:20:00 GMT</pubDate>
    <dc:creator>Zhen_Z_Intel</dc:creator>
    <dc:date>2017-08-22T06:20:00Z</dc:date>
    <item>
      <title>Pardiso and pardiso_64</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-and-pardiso-64/m-p/1170662#M28552</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;

&lt;P&gt;I have a FORTRAN program for solving flow field (Stokes flow) problem using FEM. Firstly, I used PARDISO solver to solve the coupled problem. I was totally happy with PARDISO, because it is faster than MATLAB (I used to work with MATLAB and I am new in ifort). Bellow, I have summarized the command related to PARDISO:&lt;/P&gt;

&lt;P&gt;!----------Matrix solution PARDISO--------------------------------------------&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em;"&gt;! &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[M ]*{X} = {RHS}&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;INTEGER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :: PT(64), MTYPE, IPARM(64)&lt;/P&gt;

&lt;P&gt;INTEGER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :: MAXFCT,MNUM,PHASE,N , NRHS , MSGLVL , ERROR&lt;/P&gt;

&lt;P&gt;INTEGER,ALLOCATABLE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :: PERM(:)&lt;/P&gt;

&lt;P&gt;REAL(8),ALLOCATABLE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;:: X(:)&lt;/P&gt;

&lt;P&gt;INTEGER,ALLOCATABLE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :: ja(:) , &amp;nbsp;ia(:)&lt;/P&gt;

&lt;P&gt;REAL(8),ALLOCATABLE,DIMENSION(:)&amp;nbsp;&amp;nbsp; :: M&lt;/P&gt;

&lt;P&gt;! ABOVE FOR INTRODUCING THE PARAMETERS&lt;/P&gt;

&lt;P&gt;MTYPE = 11&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;CALL PARDISOINIT (PT, MTYPE, IPARM)&lt;/P&gt;

&lt;P&gt;ALLOCATE( PERM(dof) , STAT = ISTAT )&amp;nbsp; ! dof : degree of freedom&lt;/P&gt;

&lt;P&gt;ALLOCATE( X(dof)&amp;nbsp;&amp;nbsp;&amp;nbsp; , STAT = ISTAT )&lt;/P&gt;

&lt;P&gt;MAXFCT = 1&lt;/P&gt;

&lt;P&gt;MNUM&amp;nbsp;&amp;nbsp; = 1&lt;/P&gt;

&lt;P&gt;PHASE&amp;nbsp; = 13&lt;/P&gt;

&lt;P&gt;N&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = dof&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;PERM&amp;nbsp;&amp;nbsp; = 1&amp;nbsp;&lt;/P&gt;

&lt;P&gt;NRHS&amp;nbsp;&amp;nbsp; = 1&lt;/P&gt;

&lt;P&gt;MSGLVL = 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;CALL CPU_TIME(start)&lt;/P&gt;

&lt;P&gt;CALL PARDISO (PT, MAXFCT, MNUM, MTYPE, PHASE, N, M_SPARSE, ia,ja, PERM, NRHS, IPARM, MSGLVL, RHS, X, ERROR)&lt;/P&gt;

&lt;P&gt;CALL CPU_TIME(finish)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;write(*,*) (finish-start)*1000 , 'msec'&amp;nbsp;&amp;nbsp; , ERROR&lt;/P&gt;

&lt;P&gt;This code works without any problem and perfectly.&lt;/P&gt;

&lt;P&gt;My problem is for the situation that I want to use PARDISO_64. According to the document, all of the input and output integers, should be INTEGER(8), therefore:&lt;/P&gt;

&lt;P&gt;!----------Matrix solution PARDISO--------------------------------------------&lt;/P&gt;

&lt;P&gt;!&amp;nbsp; MX = RHS&lt;/P&gt;

&lt;P&gt;INTEGER(8)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :: PT(64), MTYPE, IPARM(64)&lt;/P&gt;

&lt;P&gt;INTEGER(8)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :: MAXFCT,MNUM,PHASE,N , NRHS , MSGLVL , ERROR&lt;/P&gt;

&lt;P&gt;INTEGER(8),ALLOCATABLE&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:: PERM(:)&lt;/P&gt;

&lt;P&gt;REAL(8),ALLOCATABLE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:: X(:)&lt;/P&gt;

&lt;P&gt;INTEGER(8),ALLOCATABLE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :: ja(:) , &amp;nbsp;ia(:)&lt;/P&gt;

&lt;P&gt;REAL(8),ALLOCATABLE,DIMENSION(:)&amp;nbsp;&amp;nbsp; :: M&lt;/P&gt;

&lt;P&gt;! ABOVE FOR INTRODUCING THE PARAMETERS&lt;/P&gt;

&lt;P&gt;MTYPE = 11&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;CALL PARDISOINIT (PT, MTYPE, IPARM)&lt;/P&gt;

&lt;P&gt;ALLOCATE( PERM(dof) , STAT = ISTAT )&amp;nbsp; ! dof : degree of freedom&lt;/P&gt;

&lt;P&gt;ALLOCATE( X(dof)&amp;nbsp;&amp;nbsp;&amp;nbsp; , STAT = ISTAT )&lt;/P&gt;

&lt;P&gt;MAXFCT = 1&lt;/P&gt;

&lt;P&gt;MNUM&amp;nbsp;&amp;nbsp; = 1&lt;/P&gt;

&lt;P&gt;PHASE&amp;nbsp; = 13&lt;/P&gt;

&lt;P&gt;N&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = dof&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;PERM&amp;nbsp;&amp;nbsp; = 1&amp;nbsp;&lt;/P&gt;

&lt;P&gt;NRHS&amp;nbsp;&amp;nbsp; = 1&lt;/P&gt;

&lt;P&gt;MSGLVL = 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;CALL CPU_TIME(start)&lt;/P&gt;

&lt;P&gt;CALL PARDISO_64 (PT, MAXFCT, MNUM, MTYPE, PHASE, N, M_SPARSE, ia,ja, PERM, NRHS, IPARM, MSGLVL, RHS, X, ERROR)&lt;/P&gt;

&lt;P&gt;CALL CPU_TIME(finish)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;write(*,*) (finish-start)*1000 , 'msec'&amp;nbsp;&amp;nbsp; , ERROR&lt;/P&gt;

&lt;P&gt;but, this&amp;nbsp; code does not working and it gives the following error:&lt;/P&gt;

&lt;P&gt;forrtl: server (157): program Exception – access violation&lt;/P&gt;

&lt;P&gt;I use the following to compile my code:&lt;/P&gt;

&lt;P&gt;ifort USEFULLS.f90 CONSTANTS.f90 PRE_PROCESSOR_3D.f90 DATATYPES.f90 VEL_SUBS.f90 SPARSE_SUB.f90 main00.f90 -o t1 -Qmkl -heap-arrays&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;USEFULLS.f90, CONSTANTS.f90, PRE_PROCESSOR_3D.f90, DATATYPES.f90, VEL_SUBS.f90, and SPARSE_SUB.f90 are modules that are developed by me and main00.f90 is the main program. I think (I am not sure) that I must use some other keys in my compile command line.&lt;/P&gt;

&lt;P&gt;I have similar problem for cluster_sparse_solver, which works well, but cluster_sparse_solver_64 does not work!!!!!!&lt;/P&gt;

&lt;P&gt;Best regards&lt;/P&gt;

&lt;P&gt;Mehdi&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 21 Aug 2017 17:09:01 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-and-pardiso-64/m-p/1170662#M28552</guid>
      <dc:creator>Mehdi_M_1</dc:creator>
      <dc:date>2017-08-21T17:09:01Z</dc:date>
    </item>
    <item>
      <title>Hi Medhai,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-and-pardiso-64/m-p/1170663#M28553</link>
      <description>&lt;P&gt;Hi Mehdi,&lt;/P&gt;

&lt;P&gt;The error means&amp;nbsp;you're touching memory which you're not allowed to. You probably&amp;nbsp;read/write outside of bounds, my advice is:&lt;/P&gt;

&lt;P&gt;1. Add -i8 compiler option for ifort.&lt;BR /&gt;
	2. If above suggestion no help, please add "-check bounds"&amp;nbsp;option. If you get error message, please paste it to me.&lt;/P&gt;

&lt;P&gt;Best regards,&lt;BR /&gt;
	Fiona&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 22 Aug 2017 06:20:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-and-pardiso-64/m-p/1170663#M28553</guid>
      <dc:creator>Zhen_Z_Intel</dc:creator>
      <dc:date>2017-08-22T06:20:00Z</dc:date>
    </item>
  </channel>
</rss>

