LAPACK and ScaLAPACK Survey Results - ordered by question
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, |
|