Hello, wehave developed a software for structural analysis and design.The software will use finite element analsysis for the purpose of analysisng structures. We would like to check the feasibility of the Intel Math Kernel library for finite element calculation purposes.
Type of matrices
We deal with matrices which are sparse i.e. many of its eleemnts are zero.
Operations required to be carried out using the matrices include;
i. Matrix multiplication
ii. Matrix addition
iii. Matrix subtraction
iv. Solving a system of linear simultaneous equations
Both iterative and non-iterative techniques are required to solve the system of linear simultaneous equations.
We have the FE analysis calculations written in MathCAD and now would like to use the Intel Math Kernel Library to perform the above operations.
We are interested in using the Intel Math Kernel library to carry out the above stated calculations of matrices .We would like to like to have a demonstration/ evaluation version of the Intel Math Kernel library and would like to know how to go about using the functions/ sub-routines.
i. We deal with matrices which are sparse (for carrying out finite element analysis).As you see these matrices, have a large number of elements 0. Does the Intel Math Kernel library have functions/ sub-routines that will convert a full matrix to sparse form by squeezing out any zero elements? OR Will the user of the Intel Math Kernel Library have to provide such a matrix (i.e. a matrix wherein the 0s are already squeezed out)?
ii. As we have the finite element calculations written in MathCAD, how do we go about using the Intel Math Kernel Library to evaluate its efficiency/ feasibility during the evaluation period? Any suggestions for these will be gratefully appreciated.
MKL library has several matrix format that supports sparse matrices (you only need to store non-zero values in your matrices).There are a few solvers provided that directly work with sparse matrices (PARDISO\DSS). Plus, the library also have many rouitines that does matrix computations (addition, multiplication, etc...) with different matrix types (sparse, banded, etc...).
I suggest you to read the documents that comes with the library. You will find most of the functionality you are asking in the library
I'm in process of going through the documentation indetail.
Actually, the matrices we have (i.e the ones generated by our program) store non zero AND zero values.
Does it mean that the matrix we provide to theIntel Math Kernel Library sub-routines have to provide such a matrix (i.e. a matrix wherein the 0s are already squeezed out)?
Because in the documentation I read , regarding the Sparse BLAS Level 1 routines, it says;
The Sparse BLAS Level 1 Routines and Functions and Sparse BLAS Level 2 Routines and Level 3 routines and functions operate on sparse vectors and matrices. These routines perform vector operations similar to the BLAS Level 1, 2, and 3 routines. The Sparse BLAS routines take advantage of vector and matrix sparsity: they allow you to store only non-zero elements of vectors and matrices. Intel MKL also supports Fortran 95 interface to Sparse BLAS routines.
So, my question is (again re-stating):
Does the Intel Math Kernel library have functions/ sub-routines (like SPARSE Blas Level 1 routines) that will convert a full matrix to sparse form by squeezing out any zero elements? OR Will the user of the Intel Math Kernel Library have to provide such a matrix (i.e. a matrix wherein the 0s are already squeezed out)?
Please can anyone help?