<?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 How can I interrupt / abort LAPACK and BLAS methods which do not support callback ? in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-can-I-interrupt-abort-LAPACK-and-BLAS-methods-which-do-not/m-p/1135392#M25962</link>
    <description>&lt;P&gt;I'm computing some SVDs and other time-consuming things using the mkl C libraries.&lt;/P&gt;

&lt;P&gt;I've found that some methods implement a progress call back (https://software.intel.com/en-us/mkl-developer-reference-c-mkl-progress), but that does not seem to be the case for the calls I'm interested in ( _gesvd, _gesdd,&amp;nbsp;_gemm,&amp;nbsp;_imatcopy ).&lt;/P&gt;

&lt;P&gt;Is there a clean work-around for this issue?&amp;nbsp; I would ideally like to be able to post "progress", but at least I would like to be able to cleanly "abort" the computation by user-interaction.&lt;/P&gt;</description>
    <pubDate>Mon, 26 Jun 2017 13:43:22 GMT</pubDate>
    <dc:creator>MiauCat</dc:creator>
    <dc:date>2017-06-26T13:43:22Z</dc:date>
    <item>
      <title>How can I interrupt / abort LAPACK and BLAS methods which do not support callback ?</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-can-I-interrupt-abort-LAPACK-and-BLAS-methods-which-do-not/m-p/1135392#M25962</link>
      <description>&lt;P&gt;I'm computing some SVDs and other time-consuming things using the mkl C libraries.&lt;/P&gt;

&lt;P&gt;I've found that some methods implement a progress call back (https://software.intel.com/en-us/mkl-developer-reference-c-mkl-progress), but that does not seem to be the case for the calls I'm interested in ( _gesvd, _gesdd,&amp;nbsp;_gemm,&amp;nbsp;_imatcopy ).&lt;/P&gt;

&lt;P&gt;Is there a clean work-around for this issue?&amp;nbsp; I would ideally like to be able to post "progress", but at least I would like to be able to cleanly "abort" the computation by user-interaction.&lt;/P&gt;</description>
      <pubDate>Mon, 26 Jun 2017 13:43:22 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-can-I-interrupt-abort-LAPACK-and-BLAS-methods-which-do-not/m-p/1135392#M25962</guid>
      <dc:creator>MiauCat</dc:creator>
      <dc:date>2017-06-26T13:43:22Z</dc:date>
    </item>
    <item>
      <title>Hi Miaucat,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-can-I-interrupt-abort-LAPACK-and-BLAS-methods-which-do-not/m-p/1135393#M25963</link>
      <description>&lt;P&gt;Hi Miaucat,&lt;/P&gt;

&lt;P&gt;I am afraid the mkl_progress do not support for BLAS, only for some functions of LAPACK, Scalapack and DSS/PARDISO. However, I checked, seems also do not support for ?gesvd. If you would like to find a work-around, please try with pardiso or dss. I've tested that it can work correctly in PARDISO and DSS solver. Just add following method before main function:&lt;/P&gt;

&lt;P&gt;int mkl_progress( int* ithr, int* step, char* stage, int lstage )&lt;BR /&gt;
	{&lt;BR /&gt;
	&amp;nbsp; char buf[BUFLEN];&lt;BR /&gt;
	&amp;nbsp; if( lstage &amp;gt;= BUFLEN ) lstage = BUFLEN-1;&lt;BR /&gt;
	&amp;nbsp; strncpy( buf, stage, lstage );&lt;BR /&gt;
	&amp;nbsp; buf[lstage] = '\0';&lt;BR /&gt;
	&amp;nbsp; printf( "In thread %i, at stage %s, steps passed %i\n", *ithr, buf, *step );&lt;BR /&gt;
	&amp;nbsp; return 0;&lt;BR /&gt;
	}&lt;/P&gt;

&lt;P&gt;Thanks.&lt;/P&gt;

&lt;P&gt;Best regards,&lt;BR /&gt;
	Fiona&lt;/P&gt;</description>
      <pubDate>Tue, 27 Jun 2017 08:05:43 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-can-I-interrupt-abort-LAPACK-and-BLAS-methods-which-do-not/m-p/1135393#M25963</guid>
      <dc:creator>Zhen_Z_Intel</dc:creator>
      <dc:date>2017-06-27T08:05:43Z</dc:date>
    </item>
    <item>
      <title>Thanks. I have not looked</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-can-I-interrupt-abort-LAPACK-and-BLAS-methods-which-do-not/m-p/1135394#M25964</link>
      <description>&lt;P&gt;Thanks. I have not looked into *pardiso* at all yet and will do.&lt;/P&gt;

&lt;P&gt;Do you know what the reason is for mkl_progress not supproting SVD routines?&lt;BR /&gt;
	Is this something which could be requested for future version of MKL, or is there something preventing this from being a sensible suggestion?&lt;/P&gt;

&lt;P&gt;Not beeing able to exit long computations in a controlled manner seems a very bad property for a library.&lt;/P&gt;</description>
      <pubDate>Tue, 27 Jun 2017 08:10:02 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-can-I-interrupt-abort-LAPACK-and-BLAS-methods-which-do-not/m-p/1135394#M25964</guid>
      <dc:creator>MiauCat</dc:creator>
      <dc:date>2017-06-27T08:10:02Z</dc:date>
    </item>
  </channel>
</rss>

