MKL, Taucs and Colsol Solvers
What is the difference between the MKL, Taucs and Colsol solvers?
When the Frame Analysis module (Frame) was first released in 1989, early adopters of computerised structural analysis gasped in amazement as an IMB XT-compatible computer solved a simple portal frame problem in under a minute. Computer hardware has improved dramatically since, and today the same analysis completes in a fraction of a second. User expectations have grown exponentially too, and structural models have increased remarkedly in size and complexity. As of mid-2011, Frame and Sumo feature an analysis engine called the MKL solver, that significantly speeds up the analysis of large and complex models.
This article provides background information on past and present solver options when performing analyses in Frame or Sumo.
Static Analysis Options
The first version of Frame used a “frontal” solver. The solver was based on a method that moves through the stiffness matrix in a “front”, solving only the equations in the front in core memory (RAM) while storing the rest on disk. This approach was necessary because of the limited core memory capacity of the computers at the time.
In the mid 1990’s, Frame got a new solver based on the Taucs Library of Sparse Solvers, developed by the University of Tel Aviv. The Taucs solver uses double-precision real numbers. The storage scheme for the stiffness matrix uses a sparse matrix format, which means only nonzero values are stored (zero values are omitted). Larger analyses are possible because storage is optimised and can be performed out-of-core, and analysis speed increases because fewer matrix multiplications are performed. The Taucs solver has performed very well and is still available as an analysis option in the 32-bit version of Frame.
A few years later, Frame’s frontal solver was replaced by another in-core solver called Colsol. This solver is still available today as an analysis method. It stores the stiffness matrix in columns, optimizing the heights of the columns to the minimum necessary. The solver has worked well as the speed and memory capacities of computers evolved.
The Colsol solver stores the load vector and displacements with extended precision (using more significant digits in calculations) and therefore yields very high accuracy. Compared to the later solvers, however, it is quite slow, and the analysis size is limited.
The latest MKL solver brings a dramatic improvement in analysis performance. The solver uses the Intel® Math Kernel Library solvers; the specific solver is also known as “Pardiso”, an acronym for “Parallel Direct Solver”. The MKL solver can dynamically switch between in-core and out-of-core processing depending on the available core memory.
“Parallel” implies that it uses parallelism to utilize all available central processing unit (CPU) cores, a huge speed benefit for users with multi-core computers. Coming from Intel, certain routines also employ specific chip technologies built into Intel CPUs to further speed up calculations.