<?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 use of MKL subroutine in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810279#M3825</link>
    <description>&lt;P&gt;I tried using sdiasm, but somehow the solution matrix is
zero. No error is given.&lt;BR /&gt;
I wonder what I am doing wrong:

&lt;/P&gt;&lt;P&gt;&lt;PRE&gt;[bash]allocate(val(lval,ndiag,ind_Dw))
allocate(QVec(lval,8,ind_Dw))
allocate(Ip_tr(lval,8,ind_Dw))
val(1:Imu*Jmu,1,m) = 0; val(Imu*Jmu+1:Imu*Jmu*Kmu,1,m) = A_zi(:,m);
val(1:Jmu,2,m) = 0; val(Jmu+1:Imu*Jmu*Kmu,2,m) = A_xi(:,m);
val(1,3,m) = 0; val(2:Imu*Jmu*Kmu,3,m) = A_yi(:,m);        
val(:,4,m) = Ap(:,m);

call mkl_sdiasm(transa,lval,8,1,'TLNF',val(:,:,m),lval,idiag,ndiag,QVec(:,:,m),lval,Ip_tr(:,:,m),lval)
[/bash]&lt;/PRE&gt; &lt;/P&gt;</description>
    <pubDate>Tue, 01 Jun 2010 13:09:15 GMT</pubDate>
    <dc:creator>chubb87</dc:creator>
    <dc:date>2010-06-01T13:09:15Z</dc:date>
    <item>
      <title>use of MKL subroutine</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810265#M3811</link>
      <description>Hi, I tried using subroutine mkl_sdiasv(), and it seems I have access to the MKL library, because the error message is:  &lt;BR /&gt;"MKL Error: Parameter 4 was incorrect on entry to mkl_sdiasv"&lt;BR /&gt;&lt;BR /&gt;the source code is:&lt;BR /&gt;&lt;BR /&gt;program Mat_Test &lt;BR /&gt; implicit none&lt;BR /&gt; !include 'C:\\Program Files\\Intel\\MKL\\10.2.5.035\\include\\mkl_spblas.fi' &lt;BR /&gt; CHARACTER*1 :: transa = 'n'&lt;BR /&gt; CHARACTER :: matdescra(6)&lt;BR /&gt; INTEGER :: m = 5, lval=5, ndiag = 2&lt;BR /&gt; INTEGER :: idiag(2)=(/-3,0/)&lt;BR /&gt; REAL :: alpha=1&lt;BR /&gt; REAL :: val(5,2), x(5), y(5)&lt;BR /&gt; matdescra(1) = 'G';&lt;BR /&gt;  matdescra(2) = 'L';&lt;BR /&gt;  matdescra(3) = 'N';&lt;BR /&gt; matdescra(4) = 'F';&lt;BR /&gt; x = (/1,3,3,4,-6/);&lt;BR /&gt; val= reshape( (/0,0,0,2,-1, 1,3,6,2,-5/), (/lval, ndiag/) )&lt;BR /&gt; &lt;BR /&gt; call mkl_sdiasv(transa, m, alpha, matdescra, val, lval, idiag, ndiag, x, y) &lt;BR /&gt;&lt;BR /&gt; print *, y, 'END'&lt;BR /&gt;&lt;BR /&gt; end program Mat_Test&lt;BR /&gt;&lt;BR /&gt;what is the problem with matdescra?&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Thu, 27 May 2010 18:07:24 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810265#M3811</guid>
      <dc:creator>chubb87</dc:creator>
      <dc:date>2010-05-27T18:07:24Z</dc:date>
    </item>
    <item>
      <title>use of MKL subroutine</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810266#M3812</link>
      <description>The values 'G','L','N','F' form an appropriate combination for 'matdescra' for &lt;I&gt;multiplication&lt;/I&gt; routines. You are, on the other hand, calling a &lt;I&gt;solver&lt;/I&gt; routine, for which 'T','L','U','F' is one acceptable combination. &lt;BR /&gt;&lt;BR /&gt;Please consult the MKL documentation to ascertain proper argument values.</description>
      <pubDate>Thu, 27 May 2010 23:54:42 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810266#M3812</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2010-05-27T23:54:42Z</dc:date>
    </item>
    <item>
      <title>use of MKL subroutine</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810267#M3813</link>
      <description>also, please look at the e&lt;SPAN style="font-family: verdana, sans-serif;"&gt;xample program for using MKL Sparse BLAS Level 2 and 3for matrices represented in the diagonal storage scheme.&lt;/SPAN&gt;&lt;DIV&gt;&lt;SPAN style="font-family: verdana, sans-serif;"&gt;&lt;/SPAN&gt;You can find it in ..\examples\spblas\source\sdia.f file.&lt;/DIV&gt;&lt;DIV&gt;--Gennady&lt;/DIV&gt;</description>
      <pubDate>Fri, 28 May 2010 06:23:47 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810267#M3813</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2010-05-28T06:23:47Z</dc:date>
    </item>
    <item>
      <title>use of MKL subroutine</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810268#M3814</link>
      <description>okay, thank you.&lt;BR /&gt;&lt;BR /&gt;I thought the subroutine mkl_?diasv would solve every matrix equation with diagonal storage, but it seems A also has to have only nonzero elements on the main diagonal.&lt;BR /&gt;The terms diagonal storage and diagonal matrix are not used clearly in my opinion.&lt;BR /&gt;&lt;BR /&gt;The example is now working for me, but I still have to understand what it is doing and if I need every step of the example.&lt;BR /&gt;</description>
      <pubDate>Fri, 28 May 2010 10:23:26 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810268#M3814</guid>
      <dc:creator>chubb87</dc:creator>
      <dc:date>2010-05-28T10:23:26Z</dc:date>
    </item>
    <item>
      <title>inverse of triangular matrix in diagonal storage format in MKL?</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810269#M3815</link>
      <description>I want to solve the system Ax = B, where A is sparse and easy to store in the diagonal storage scheme (but it is not a diagonal or triangular matrix).&lt;BR /&gt;&lt;BR /&gt;I am using the A = L + D + U procedure.&lt;BR /&gt;I will implement a Jakobi or Gau Seidel method, which uses this decomposition. But the only thing that is missing is how to create the inverse of (D+L) in diagonal storage format.&lt;BR /&gt;Do you know if there is a subroutine in MKL which can do that?&lt;BR /&gt;</description>
      <pubDate>Fri, 28 May 2010 11:30:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810269#M3815</guid>
      <dc:creator>chubb87</dc:creator>
      <dc:date>2010-05-28T11:30:39Z</dc:date>
    </item>
    <item>
      <title>use of MKL subroutine</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810270#M3816</link>
      <description>"Diagonal Matrix" was defined in mathematics many decades before people started implementing "Diagonal Storage Scheme" on computers. Few of us are allowed the privilege of creating perfectly logical and consistent definitions on the first day, seeing that it is good at nightfall and, on the second day, inventing an algorithm to solve ...&lt;BR /&gt;&lt;BR /&gt;See &lt;A href="http://books.google.com/books?id=mlOa7wPX6OYC&amp;amp;printsec=frontcover&amp;amp;dq=Golub+and+VanLoan&amp;amp;source=bl&amp;amp;ots=lbho85Q4hX&amp;amp;sig=QEqDjO2sS1NCWQujGIFJf36ORYU&amp;amp;hl=en&amp;amp;ei=JLX_S_TtN8L38Aak26nyDQ&amp;amp;sa=X&amp;amp;oi=book_result&amp;amp;ct=result&amp;amp;resnum=3&amp;amp;ved=0CCQQ6AEwAg#v=onepage&amp;amp;q&amp;amp;f=false"&gt; the Golub and VanLoan book.&lt;/A&gt;&lt;BR /&gt;</description>
      <pubDate>Fri, 28 May 2010 12:28:40 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810270#M3816</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2010-05-28T12:28:40Z</dc:date>
    </item>
    <item>
      <title>use of MKL subroutine</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810271#M3817</link>
      <description>I have found out that L+D+U can be useful as well, see my edited post above, for iterative instead of direct methods.&lt;BR /&gt;For the Jakobi algorithm that works well with the subroutines abailable, but for the Gau Seidel method I need to compute Inv(D+L) ...</description>
      <pubDate>Fri, 28 May 2010 12:51:50 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810271#M3817</guid>
      <dc:creator>chubb87</dc:creator>
      <dc:date>2010-05-28T12:51:50Z</dc:date>
    </item>
    <item>
      <title>use of MKL subroutine</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810272#M3818</link>
      <description>You can compute vector y = inv(D+L) * x, where matrix A storage indiagonal format andA =(U + D + L).&lt;BR /&gt;Routine mkl_ddiasv with matdescra = "TLN"computes this operation (y = inv(D + L)* x).In many cases it is enought, because wecould use result of calculationinv(triangular matrix) * x.Ifyou need inv(D + L) as matrix I could recommendtry to find applicable LAPACK routine.&lt;BR /&gt;</description>
      <pubDate>Mon, 31 May 2010 10:31:46 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810272#M3818</guid>
      <dc:creator>Victor_Gladkikh</dc:creator>
      <dc:date>2010-05-31T10:31:46Z</dc:date>
    </item>
    <item>
      <title>use of MKL subroutine</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810273#M3819</link>
      <description>Thx for the advice, but I think I have found a better solution. I have converted my matrices all in triangular form with help of permutations.&lt;BR /&gt;&lt;BR /&gt;So I am using mkl_sdiatrsv with lower triangular matrices.&lt;BR /&gt;&lt;BR /&gt;It works very well, but I get the message: "stack overflow" when using vectors x and y with length of about 4000 elements.&lt;BR /&gt;&lt;BR /&gt;Is this the normal limitation? What does it depend on and is it possible to increase it (hardware?) ? &lt;BR /&gt;</description>
      <pubDate>Mon, 31 May 2010 11:18:08 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810273#M3819</guid>
      <dc:creator>chubb87</dc:creator>
      <dc:date>2010-05-31T11:18:08Z</dc:date>
    </item>
    <item>
      <title>use of MKL subroutine</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810274#M3820</link>
      <description>&lt;DIV&gt;There is no such restriction.&lt;BR /&gt;I think that this software bug.How do you allocate your working arrays?&lt;/DIV&gt;&lt;DIV&gt;Can you give the example for reproducing the problem?&lt;/DIV&gt;&lt;DIV&gt;--Gennady&lt;/DIV&gt;</description>
      <pubDate>Mon, 31 May 2010 11:34:46 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810274#M3820</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2010-05-31T11:34:46Z</dc:date>
    </item>
    <item>
      <title>use of MKL subroutine</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810275#M3821</link>
      <description>Okay, I am still debugging, but I will post part of my code so that you can invisage what I am doing and where the problem might be.&lt;BR /&gt;&lt;BR /&gt;I don't show all declarations, e.g. for val, I don't think that is important right now&lt;BR /&gt;&lt;BR /&gt;m loops from 1 to 2 (or higher for different parameters)&lt;BR /&gt;SWF=1, NWF=2, SEF=3, ... up to 8 are used for indexing &lt;BR /&gt;&lt;BR /&gt;CHARACTER*1 :: transa = 'n', uplo = 'l' ,diag = 'n'&lt;BR /&gt;CHARACTER :: matdescra(4) = 'TLUF'&lt;BR /&gt;integer :: ndiag, lval&lt;BR /&gt;data ndiag /4/ &lt;BR /&gt;idiag = (/-Imu*Jmu,-Jmu,-1,0/); &lt;BR /&gt;do m = 1,ind_Dw  &lt;BR /&gt; QVec(:,SWF,m) = beta_m(m)*V*Sp_m(:,m)*d_Ohm(m) + Dw(m,x)*Axi/gx*IwW_ext(:,SWF) + Dw(m,y)*Ayi/gy*IwS_ext(:,SWF) + Dw(m,z)*Azi/gz*IwF_ext(:,SWF); ! for South and West boundary conditions, i.e. starting in the north east&lt;BR /&gt; QVec(:,NWF,m) = beta_m(m)*V*Sp_m(:,m)*d_Ohm(m) + Dw(m,x)*Axi/gx*IwW_ext(:,NWF) + Dw(m,y)*Ayi/gy*IwN_ext(:,NWF) + Dw(m,z)*Azi/gz*IwF_ext(:,NWF); &lt;BR /&gt; QVec(:,SEF,m) = beta_m(m)*V*Sp_m(:,m)*d_Ohm(m) + Dw(m,x)*Axi/gx*IwE_ext(:,SEF) + Dw(m,y)*Ayi/gy*IwS_ext(:,SEF) + Dw(m,z)*Azi/gz*IwF_ext(:,SEF); &lt;BR /&gt; QVec(:,NEF,m) = beta_m(m)*V*Sp_m(:,m)*d_Ohm(m) + Dw(m,x)*Axi/gx*IwE_ext(:,NEF) + Dw(m,y)*Ayi/gy*IwN_ext(:,NEF) + Dw(m,z)*Azi/gz*IwF_ext(:,NEF); &lt;BR /&gt; QVec(:,SWB,m) = beta_m(m)*V*Sp_m(:,m)*d_Ohm(m) + Dw(m,x)*Axi/gx*IwW_ext(:,SWB) + Dw(m,y)*Ayi/gy*IwS_ext(:,SWB) + Dw(m,z)*Azi/gz*IwB_ext(:,SWB); &lt;BR /&gt; QVec(:,NWB,m) = beta_m(m)*V*Sp_m(:,m)*d_Ohm(m) + Dw(m,x)*Axi/gx*IwE_ext(:,NWB) + Dw(m,y)*Ayi/gy*IwS_ext(:,NWB) + Dw(m,z)*Azi/gz*IwB_ext(:,NWB); &lt;BR /&gt; QVec(:,SEB,m) = beta_m(m)*V*Sp_m(:,m)*d_Ohm(m) + Dw(m,x)*Axi/gx*IwW_ext(:,SEB) + Dw(m,y)*Ayi/gy*IwN_ext(:,SEB) + Dw(m,z)*Azi/gz*IwB_ext(:,SEB); &lt;BR /&gt; QVec(:,NEB,m) = beta_m(m)*V*Sp_m(:,m)*d_Ohm(m) + Dw(m,x)*Axi/gx*IwE_ext(:,NEB) + Dw(m,y)*Ayi/gy*IwN_ext(:,NEB) + Dw(m,z)*Azi/gz*IwB_ext(:,NEB);  &lt;BR /&gt; call mkl_sdiatrsv(uplo,transa,diag,lval,val(:,:,m),lval,idiag,ndiag,QVec(:,SWF,m),Ip_tr(:,SWF,m)) &lt;BR /&gt; call mkl_sdiatrsv(uplo,transa,diag,lval,val(:,:,m),lval,idiag,ndiag,QVec(:,NWF,m),Ip_tr(:,NWF,m))&lt;BR /&gt; call mkl_sdiatrsv(uplo,transa,diag,lval,val(:,:,m),lval,idiag,ndiag,QVec(:,SEF,m),Ip_tr(:,SEF,m))&lt;BR /&gt; call mkl_sdiatrsv(uplo,transa,diag,lval,val(:,:,m),lval,idiag,ndiag,QVec(:,NEF,m),Ip_tr(:,NEF,m))&lt;BR /&gt; call mkl_sdiatrsv(uplo,transa,diag,lval,val(:,:,m),lval,idiag,ndiag,QVec(:,SWB,m),Ip_tr(:,SWB,m))&lt;BR /&gt; call mkl_sdiatrsv(uplo,transa,diag,lval,val(:,:,m),lval,idiag,ndiag,QVec(:,NWB,m),Ip_tr(:,NWB,m))&lt;BR /&gt; call mkl_sdiatrsv(uplo,transa,diag,lval,val(:,:,m),lval,idiag,ndiag,QVec(:,SEB,m),Ip_tr(:,SEB,m))&lt;BR /&gt; call mkl_sdiatrsv(uplo,transa,diag,lval,val(:,:,m),lval,idiag,ndiag,QVec(:,NEB,m),Ip_tr(:,NEB,m)) &lt;BR /&gt;  end do</description>
      <pubDate>Mon, 31 May 2010 12:21:04 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810275#M3821</guid>
      <dc:creator>chubb87</dc:creator>
      <dc:date>2010-05-31T12:21:04Z</dc:date>
    </item>
    <item>
      <title>use of MKL subroutine</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810276#M3822</link>
      <description>The first thing to do is to locate the stack overflow, by compiling with -g -traceback and running. Once the location of stack overflow has been found, you can think about whether to allocate the variables differently or to raise the stack limits.</description>
      <pubDate>Mon, 31 May 2010 14:01:09 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810276#M3822</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2010-05-31T14:01:09Z</dc:date>
    </item>
    <item>
      <title>use of MKL subroutine</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810277#M3823</link>
      <description>I have found out in which line it occurs:&lt;BR /&gt;&lt;BR /&gt;do m = 1,ind_Dw   &lt;BR /&gt; call compute_all(Iw(:,:,(/W,N,F/)),Sp_m(:,:,:,m),beta_m(m),0,0,0,Dw(m,:),d_Ohm(m),Ip(:,:,:,1,m),IWE(:,:,1,m,:)); &lt;BR /&gt;end do&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Sorry for my lack of knowledge:&lt;BR /&gt;&lt;BR /&gt;How can a different allocation be beneficial?&lt;BR /&gt;and how can I raise the stack limits?</description>
      <pubDate>Tue, 01 Jun 2010 11:12:28 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810277#M3823</guid>
      <dc:creator>chubb87</dc:creator>
      <dc:date>2010-06-01T11:12:28Z</dc:date>
    </item>
    <item>
      <title>use of MKL subroutine</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810278#M3824</link>
      <description>I could recommend to use mkl_sdiasm instead ofusing severalmkl_sdiatrsv routines.Generally speaking mkl_sdiasm could give performance better thanset ofmkl_sdiatrsv runs.&lt;BR /&gt;&lt;BR /&gt;Also it will be helpful if you provide us with declaration of arrays val, QVec, Ip_tr.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Tue, 01 Jun 2010 12:15:55 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810278#M3824</guid>
      <dc:creator>Victor_Gladkikh</dc:creator>
      <dc:date>2010-06-01T12:15:55Z</dc:date>
    </item>
    <item>
      <title>use of MKL subroutine</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810279#M3825</link>
      <description>&lt;P&gt;I tried using sdiasm, but somehow the solution matrix is
