LAPACK and ScaLAPACK Survey Results - ordered by question

[view answers grouped by response]


LAPACK Usage


Question #12. Please describe any tools or helper functions that you frequently implement to assist your applications in using LAPACK?

Responses
CLAPACK
C++ interfaces
Numeric Python
1. Perhaps an architecture independent diagnostic, that would interrogate a particlur system for different L1 and L2 cache boundaries and suggest optimum matrix size. 2. DGEMM_HALF ... ie knowing my matrix solution will be symmetric in advance,i would like a half matrix multiply that scales as well as a vendor supplied DGEMM.
We have built a C++ interface for BLAS and LAPACK that uses the ability to overload arguments and removes the need to encode precision into the name of the method/subroutine. We have also defined the simples possible matrix concept and use generic linear algebar operations that interface to LAPACK and BLAS.
None.
I usually wrap the f77 calls in f90 shells that allocate workspace memory as required.
#if SP2 #define C2FCALL(x) x #else C2FCALL(x) x##_ #endif
I mostly use lapack via Scipy, and I find the wrapped interface satisfactory. I'm sure it could be improved, but I have never felt that part to be a development bottleneck for me.
wraper routines that dynamically allocate the work spaces
I typically write "wrapper functions" that call LAPACK while hiding many of its arguments from the nonlinear solver or optimization solver. When using C++, these functions inherit the interface from an abstract matrix class.
In my C codes, I always have to make a wrapper to hold dummy integers, etc. for the options I don't use.
Compact wrappers
sparse routines and search routines have been written.
Class wrappers in C++
boost python bindings f2py
C/C++ wrappers
Our helper functions abstract from indices, much like FLAME does
I/O Stuff for printf-debugging of small examples
NETLIB
C headers
OO wrapper
C++ class package for matrices.
Home grown wrappers for LAPACK that allocated work space.
explicit prototypes
Wrappers that handle memory allocation.
self-developed tools
none
Getting LAPACK templated is one of the greatest obstacles. We are currently trying to use a modified f2c to do the job of converting the hard coded types 'double' and 'float' into our own MpIeee class.
Functions to display matrix elements to check correctness
matrix plotters (ascii, graphical, etc)
my own c++ templated lapack wrappers
PMD (Parallel multi-domain Decomposition), see : http://www.idris.fr/data/publications/PMD
I frequently write wrapper routines to make repeated calls from C more straightforward. I often do not need access to the full range of input arguments, so I write the C wrapper to supply the "extraneous" arguments.
I have not implemented such tools. I think that the use of lapack routines is quite simple.
I have not implemented such tools. I think that the use of lapack routines is quite simple.
plane rotations, reflections, Toeplitz and Cauchy solvers, updating and downdating,








Thu May 23 03:03:44 2013
0 seconds