<?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 Re: Same code of calling Pardiso, correct in IVF10 but wrong re in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Same-code-of-calling-Pardiso-correct-in-IVF10-but-wrong-reuslts/m-p/899567#M11172</link>
    <description>&lt;DIV style="margin:0px;"&gt;&lt;/DIV&gt;
&lt;BR /&gt;What MKL version you used when used IVF10?&lt;BR /&gt;What's your linking line?&lt;BR /&gt;Is this ia32/Intel64 or IA64 architecture?&lt;BR /&gt;Can you get us the reproducible test case for checking the problem?&lt;BR /&gt;--Gennady&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;</description>
    <pubDate>Thu, 29 Oct 2009 06:13:17 GMT</pubDate>
    <dc:creator>Gennady_F_Intel</dc:creator>
    <dc:date>2009-10-29T06:13:17Z</dc:date>
    <item>
      <title>Same code of calling Pardiso, correct in IVF10 but wrong reuslts in IVF11</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Same-code-of-calling-Pardiso-correct-in-IVF10-but-wrong-reuslts/m-p/899566#M11171</link>
      <description>&lt;P&gt;Hello,&lt;BR /&gt;I write a code to call PARDISO in IVF10, and obtain correct results. But when I use the same code in IVF11.1.038, the obtained results is wrong.Is there anyone know how to do with it? My code is:&lt;BR /&gt;&lt;STRONG&gt;include 'mkl_pardiso.f90'&lt;BR /&gt;program MLQG&lt;BR /&gt;use MKL_PARDISO&lt;BR /&gt;!!The variable type definitionsare omitted&lt;BR /&gt;do i = 1, 64&lt;BR /&gt; iparm(i) = 0&lt;BR /&gt; end do&lt;BR /&gt; iparm(2) = 2 ! fill-in reordering from METIS&lt;BR /&gt; iparm(3) = 2 ! numbers of processors&lt;BR /&gt; iparm(4) = 0 ! no iterative-direct algorithm&lt;BR /&gt; iparm(5) = 0 ! no user fill-in reducing permutation&lt;BR /&gt; iparm(6) = 0 ! =0 solution on the first n compoments of x&lt;BR /&gt; iparm(7) = 0 ! not in use&lt;BR /&gt; iparm(8) = 9 ! numbers of iterative refinement steps&lt;BR /&gt; iparm(9) = 0 ! not in use&lt;BR /&gt; iparm(10) = 13 ! perturbe the pivot elements with 1E-13&lt;BR /&gt; iparm(11) = 1 ! use nonsymmetric permutation and scaling MPS&lt;BR /&gt; iparm(12) = 0 ! not in use&lt;BR /&gt; iparm(13) = 0 ! not in use&lt;BR /&gt; iparm(14) = 0 ! Output: number of perturbed pivots&lt;BR /&gt; iparm(15) = 0 ! not in use&lt;BR /&gt; iparm(16) = 0 ! not in use&lt;BR /&gt; iparm(17) = 0 ! not in use&lt;BR /&gt; iparm(18) = -1 ! Output: number of nonzeros in the factor LU&lt;BR /&gt; iparm(19) = -1 ! Output: Mflops for LU factorization&lt;BR /&gt; iparm(20) = 0 ! Output: Numbers of CG Iterations&lt;BR /&gt; iparm(25) = 1 !Parallel Forward/Backward Solve.&lt;BR /&gt; iparm(28)=1 !Parallel Reordering for METIS&lt;BR /&gt; error = 0 ! initialize error flag&lt;BR /&gt; msglvl = 0 ! print statistical information&lt;BR /&gt; mtype = 11 ! real unsymmetric &lt;BR /&gt; do k=1,3&lt;BR /&gt;!Initiliaze the internal solver memory pointer. This is only&lt;BR /&gt;! necessary for the FIRST call of the PARDISO solver. &lt;BR /&gt; pt(:)=mkl_pardiso_handle(0) &lt;BR /&gt; phase = 13 ! only reordering ,factorization and solving&lt;BR /&gt; call pardiso (pt, maxfct, mnum, mtype, phase, neq, a(:,k), ia(:,k), ja(:,k),&amp;amp;&lt;BR /&gt; idum, nrhs, iparm, msglvl, b(:,k), x(:,k), error)&lt;BR /&gt; phase = -1 ! release internal memory&lt;BR /&gt; call pardiso (pt, maxfct, mnum, mtype, phase, neq, a(:,k), ia(:,k), ja(:,k),&amp;amp;&lt;BR /&gt; idum, nrhs, iparm, msglvl, b(:,k), x(:,k), error)&lt;BR /&gt; enddo&lt;/STRONG&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 28 Oct 2009 18:49:38 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Same-code-of-calling-Pardiso-correct-in-IVF10-but-wrong-reuslts/m-p/899566#M11171</guid>
      <dc:creator>zlh007</dc:creator>
      <dc:date>2009-10-28T18:49:38Z</dc:date>
    </item>
    <item>
      <title>Re: Same code of calling Pardiso, correct in IVF10 but wrong re</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Same-code-of-calling-Pardiso-correct-in-IVF10-but-wrong-reuslts/m-p/899567#M11172</link>
      <description>&lt;DIV style="margin:0px;"&gt;&lt;/DIV&gt;