zero. No error is given.&lt;BR /&gt;
I wonder what I am doing wrong:

&lt;/P&gt;&lt;P&gt;&lt;PRE&gt;[bash]allocate(val(lval,ndiag,ind_Dw))
allocate(QVec(lval,8,ind_Dw))
allocate(Ip_tr(lval,8,ind_Dw))
val(1:Imu*Jmu,1,m) = 0; val(Imu*Jmu+1:Imu*Jmu*Kmu,1,m) = A_zi(:,m);
val(1:Jmu,2,m) = 0; val(Jmu+1:Imu*Jmu*Kmu,2,m) = A_xi(:,m);
val(1,3,m) = 0; val(2:Imu*Jmu*Kmu,3,m) = A_yi(:,m);        
val(:,4,m) = Ap(:,m);

call mkl_sdiasm(transa,lval,8,1,'TLNF',val(:,:,m),lval,idiag,ndiag,QVec(:,:,m),lval,Ip_tr(:,:,m),lval)
[/bash]&lt;/PRE&gt; &lt;/P&gt;</description>
      <pubDate>Tue, 01 Jun 2010 13:09:15 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810279#M3825</guid>
      <dc:creator>chubb87</dc:creator>
      <dc:date>2010-06-01T13:09:15Z</dc:date>
    </item>
    <item>
      <title>use of MKL subroutine</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810280#M3826</link>
      <description>&lt;DIV id="tiny_quote"&gt;
                &lt;DIV style="margin-left: 2px; margin-right: 2px;"&gt;Quoting &lt;A rel="/en-us/services/profile/quick_profile.php?is_paid=&amp;amp;user_id=478989" class="basic" href="https://community.intel.com/en-us/profile/478989/"&gt;chubb87&lt;/A&gt;&lt;/DIV&gt;
                &lt;DIV style="background-color: #e5e5e5; padding: 5px; border: 1px inset; margin-left: 2px; margin-right: 2px;"&gt;call mkl_sdiasm(transa,lval,8,1,'TLNF',val(:,:,m),lval,idiag,ndiag,QVec(:,:,m),lval,Ip_tr(:,:,m),lval)
