<?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: Libraries in Intel® Fortran Compiler</title>
    <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780110#M27175</link>
    <description>IMSL is provided only in the CVF Professional Edition and does not involve USE DFLIB.  I don't think this particular routine is provided by IMSL anyway.&lt;BR /&gt;&lt;BR /&gt;CVF does provide the Compaq Extended Math Library in all editions, though I don't think it was in DVF 5.  I don't think GMRES is there either.</description>
    <pubDate>Thu, 11 May 2006 23:55:17 GMT</pubDate>
    <dc:creator>Steven_L_Intel1</dc:creator>
    <dc:date>2006-05-11T23:55:17Z</dc:date>
    <item>
      <title>Libraries</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780101#M27166</link>
      <description>Hallo,&lt;BR /&gt;does anybody knows how to use libraries in fortran?&lt;BR /&gt;For example, I would like to use GMRES subprogram for solving linear system of equations. At the beginning I define:&lt;BR /&gt;&lt;BR /&gt;extarnal gmres&lt;BR /&gt;&lt;BR /&gt;and then somewhere in the program I call the subroutine:&lt;BR /&gt;&lt;BR /&gt;call gmres(....)&lt;BR /&gt;&lt;BR /&gt;But I cannot build .exe file because there is an error:&lt;BR /&gt;&lt;BR /&gt;GMRES.obj : error LNK2001: unresolved external symbol _GMRES@28&lt;BR /&gt;&lt;BR /&gt;Does anybody know what is the problem and how I am supose to include those external libraries?&lt;BR /&gt;I am using Visual Fortran 5.0&lt;BR /&gt;Thanks,&lt;BR /&gt;S.</description>
      <pubDate>Tue, 09 May 2006 18:03:31 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780101#M27166</guid>
      <dc:creator>sada77</dc:creator>
      <dc:date>2006-05-09T18:03:31Z</dc:date>
    </item>
    <item>
      <title>Re: Libraries</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780102#M27167</link>
      <description>Hi,&lt;BR /&gt;I have never worked with external but usually use CALL in combination with SUBROUTINE. Did you try your gmres as SUBROUTINE instead of external?</description>
      <pubDate>Tue, 09 May 2006 19:51:14 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780102#M27167</guid>
      <dc:creator>h-faber</dc:creator>
      <dc:date>2006-05-09T19:51:14Z</dc:date>
    </item>
    <item>
      <title>Re: Libraries</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780103#M27168</link>
      <description>There's nothing wrong with the EXTERNAL as it is.  The question is - where is routine GMRES defined?  If it is Fortran code, it needs to have been compiled by the same compiler (DVF 5 you are using?)  If it is C code, then you have to determine what calling convention is required and perhaps add directives to adjust them.  See the Programmer's Guide chapter on mixed-language programming for more information.</description>
      <pubDate>Tue, 09 May 2006 20:19:59 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780103#M27168</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2006-05-09T20:19:59Z</dc:date>
    </item>
    <item>
      <title>Re: Libraries</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780104#M27169</link>
      <description>I am using Fortran compiler, and gmres is subroutine of fortran. And I found that on libraries help mani.&lt;BR /&gt;But my probelm is how to solve (which solver to use) very simple linear equation system:&lt;BR /&gt;A * x = b&lt;BR /&gt;Does anybody know if there is any library in fortran doing that and how to use it?&lt;BR /&gt;How can I find this Programmers Manual, because I have some problems to find it on my computer, is there any online version?&lt;BR /&gt;Regards,&lt;BR /&gt;S.</description>
      <pubDate>Tue, 09 May 2006 20:42:53 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780104#M27169</guid>
      <dc:creator>sada77</dc:creator>
      <dc:date>2006-05-09T20:42:53Z</dc:date>
    </item>
    <item>
      <title>Re: Libraries</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780105#M27170</link>
      <description>Hi,&lt;BR /&gt;there are three interesting pdf files usually in&lt;BR /&gt;C:programsintelfortrancompiler80docs&lt;BR /&gt;&lt;BR /&gt;for_igs.pdf&lt;BR /&gt;for_lib.pdf&lt;BR /&gt;for_lang.pdf</description>
      <pubDate>Tue, 09 May 2006 20:49:43 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780105#M27170</guid>
      <dc:creator>h-faber</dc:creator>
      <dc:date>2006-05-09T20:49:43Z</dc:date>
    </item>
    <item>
      <title>Re: Libraries</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780106#M27171</link>
      <description>GMRES is not provided by the Fortran compiler you are using and is not to be found in the compiler documentation.  I don't know where you saw it.&lt;BR /&gt;&lt;BR /&gt;A Google search shows GMRES as a routine available in MATLAB (a commercial product.)  You will have to find either source for a GMRES routine or use someone else's library that provides one.</description>
      <pubDate>Tue, 09 May 2006 21:06:52 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780106#M27171</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2006-05-09T21:06:52Z</dc:date>
    </item>
    <item>
      <title>Re: Libraries</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780107#M27172</link>
      <description>Hi!&lt;BR /&gt;&lt;BR /&gt;If it is only a very simple (small N) system of linear equations, you should consider to use a direct solver instead of the iterative approach GMRES. Use, for instance, LU-Decomposition. You can find appropriate Fortran code in the book "Numerical Recipes in Fortran". You could also use the routines provided by LAPACK (In this case e.g. ZGETRS and ZGETRF and the corresponding depencdencies). Fortran77-Reference code is available at &lt;A href="https://community.intel.com/www.netlib.org/Lapack" target="_blank"&gt;www.netlib.org/Lapack&lt;/A&gt;. However, these are not tuned for best performance but may work well for small problem sizes. Hope that helps!</description>
      <pubDate>Thu, 11 May 2006 20:13:07 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780107#M27172</guid>
      <dc:creator>christianmeiners</dc:creator>
      <dc:date>2006-05-11T20:13:07Z</dc:date>
    </item>
    <item>
      <title>Re: Libraries</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780108#M27173</link>
      <description>&lt;DIV&gt;If you're using CVF, then you can use IMSL library. In this casea routine you need to solve your set of equations depends on your matrix A type. Take a look at C:Program FilesMicrosoft Visual StudioDF98IMSLHELP, file called MATH.pdf chapter 1. You'll find there a lot of routines for linear systems solving. To use this library, specify before declaration block in your program "USE dflib". Good luck!&lt;/DIV&gt;</description>
      <pubDate>Thu, 11 May 2006 20:36:04 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780108#M27173</guid>
      <dc:creator>cyrillique</dc:creator>
      <dc:date>2006-05-11T20:36:04Z</dc:date>
    </item>
    <item>
      <title>Re: Libraries</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780109#M27174</link>
      <description>I have already tried to use LU Decompostion and it is slow. My matrix is A(1200 x 1200) elements.&lt;BR /&gt;And I tried to use LINPACK too, but the problem is that I need to call some subroutines (which are external) and I dont know how to include them in my project. That doesnt go automatically, and therefore, I cannot build the code.&lt;BR /&gt;Does anybody know how to include this in the libraries, or in a project, or how to install LINPACK?&lt;BR /&gt;Regards,&lt;BR /&gt;S.</description>
      <pubDate>Thu, 11 May 2006 22:09:44 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780109#M27174</guid>
      <dc:creator>sada77</dc:creator>
      <dc:date>2006-05-11T22:09:44Z</dc:date>
    </item>
    <item>
      <title>Re: Libraries</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780110#M27175</link>
      <description>IMSL is provided only in the CVF Professional Edition and does not involve USE DFLIB.  I don't think this particular routine is provided by IMSL anyway.&lt;BR /&gt;&lt;BR /&gt;CVF does provide the Compaq Extended Math Library in all editions, though I don't think it was in DVF 5.  I don't think GMRES is there either.</description>
      <pubDate>Thu, 11 May 2006 23:55:17 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780110#M27175</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2006-05-11T23:55:17Z</dc:date>
    </item>
    <item>
      <title>Re: Libraries</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780111#M27176</link>
      <description>&lt;DIV&gt;Yes, "use dflib" isn't necessary for using IMSL, sorry, and i'm not sure either if it is involved in 5.0 version. But still ifS. wants to use subroutines instead of libraries, he can search for it in &lt;A href="http://www.netlib.org/toms/" target="_blank"&gt;http://www.netlib.org/toms/&lt;/A&gt;. Me personally, i usedNSPIVbut i had a sparse matrix. Though the algorithm no &lt;A href="http://576" target="_blank"&gt;576&lt;/A&gt;, for example,seems to suit for general problems. It uses a modification of gaussian elimination.&lt;/DIV&gt;</description>
      <pubDate>Fri, 12 May 2006 01:53:50 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780111#M27176</guid>
      <dc:creator>cyrillique</dc:creator>
      <dc:date>2006-05-12T01:53:50Z</dc:date>
    </item>
    <item>
      <title>Re: Libraries</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780112#M27177</link>
      <description>&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;GMRES is indeed provided with the professional editions of CVF and IVF. The section numbers in the library helpare 1.1.20 and 1.3.20 respectively.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I guess that the error shown during linking is due to a missing USE statement (e.g., USE NUMERICAL_LIBRARIES).&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;If working under IVF, additional instructions included in the READMEfile must be followed prior to compiling any code that uses IMSL libraries.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Fri, 12 May 2006 05:06:18 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780112#M27177</guid>
      <dc:creator>John4</dc:creator>
      <dc:date>2006-05-12T05:06:18Z</dc:date>
    </item>
    <item>
      <title>Re: Libraries</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780113#M27178</link>
      <description>&lt;DIV&gt;&lt;/DIV&gt;&lt;P&gt;Hi Steve,&lt;/P&gt;&lt;P&gt;He could try using MKL implementation of PARDISO.&lt;/P&gt;&lt;P&gt;PARDISO, especially as implemented in MKL, is almost across the board superior to All other Commercially available linear system solvers, even the hugely more expensive HSL routine (MA57 in particular).&lt;/P&gt;&lt;P&gt;I suggest he look at&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.intel.com/cd/software/products/asmo-na/eng/perflib/mkl/266853.htm" target="_blank"&gt;http://www.intel.com/cd/software/products/asmo-na/eng/perflib/mkl/266853.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;as well as&lt;/P&gt;&lt;P&gt;&lt;A href="ftp://ftp.numerical.rl.ac.uk/pub/reports/shgNAGIR20041.pdf" target="_blank"&gt;ftp://ftp.numerical.rl.ac.uk/pub/reports/shgNAGIR20041.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;wherein it reads "&lt;FONT face="CMR12"&gt;The codes &lt;/FONT&gt;&lt;FONT face="CMTT12"&gt;BCSLIB-EXT&lt;/FONT&gt;&lt;FONT face="CMR12"&gt;, &lt;/FONT&gt;&lt;FONT face="CMTT12"&gt;MA57&lt;/FONT&gt;&lt;FONT face="CMR12"&gt;, and &lt;/FONT&gt;&lt;FONT face="CMTT12"&gt;PARDISO &lt;/FONT&gt;&lt;FONT face="CMR12"&gt;have the fastest solve times.&lt;/FONT&gt;" for definite systems and "&lt;FONT face="CMR12"&gt;Overall, &lt;/FONT&gt;&lt;FONT face="CMTT12"&gt;PARDISO &lt;/FONT&gt;&lt;FONT face="CMR12"&gt;was the fastest code on our set of inde nite problems.&lt;/FONT&gt;" for indefinite systems.&lt;/P&gt;&lt;P&gt;He will have to (possibly) learn to input the Compressed Sparse Row format arrays required by PARDISO, but it's not terribly difficult.&lt;/P&gt;&lt;P&gt;I've found PARDISO to be very memory efficient and blisteringly fast on IA-32, and I'm going to see soon what's it's efficiency/speed characteristics are on EM64T. But first I've got to get my head around IVF 9.1.&lt;/P&gt;&lt;P&gt;Anyway, it says quite a bit that Intel goliath "picked up" PARDISO for inclusion in its MKL.&lt;/P&gt;</description>
      <pubDate>Fri, 12 May 2006 10:23:56 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780113#M27178</guid>
      <dc:creator>brianlamm</dc:creator>
      <dc:date>2006-05-12T10:23:56Z</dc:date>
    </item>
    <item>
      <title>Re: Libraries</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780114#M27179</link>
      <description>&lt;DIV&gt;Brian-Lamm, as you've used PARDISO, could you suggest me if I can use iton a personal one-processor (AMD Athlon)machine? Shall it conserve all its perfomances then? Have you compared pardiso with DSS?&lt;/DIV&gt;&lt;DIV&gt;Ibeg pardon for an off-top, but I didn't find another way to contact Brian.&lt;/DIV&gt;</description>
      <pubDate>Fri, 12 May 2006 14:21:26 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780114#M27179</guid>
      <dc:creator>cyrillique</dc:creator>
      <dc:date>2006-05-12T14:21:26Z</dc:date>
    </item>
    <item>
      <title>Re: Libraries</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780115#M27180</link>
      <description>@sada77: By the way, if no commercial library is avaliable for you, check out for this great compilation of free packages:&lt;BR /&gt;&lt;A href="http://www.netlib.org/utk/people/JackDongarra/la-sw.html" target="_blank"&gt;http://www.netlib.org/utk/people/JackDongarra/la-sw.html&lt;/A&gt;&lt;BR /&gt;Maybe, there is a routine (or package) that better fits your needs (or is easier to include in your projekt).</description>
      <pubDate>Fri, 12 May 2006 16:10:32 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780115#M27180</guid>
      <dc:creator>christianmeiners</dc:creator>
      <dc:date>2006-05-12T16:10:32Z</dc:date>
    </item>
    <item>
      <title>Re: Libraries</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780116#M27181</link>
      <description>&lt;DIV&gt;&lt;/DIV&gt;&lt;P&gt;My experience is soley with PARDISO; I've not used the DSS MKL "components" implementation of sparese solver.&lt;/P&gt;&lt;P&gt;Yes, exe's built (currently one can only statically link to mkl_solver.lib) against PARDISO will run properly on single processor machines.&lt;/P&gt;&lt;P&gt;You would be well advised to visit the MKL forum for (much more expert) advice.&lt;/P&gt;</description>
      <pubDate>Fri, 12 May 2006 23:39:32 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780116#M27181</guid>
      <dc:creator>brianlamm</dc:creator>
      <dc:date>2006-05-12T23:39:32Z</dc:date>
    </item>
    <item>
      <title>Re: Libraries</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780117#M27182</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;GMRES is not predefined in Fortran...you have to get the separate code from other sources like netlib.org etc..I got it from there but got stucked somewhere in debugging..&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 19 Jun 2008 22:22:57 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780117#M27182</guid>
      <dc:creator>gavyas</dc:creator>
      <dc:date>2008-06-19T22:22:57Z</dc:date>
    </item>
    <item>
      <title>Re: Libraries</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780118#M27183</link>
      <description>&lt;P&gt;I would like to second the recommendation to use PARDISO.  The performance is very impressive--single/dual Intel or AMD, all very fast.  In my code I call PARDISO anywhere from 2 to several thousand times on sparse linear systems ranging in size from 4x4 to 83700x83700 (even larger for "real world problems").