&lt;BR /&gt;What MKL version you used when used IVF10?&lt;BR /&gt;What's your linking line?&lt;BR /&gt;Is this ia32/Intel64 or IA64 architecture?&lt;BR /&gt;Can you get us the reproducible test case for checking the problem?&lt;BR /&gt;--Gennady&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Thu, 29 Oct 2009 06:13:17 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Same-code-of-calling-Pardiso-correct-in-IVF10-but-wrong-reuslts/m-p/899567#M11172</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2009-10-29T06:13:17Z</dc:date>
    </item>
    <item>
      <title>Re: Same code of calling Pardiso, correct in IVF10 but wrong re</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Same-code-of-calling-Pardiso-correct-in-IVF10-but-wrong-reuslts/m-p/899568#M11173</link>
      <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="margin-top: 5px; width: 100%;"&gt;
&lt;DIV style="margin-left:2px;margin-right:2px;"&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/334681"&gt;Gennady Fedorov (Intel)&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="background-color:#E5E5E5; padding:5px;border: 1px; border-style: inset;margin-left:2px;margin-right:2px;"&gt;&lt;EM&gt;&lt;BR /&gt;What MKL version you used when used IVF10?&lt;BR /&gt;What's your linking line?&lt;BR /&gt;Is this ia32/Intel64 or IA64 architecture?&lt;BR /&gt;Can you get us the reproducible test case for checking the problem?&lt;BR /&gt;--Gennady&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;BR /&gt;Gennady&lt;BR /&gt;Fistly, lots of thanks for your reply. Iuse IVF11(ia32) in microsoft visual studio 2008 now and IVF10(ia32) in microsoft 2005 before.The MKL usedin IVF 10 is version 10.0.011 (before). But I don't know where to find the MKL version in IVF11.1.038 because MKL has been automatically installed when I installed compiler. Can you tell mehow to find the MKL version? &lt;BR /&gt;Theoptions set in Link/input/additional dependenciesare &lt;EM&gt;"mkl_intel_c.lib mkl_intel_thread.lib mkl_solver.lib mkl_core.lib libguide.lib"&lt;/EM&gt;. For the same code, it is strange that the link procedurein IVF 11 takes much more time than that in IVF 10. The linking information is (onlypresenting the warning lines because the information is too long)&lt;BR /&gt;(Note. Becausemy visual studio is chinese version, following link informationis translated into English by myself):&lt;BR /&gt;1&amp;gt;module mkl_intel_c.lib(_dgemv.obj)" is unsafe for image SAFESEH&lt;BR /&gt;1&amp;gt;module "mkl_intel_c.lib(_pardiso.obj)" is unsafe for image SAFESEH&lt;BR /&gt;1&amp;gt;module mkl_intel_c.lib(_misc_mkl_lsame_f.obj) is unsafe for image SAFESEH&lt;BR /&gt;1&amp;gt;module "mkl_core.lib(intel_f2int.obj)" is unsafe for image SAFESEH&lt;BR /&gt;1&amp;gt;module "mkl_core.lib(_p4m3_dswap.obj)" is unsafe for image SAFESEH&lt;BR /&gt;1&amp;gt;module "mkl_core.lib(_p4_dswap.obj)"is unsafe for image SAFESEH&lt;BR /&gt;1&amp;gt;module "mkl_core.lib(_p4m3_dswap.obj)" is unsafe for image SAFESEH&lt;BR /&gt;1&amp;gt;module "mkl_core.lib(_p4m3_zswap.obj)" is unsafe for image SAFESEH&lt;BR /&gt;1&amp;gt;module "mkl_core.lib(_p4m_zswap.obj)" is unsafe for image SAFESEH&lt;BR /&gt;1&amp;gt;module "mkl_core.lib(_p4p_zswap.obj)" is unsafe for image SAFESEH&lt;BR /&gt;1&amp;gt;module "mkl_core.lib(_p4_zswap.obj)" is unsafe for image SAFESEH&lt;BR /&gt;1&amp;gt;module "mkl_core.lib(_p4m3_dscal.obj)" is unsafe for image SAFESEH&lt;BR /&gt;1&amp;gt;module "mkl_core.lib(_p4m_dscal.obj)" is unsafe for image SAFESEH&lt;BR /&gt;1&amp;gt;module "mkl_core.lib(_p4p_dscal.obj)" is unsafe for image SAFESEH&lt;BR /&gt;:&lt;BR /&gt;: many &lt;EM&gt;'module "mkl_core.lib(*.obj)" is unsafe for image SAFESEH&lt;BR /&gt;&lt;/EM&gt;:&lt;BR /&gt;&lt;BR /&gt;I also run a simple test case for Pardiso in IVF11, although it also take too long time to link, but this simple case can give correct result. Compared with the simple case, code presented in above quesetionmanually set morecontrol parameters (&lt;EM&gt;Iparm&lt;/EM&gt;). Is any parameters set to be wrong values for the Pardiso in this version of MKL? Or, any errors in link setting? Following is the simple test case:&lt;BR /&gt;
&lt;P&gt;&lt;STRONG&gt;include 'mkl_pardiso.f90'&lt;BR /&gt;program pardiso_test&lt;BR /&gt;use MKL_PARDISO&lt;BR /&gt;real(8),allocatable::a(:),b(:),x(:)&lt;BR /&gt;integer::maxfct=1,mnum=1,mtype=11,phase=13,n,nrhs=1,iparm(64),msglvl=0,error&lt;BR /&gt;type(mkl_pardiso_handle) :: pt(64)&lt;BR /&gt;integer,allocatable::ia(:),ja(:),perm(:)&lt;BR /&gt;!!! this matrix is cited by slatec document...&lt;BR /&gt;! |11 12 0 0 15| A: 11 12 15 | 21 22 | 33 35 | 44 | 51 53 55&lt;BR /&gt;! |21 22 0 0 0| IA: 1 | 4 | 6 | 8 | 9 | 11&lt;BR /&gt;! | 0 0 33 0 35| JA: 1 2 5 | 1 2 | 3 5 | 4 | 1 3 5 &lt;BR /&gt;! | 0 0 0 44 0|&lt;BR /&gt;! |51 0 53 0 55|&lt;BR /&gt;!!! set parameter of pardiso&lt;BR /&gt; pt(:)=mkl_pardiso_handle(0)&lt;BR /&gt; iparm(1)=0&lt;BR /&gt;!!! assign values to variables&lt;BR /&gt; n=5&lt;BR /&gt; nzero=10&lt;BR /&gt; allocate(a(nzero),b(n),x(n),ia(n+1),ja(nzero),perm(n))&lt;BR /&gt; ia(:)=(/1,4,6,8,9,11/)&lt;BR /&gt; a(:)=(/11.d0,12.d0,15.d0,21.d0,22.d0,33.d0,35.d0,44.d0,51.d0,53.d0,55.d0/)&lt;BR /&gt; ja(:)=(/1,2,5,1,2,3,5,4,1,3,5/)&lt;BR /&gt;!!! calculate b when x=(/1.d0,2.d0,3.d0,4.d0,5.d0/)&lt;BR /&gt; b(:)=0.d0&lt;BR /&gt; do i=1,5&lt;BR /&gt; do j=ia(i),ia(i+1)-1&lt;BR /&gt;b(i)=b(i)+a(j)*ja(j)&lt;BR /&gt; end do&lt;BR /&gt; end do&lt;BR /&gt;!!! solve linear equation by pardiso&lt;BR /&gt; call pardiso(pt,maxfct,mnum,mtype,phase,n,a,ia,ja,perm,nrhs,iparm,msglvl,b,x,error)&lt;BR /&gt; if(error /= 0) then &lt;BR /&gt; write(*,*) error &lt;BR /&gt; stop&lt;BR /&gt; end if&lt;BR /&gt; write(*,*) x&lt;BR /&gt; pause&lt;BR /&gt;end program pardiso_test&lt;BR /&gt;&lt;BR /&gt;&lt;/STRONG&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 29 Oct 2009 17:49:50 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Same-code-of-calling-Pardiso-correct-in-IVF10-but-wrong-reuslts/m-p/899568#M11173</guid>
      <dc:creator>zlh007</dc:creator>
      <dc:date>2009-10-29T17:49:50Z</dc:date>
    </item>
  </channel>
</rss>

