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

Problem in using FGMRES

yangzn
Beginner
1,683 Views

I met two problems in  using FGMRES .

In the FGMRES example from MKL itself, like "fgmres_no_precon_c.c" , firstly I need build a compact matrix. And there would be the first problem which is exactly same as refered in https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Static-Linking-with-MKL-in-Debug-mode/td-p/1188256, when I called function "mkl_sparse_d_create_csr". I can't solve this, so I changed my OS from Windows to UBUNTU. And this problem dissappeared.

But the second problem occured.  There is another function named "dfgmres_init" needed in the FGMRES process. And in my debug, there is this imformation : No source available for "dfgmres_init_() at 0x555555595333" . I comment this line, the next funtion can be called successfully. This made me confused. And I changed gdb, it didn't work.

I used these tools:

  • Library version : MKL 2019 & 2020
  • OS info and version : UBUNTU 18.04
  • Compiler version : GCC 7.5 , GDB 8.3 & 10.1

So, could you use similar environment run the FGMRES process? This will help me a lot. 

0 Kudos
9 Replies
Gennady_F_Intel
Moderator
1,663 Views

What do you mean by compact matrix?

I see the link you provided is broken. Could you give us the correct link?

Do you see the problem with Win OS only?



0 Kudos
yangzn
Beginner
1,650 Views
0 Kudos
yangzn
Beginner
1,644 Views

i am sorry that i meant i want a "compressed" format of sparse matrix

0 Kudos
Gennady_F_Intel
Moderator
1,631 Views

Regarding the Static Linking with Debug mode problem that is discussed here (https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Static-Linking-with-MKL-in-Debug-mode/td-p/1188256), the problem has been escalated and we are planning to release this fix in the nearest updates of Intel MKL 2021.

The MKL Sparse routines support CSR, CSC, BSR, Diagonal, COO, and Skyline format. Which of them did you try out? Could you give us the reproducer of the problem you want to solve?



0 Kudos
yangzn
Beginner
1,626 Views

i wanted to run  the FGMRES example from MKL itself, like "fgmres_no_precon_c.c"

0 Kudos
Gennady_F_Intel
Moderator
1,618 Views

How did you link this case?

what version of mkl did you try?


0 Kudos
Gennady_F_Intel
Moderator
1,617 Views

playing the the current version of MKL 2020 u4, win OS, threaded by OpenMP, LP64 mode

I see no problem. Here is the log file:

icl /Qmkl fgmres_no_precon_c.c 

>fgmres_no_precon_c.exe

--------------------------------------------------

The SIMPLEST example of usage of RCI FGMRES solver

to solve a non-symmetric indefinite non-degenerate

    algebraic system of linear equations

--------------------------------------------------


Some info about the current run of RCI FGMRES method:


As ipar[7]=1, the automatic test for the maximal number of iterations will be

performed

+++

As ipar[8]=1, the automatic residual test will be performed

+++

As ipar[9]=0, the user-defined stopping test will not be requested, thus,

RCI_request will not take the value 2

+++

As ipar[10]=0, the Preconditioned FGMRES iterations will not be performed,

thus, RCI_request will not take the value 3

+++

As ipar[11]=1, the automatic test for the norm of the next generated vector is

not equal to zero up to rounding and computational errors will be performed,

thus, RCI_request will not take the value 4

+++


 The system has been solved


 The following solution has been obtained:

computed_solution[0]=-1.000000e+00

computed_solution[1]=1.000000e+00

computed_solution[2]=-3.543510e-16

computed_solution[3]=1.000000e+00

computed_solution[4]=-1.000000e+00


 The expected solution is:

expected_solution[0]=-1.000000e+00

expected_solution[1]=1.000000e+00

expected_solution[2]=0.000000e+00

expected_solution[3]=1.000000e+00

expected_solution[4]=-1.000000e+00


 Number of iterations: 5


This example has successfully PASSED through all steps of computation!


0 Kudos
yangzn
Beginner
1,610 Views

thanks for your help! 

i used simple icc compiler without any IDE on UBUNTU, and successfully.

so maybe there is some problem with the IDE.

so i decided to use cmake someway to run my own code.

0 Kudos
Gennady_F_Intel
Moderator
1,606 Views

yes, using the command line is the very first step to check if the example works correctly. Using the IDE you need to check the list of mkl's libraries you link. We always recommend here to use the mkl linker online adviser to see the list of libs you need to link with. Here is the link to this LA : https://software.intel.com/content/www/us/en/develop/articles/intel-mkl-link-line-advisor.html


0 Kudos
Reply