5
$\begingroup$

I would like to analyze some well-used scientific codes that make heavy use of LAPACK. I.e. I'm looking for codes that both spend a lot of time within LAPACK functions and use LAPACK non-trivially (i.e. calling more than just DGEMM). I would be interested in applications that use either sequential LAPACK or ScaLAPACK or any other implementation that exposes the same interface.

What are some good examples that are easy to obtain? Ideally they would be open source or available-on-request.

$\endgroup$
7
  • 1
    $\begingroup$ I suspect that any well-used scientific code that makes heavy use of LAPACK is not going to be easily accessible, from personal experience. I will be very interested if there are indeed easily accessible codes, since I'll want to study them as well. $\endgroup$ Feb 26, 2012 at 20:00
  • $\begingroup$ Performance analysis or some other? $\endgroup$ Feb 26, 2012 at 21:24
  • $\begingroup$ @AronAhmadia my goal is to determine if the community uses the various specialized storage types (general, triangular, symmetric, hessenberg, ...) effectively $\endgroup$
    – MRocklin
    Feb 26, 2012 at 23:20
  • $\begingroup$ @GeoffOxberry Yeah, I'm afraid of this. There must be some good projects out there though. I'm personally familiar with the Weather Research and Forecasting code (WRF). It uses LAPACK and is generally available upon request. $\endgroup$
    – MRocklin
    Feb 26, 2012 at 23:22
  • $\begingroup$ Now I'm confused. When you say accessible, do you mean that the source code is easy to read, or easy to obtain? And by heavy use, do you mean 'uses a lot of LAPACK function calls', or 'spends most of its time in a LAPACK function call'. Also, do you want to include ScaLAPACK in your search, since the more computationally demanding codes are parallel? $\endgroup$ Feb 26, 2012 at 23:50

4 Answers 4

3
$\begingroup$

It's hard to know where to start, as there are so many codes out there using LAPACK and your criteria are a bit… subjective (“use LAPACK non-trivially”). I'll throw in some pointers:

  • you can find here an old survey of LAPACK users, which gives some information into who uses it, and what are they using it for
  • most quantum chemistry codes out there use LAPACK for their linear algebra (CPMD, CP2K, octopus, to cite only a few open-source codes)
  • you could also go to the packages list of your favorite Linux distro, and check out what packages depend on lapack
$\endgroup$
1
$\begingroup$

ATLAS does a pretty brutal group of grinding metrics on LAPACK and BLAS. You might be able to snag some code out of there that meets your needs.

I might also suggest checking out Numpy and Scipy as both have very large unit-tests that likely span large parts of that phase-space. Additionally, they provide hooks down to the LAPACK functions if you want to call those directly on arrays of your creation.

Another tack to the problem is possibly searching Github for the LAPACK calls of interest, and seeing what code surfaces!

$\endgroup$
1
$\begingroup$

I wrote an electromagnetic simulation code S4 which is limited entirely by the ability to solve a dense nonsymmetric eigenvalue problem (ZGEEV). The code is open source and written in C++.

$\endgroup$
0
$\begingroup$

Have a look at the RADAU IIA solver by E. Hairer (http://www.unige.ch/~hairer/software.html). It uses LAPACK as a backbone for an implicit Runge-Kutta method for ODEs.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.