&lt;I&gt;&lt;BR /&gt; &lt;/I&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&lt;/P&gt;Presumably, using an array section as an argument creates a temporary. If using ifort, you could set /assume:arg_temp_created in order to find out if this is so. Then, even if the subroutine writes back to the temporary which was initialized to Ip_tr(:,:,m), your program won't have access to those results. Ip_tr(1,1,m) might be what you meant.&lt;BR /&gt;</description>
      <pubDate>Tue, 01 Jun 2010 13:39:09 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810280#M3826</guid>
      <dc:creator>TimP</dc:creator>
      <dc:date>2010-06-01T13:39:09Z</dc:date>
    </item>
    <item>
      <title>use of MKL subroutine</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810281#M3827</link>
      <description>No, it does not work with Ip_tr(1,1,m), I have to pass a whole matrix and not only a single value. Ip_tr(:,:) is my solution matrix.&lt;BR /&gt;with sdiatrsv it worked using (......,Ip_tr(:,1,1))&lt;BR /&gt;</description>
      <pubDate>Tue, 01 Jun 2010 13:56:28 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810281#M3827</guid>
      <dc:creator>chubb87</dc:creator>
      <dc:date>2010-06-01T13:56:28Z</dc:date>
    </item>
    <item>
      <title>use of MKL subroutine</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810282#M3828</link>
      <description>Martin,&lt;DIV&gt;I don't see anythingcriminal in this code. Can you give us the example of the code?&lt;/DIV&gt;&lt;DIV&gt;You can use private thread to send this example.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;--Gennady&lt;/DIV&gt;</description>
      <pubDate>Wed, 02 Jun 2010 05:47:43 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810282#M3828</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2010-06-02T05:47:43Z</dc:date>
    </item>
    <item>
      <title>use of MKL subroutine</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810283#M3829</link>
      <description>I have found the problem:&lt;BR /&gt;&lt;BR /&gt;when I change alpha from 1 to 1.0, then
 it works, because then it is a real instead of an integer.&lt;BR /&gt;&lt;BR /&gt;Note 
that I do not use a variable called alpha, but put in the number 1.0 at 
once:&lt;BR /&gt;&lt;BR /&gt;&lt;PRE&gt;[bash]call mkl_sdiasm(transa,lval,8,1.0,matdescra,val(:,:,m),lval,idiag,ndiag,QVec(:,:,m),lval,Ip_tr(:,:,m),lval)&lt;BR /&gt;[/bash]&lt;/PRE&gt;&lt;BR /&gt;I
 already avoided stack overflow by the optimization option "heap arrays
 = 0".&lt;BR /&gt;&lt;BR /&gt;Now I will try to improve the efficiency (profiling).&lt;BR /&gt;&lt;BR /&gt;
 &lt;BR /&gt;</description>
      <pubDate>Thu, 03 Jun 2010 15:17:48 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/use-of-MKL-subroutine/m-p/810283#M3829</guid>
      <dc:creator>chubb87</dc:creator>
      <dc:date>2010-06-03T15:17:48Z</dc:date>
    </item>
  </channel>
</rss>

