Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

MKL Library Capability

Shibin_B
Beginner
1,456 Views

We are developing a finite element analysis application involving matrix calculations. We are hoping to use MKL from Intel for our requirements.
We need to calculate

• Matrix Inverse
• Matrix Multiplication
• Matrix solving

Input matrix dimensions will be in the order of 10^8

We would like to know will MKL library be able to handle such inputs and calculations.

0 Kudos
15 Replies
SergeyKostrov
Valued Contributor II
1,456 Views
>>We need to calculate >> >>• Matrix Inverse >>• Matrix Multiplication >>• Matrix solving >> >>Input matrix dimensions will be in the order of 10^8... I also would be glad to see comments from Intel software engineers if MKL was ever tested on matricies ( dense or sparse ) with dimensions 100,000,000x100,000,000.Or, what are the largest matricies ever tested with MKL? In case of a "direct" approach without partitioning of source matricies a magic hardware will need ~80,000,000,000,000,000 quadrilion bytes of memory for a double-precision floating-point type ( I assumed dense source matricies ).
0 Kudos
Alexander_K_Intel2
1,456 Views

Hi Shibin,

Its look like your matrices is sparse. In case of positive answer multiplication of such matrices can be implemented via MKL SparseBlas functionality. Inverse can be implemented as solution of system with many rhs by setting instead rhs unit matrix. The typical solver of system with sparse matrix is MKL Pardiso solver - solver based on multifrontal approach. Moreover currently we investigate possibility of expanding it on clusters with distributed memory. So, on the first slight we can satisfy your requirements but it will be better if you send us test matrices to propose best way of solving it

0 Kudos
Shibin_B
Beginner
1,456 Views

Thanks for the reply MR Alexander Kalinkin

You are right our matrix is sparse.

And I am already aware that MKL Pardiso solver can solve sparse matrices efficiently.

But my concern is about the range of inputs MKL pardiso solver can handle and performance .

If you can quote something like this then it will be very much useful.

"We have solved matrix of dimensions xxx with MKL solver with xx cores and xx threads with in x time."

0 Kudos
TimP
Honored Contributor III
1,456 Views

A report on performance of MKL with Florida State sparse matrices:

http://arxiv.org/abs/1302.1078

0 Kudos
mecej4
Honored Contributor III
1,456 Views

Shibin B wrote:

If you can quote something like this then it will be very much useful.

"We have solved matrix of dimensions xxx with MKL solver with xx cores and xx threads with in x time."

I doubt that. Here is a counterexample: I could create a tridiagonal matrix (such a matrix may arise from the discretization of a problem with  a single spatial dimension), and report the results that you specified, but those results would be next to useless if your problem involved two or three spatial dimensions. If one tries hard enough, one may succeed in finding a simple answer to a complex question, but the simple answer is quite likely to be wrong.

0 Kudos
SergeyKostrov
Valued Contributor II
1,456 Views
>>A report on performance of MKL with Florida State sparse matrices: >> >>http://arxiv.org/abs/1302.1078 I'm not sure that the article is about MKL ( there is just one reference of the abbreviation MKL ) and it looks like the authors used some in-house implemented algorithms to test performance of Intel Xeon Phi coprocessor rather than MKL. Here is a quote: ... The SpMV kernel is implemented in C++ using OpenMP and processes the rows in parallel. ... and when testing they compare performance of codes compiled with /O1 and /O3 command line options.
0 Kudos
Zhang_Z_Intel
Employee
1,456 Views

Shibin B wrote:

"We have solved matrix of dimensions xxx with MKL solver with xx cores and xx threads with in x time."

Shibin,

Look at the MKL PARDISO performance charts published on the MKL product page: http://software.intel.com/sites/default/files/Intel-MKL_Pardiso_900.png. This may answer your questions. For details (dimensions, sparsity, pattern, etc.) about the matrices used in the charts, see "The Univ. of Florida Sparse Matrix Collection" (http://www.cise.ufl.edu/research/sparse/matrices/index.html).

0 Kudos
TimP
Honored Contributor III
1,456 Views

Sergey Kostrov wrote:

>>A report on performance of MKL with Florida State sparse matrices:
>>
>>http://arxiv.org/abs/1302.1078

I'm not sure that the article is about MKL ( there is just one reference of the abbreviation MKL ) and it looks like the authors used some in-house implemented algorithms to test performance of Intel Xeon Phi coprocessor rather than MKL. Here is a quote:
...
The SpMV kernel is implemented in C++ using OpenMP and processes the rows in parallel.
...
and when testing they compare performance of codes compiled with /O1 and /O3 command line options.

The paper is cryptic on the subject, but they tested both C++ OpenMP source code implementation and MKL, choosing the better of the two for quotation.  Intel C++ compiler did quite well and exceeded the performance of the MKL which was available when the work was begun on both host and MIC.  I'm not certain whether the final version of the paper is available on line.

OpenMP work balancing is done in the source code version by dynamic or guided schedule.  Internal to MKL it is done apparently by estimating the work of each loop and dividing the work among threads.  KMP_AFFINITY setting is important.

Sorry for mis-identifying Univ. of Florida.

0 Kudos
SergeyKostrov
Valued Contributor II
1,456 Views
>>... I'm not certain whether the final version of the paper is available on line... It is available online and I downloaded it. A quote I used: >>... >>The SpMV kernel is implemented in C++ using OpenMP and processes the rows in parallel. >>... is from the article.
0 Kudos
Gennady_F_Intel
Moderator
1,456 Views

Shibin, we have the research project of Pardiso for distribute system. This version allows to solve such sort of problem you was talking about into original thread. In the case if you are interesting to evaluate this version and give us the feedback -- just let me know.  --Gennady

0 Kudos
Shibin_B
Beginner
1,456 Views

Hi Gennady,

Can you please explain how it differs from the pardiso solver in MKL?

0 Kudos
Gennady_F_Intel
Moderator
1,456 Views

The official package contains the version of Pardiso for shared memory systems, but the research version is dedicated for distribute systems ( mpi based).  

0 Kudos
Gennady_F_Intel
Moderator
1,456 Views

Shibin, are there any interest in evaluation of this package?

0 Kudos
Shibin_B
Beginner
1,456 Views

I did some evaluation of MKL library. I was able to solve sparse matrices of dimension - 2.5 x 10^7 with in 12 Minutes.

System Spec - intel i7 quad core, 12 GB ram,

Mr Fedorov,

We decided to use MKL library. But my project is stalled till September. So license will be purchased only then. It will be better if you can provide me the details about licensing in the mean time.

0 Kudos
Gennady_F_Intel
Moderator
1,456 Views

that's perfect if you was able to solve 2.5 x 10^7  case. MPI version will allow to solve much larger cases.

regard to license:  I have asked my teammate to help you with this information.

0 Kudos
Reply