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-mod... 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:
So, could you use similar environment run the FGMRES process? This will help me a lot.
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-mod...), 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?
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
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=1, the automatic test for the maximal number of iterations will be
As ipar=1, the automatic residual test will be performed
As ipar=0, the user-defined stopping test will not be requested, thus,
RCI_request will not take the value 2
As ipar=0, the Preconditioned FGMRES iterations will not be performed,
thus, RCI_request will not take the value 3
As ipar=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:
The expected solution is:
Number of iterations: 5
This example has successfully PASSED through all steps of computation!
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.
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