One of the nice features with PARDISO is that the setup is separate from the solving, to wit:&lt;/P&gt;
&lt;PRE&gt;
    ! Create a handle for the sparse direct solver
    error = dss_create(handle, MKL_DSS_DEFAULTS)
        
    IF(error .NE. MKL_DSS_SUCCESS) THEN
        WRITE(*,*) 'Unable to initialize DSS, error = ', error
        STOP
    END IF

    CALL initialize_sparse_matrix(transport_data, nRows, nElements)

    error = dss_define_structure(handle, &amp;amp;
        MKL_DSS_NON_SYMMETRIC, &amp;amp;
        rowIndex, nRows, nRows, columns, &amp;amp;
        nElements)   ! Number of non-zero elements

    IF(error .NE. MKL_DSS_SUCCESS) THEN
        WRITE(*,*) 'Unable to define structure, error = ', error
        STOP
    END IF    
    
    ! Reorder the matrix.  Pass a dummy permutation matrix
    ! because we are going to let DSS figure it out
    perm = 0
    error = dss_reorder(handle, MKL_DSS_AUTO_ORDER, perm)
    IF(error .NE. MKL_DSS_SUCCESS) THEN
        WRITE(*,*) 'Unable to reorder matrix, error = ', error
        STOP
    END IF
