- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

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.

Link Copied

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

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

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

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."

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

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.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

**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.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

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).

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Sergey Kostrov wrote:

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

>>

>>http://arxiv.org/abs/1302.1078I'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 isimplemented in C++ using OpenMPand 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.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

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

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Hi Gennady,

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

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

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

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

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

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

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.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

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.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page