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

Eigen::PardisoLLT is slower than Eigen::SimplicialLLT

Li__Jing1
Beginner
472 Views

Hi,

I followed this page(https://eigen.tuxfamily.org/dox/TopicUsingIntelMKL.html) to use Eigen::PardisoLLT to solve a sparse linear system(88869x88869). I have MKL(student version) installed. I’ve successfully compiled, linked and run it. However, it’s 5 times slower than Eigen::SimplicialLLT. Am I doing anything wrong there?

 

Best!

Jing

0 Kudos
4 Replies
Gennady_F_Intel
Moderator
472 Views

What are execution times for Eigen::SimplicialLLT and Eigen::PardisoLLT? 

0 Kudos
Li__Jing1
Beginner
472 Views

For one solve, Eigen::SimplicialLLT takes 2.74s, Eigen::PardisoLLT takes 12.107s. By the way, I am solving a system Ax = B where B is a sparse matrix(88869x354)

0 Kudos
Gennady_F_Intel
Moderator
472 Views

Could you set the msglvl == 1 and share this log file? 

Could you give us the reproducer?

0 Kudos
Li__Jing1
Beginner
472 Views

Hi,

I think I've found out which part slowed the program down. I changed the right-hand side (and the variable to hold the solution) to a dense matrix. And the execution time for one solve is 1.9s. I don't know why but Eigen seemed to chop the sparse right-hand side to 4 columns and assemble the solution later, which seems to be unnecessary to me. I was expecting a larger speedup from pardiso because the CPU usage went from 20%(SimplicialLLT) to 80%(PardisoLLT with parallel MKL). I thought I can get it 4 times faster based on the CPU usage. Do you think I've got a reasonable speedup already?

 

 

0 Kudos
Reply