For double-precision ("hardware") real and complex floating-point operations on Matrices, Vectors, and Arrays Maple makes use of its external-calling mechanism to get to compiled code. A great deal of such compiled code for array operations requires what are known as Basic Linear Algebra Subprograms (BLAS). The BLAS libraries provide support not only directly for Matrix-Vector arithmetic but also indirectly in other external compiled libraries used by Statistics, ArrayTools, LinearAlgebra[Modular], etc.

In Maple 6, use was made on MS-Windows of the Intel Math Kernel Library (MKL) to provide BLAS faster than the soft of generic version found on netlib. MKL is still the "vendor" BLAS in use today for MS-Windows, in Maple 11.

On Linux, Solaris, and OSX on PowerPC, another set of BLAS that are faster than the generic implementation are used. This is the Automatically Tuned Linear Algebra Software (ATLAS).

I'm [still] in the process of trying to sort out good use of ATLAS BLAS on OSX for Intel ("mactel"), with an eye to making the most out of the Core2 Duo's abilities. On Linux and Solaris the ATLAS library used is a dynamic shared object. On OSX for PowerPC the ATLAS version used is still a static library, so doesn't appear immediately visible. The rest of this note is mostly related specifically to Linux.

If you have a question about MS-Windows, OSX, the history of BLAS in Maple, sparse BLAS, Goto BLAS, etc, then feel free to post a comment. If people are interested in learning how one can unofficially "upgrade" the ATLAS version in use in Maple on Linux, I could add some detail on that. For most users it would not be worthwhile, as Maple 11 ships with a variety of ATLAS builds each tuned for speed on given architectural flavours of x86 and x86-64. But if you plan on buying one of the coming dual-core dual-cpu Athlon64s, or have some other exotic multi-CPU Linux machine, then it may be of interest. Feel free to add a comment, if it's of interest. Two tips, to end up here: To see details about your machine which Maple uses to decide which ATLAS version to run with, try this from a TTY Linux shell (console, xterm, etc):

< full path for Maple 11 >/bin.IBM_INTEL_LINUX/processor full

To see details on which ATLAS version is in use, try this from a TTY Linux shell (console, xterm, etc):

maple11 -s -z -q -c "define_external('ATL_buildinfo',LIB=\\\"libatlas.so\\\")()" -c quit

Dave Linder Mathematical Software, Maplesoft


Please Wait...