&lt;/PRE&gt;
&lt;P&gt;Then, to solve a system, requires&lt;/P&gt;
&lt;PRE&gt;
    ! Factor the matrix.
    error = dss_factor_real( handle, MKL_DSS_DEFAULTS, values)    
    IF (error .NE. MKL_DSS_SUCCESS) THEN
        WRITE(*,*) 'Unable to factor matrix, error = ', error
        STOP
    END IF

    ! Solve the system    
    ! Passing BJface(1,1) passes the start of the array.  Due to Fortran's 
    ! sequence association rules, the array will be arranged in the correct 
    ! order.  This should work for any compiler and avoid an expensive 
    ! (both in memory and execution time) penalty associated with a RESHAPE.
    error = dss_solve_real(handle, MKL_DSS_DEFAULTS, &amp;amp;
        BJextface(1,1), 1, BJface(1,1))
    IF (error .NE. MKL_DSS_SUCCESS) THEN
        WRITE(*,*) 'Unable to factor matrix, error = ', error
        STOP
    END IF
&lt;/PRE&gt;
&lt;P&gt;On a slightly separte note, Intel also has a cluster version of PARDISO (which is interesting because it was designed for a shared uniform memory architecture--OpenMP style vice MPI).  We have been toying with the idea of picking up a license for Cluster MKL to try it out.&lt;/P&gt;</description>
      <pubDate>Fri, 20 Jun 2008 00:28:28 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Libraries/m-p/780118#M27183</guid>
      <dc:creator>Dishaw__Jim</dc:creator>
      <dc:date>2008-06-20T00:28:28Z</dc:date>
    </item>
  </channel>
</rss>

