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

pardiso_handle_store Segmentation fault

Ling__Alex
Beginner
659 Views

Hi,

I have been using `pardiso`, and everything works fine. I can successfully factorize a large sparse matrix and later solve systems using the factorization. Now I wish to save the factorization to a file, so I don't need to do the factorization every time I run the application. I believe `pardiso_handle_store` is the correct function to use, but I keep getting the `Segmentation fault (core dumped)` error.

The relevant code and the console output can be found in this gist: https://gist.github.com/hkalexling/f8e0a22d1a29569a4012f717de8c7798.

Any help would be appreciated!

Alex

0 Kudos
1 Solution
Gennady_F_Intel
Moderator
659 Views

Alex, the code (https://gist.github.com/hkalexling/f8e0a22d1a29569a4012f717de8c7798) contains two issues: 

1. int pt[64];  --> void *pt[64];

2. pt has to be initialized by zero before the very first usage, I added for ( i = 0; i < 64; i++ )   {  pt = 0;  }

The code works on our side. The updated example ( test_#1.cpp) of the code is attached.

Please check and let us know how it works.
 

View solution in original post

0 Kudos
8 Replies
Gennady_F_Intel
Moderator
659 Views

where are BTB_vals, BTB_rows, BTB_cols arrays? How could we check the problem on our side? could you give us a comprehensive test?

which version of mkl do you use?

0 Kudos
Ling__Alex
Beginner
659 Views

Hi Gennady,

Thank you for your reply!

I've updated the gist to include a minimum working example where I was trying to save the factorization of a 3x3 identity matrix. The complete console output as well as the Makefile are also included.

I noticed that the function did generate a `handle.pds` file before crashing. A zip containing the file is attached.

Other information:

- OS: Ubuntu 18.04.2 LTS

- Compiler: G++ 7.4.0

- mkl_get_version_string: Intel(R) Math Kernel Library Version 2019.0.5 Product Build 20190808 for Intel(R) 64 architecture applications

- CPU: 12 core Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz

Thanks,

Alex

0 Kudos
Gennady_F_Intel
Moderator
659 Views

Yes, we have to cofirmed the problem on our side with the latest version 2019.5 on lin and win os both.

0 Kudos
Gennady_F_Intel
Moderator
659 Views

please let us know how this issue impacts your business, it will help us to properly prioritize this problem. You may also submit the same issue to the intel online service center where you may share all private details.

0 Kudos
Ling__Alex
Beginner
659 Views

Hi Gennady,

Thank you for your help. May I know the version in which the `pardiso_handle_store` function is working? I tried the 2019 initial release and the 2018 initial release, and they both gave the same error. Alternatively, is it possible for me to implement this function myself? 

Sorry I am not working for any business. I am a researcher trying to implement my algorithm using MKL.

Thanks,

Alex

0 Kudos
Gennady_F_Intel
Moderator
660 Views

Alex, the code (https://gist.github.com/hkalexling/f8e0a22d1a29569a4012f717de8c7798) contains two issues: 

1. int pt[64];  --> void *pt[64];

2. pt has to be initialized by zero before the very first usage, I added for ( i = 0; i < 64; i++ )   {  pt = 0;  }

The code works on our side. The updated example ( test_#1.cpp) of the code is attached.

Please check and let us know how it works.
 

0 Kudos
Gennady_F_Intel
Moderator
659 Views

Have you had a chance to take the updated examples?

0 Kudos
Ling__Alex
Beginner
659 Views

Hi Gennady,

Sorry for the delay.

I have just tested it and it does work. My bad!

Thanks for your help, and happy (belated) Thanksgiving!

Alex

0 Kudos
Reply