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

Problem about PARDISO

Chuanrong_Jin
Beginner
831 Views

Hi,

I have a question about PARDISO in MKL.

I try to compile and link source files using PARDISO of Intel MKL 10.3 Update 9 with Microsoft Visual C++ 2010.

For a PARDISO's sample pardiso_sym_c.c, I'm able to make executable file properly and get correct result by executing it.

When I modify spardiso_sym_c.c as below and build it in debug mode, however, execution file launches Visual Studio Just-In-Time debuger at the analysis phase.
The other parameter settings are the same as pardiso_sym_c.c.

1)Use 2 x 2 symetirc matrix including off-diagonal component

2)Use reordering from METIS

3)Use OOC mode

If MMD reordering or incore mode is selected, no debuger launches and correct answer is obtained.

Moreover, when I compile and link pardiso_sym_f.f with Intel Fortran Compiler v11.0
after modifying the source in the same way, following error messages are printed.

 Start reordering ...
forrtl: severe (157): Program Exception - access violation
Image              PC        Routine            Line        Source
testsmallmatrixfo  00515B71  Unknown               Unknown  Unknown

Isn't it possible to use PARDISO with the condition above, or is it a bug ?

If I use MKL 10.1 Update 1, no error is printed with Intel Fortran Compiler v11.0,
and followng error is printed with Microsoft Visual C++ 2010.

ERROR during symbolic factorization: -9

OS and hardware are as follows.

OS : Microsoft Windows XP Professional Version 2002 Service Pack 3
Hardware : HP xw4600 Workstation, Intel Core(TM)2 Duo CPU E8500 3.16Ghz

I would really appreciate your help.

With best regards

0 Kudos
14 Replies
Chuanrong_Jin
Beginner
831 Views
Sorry, I forget to write whether I use 32bit or 64bit OS. I use 32bit OS.
0 Kudos
Gennady_F_Intel
Moderator
831 Views
1) regarding the first issue with pardiso_sym_c.c with OOC mode How do you link the example? do you link 32 bit libraries? Can you check the problem with the latest 10.3 Update 11? 2) regarding the access violation with version of MKL bundled with Fortran Compiler 11.0 ( this is MKL v.10.2 * if I am not mistaken) - Yes we have already fixed several similar issues. Do you see the similar issue with the latest version too?
0 Kudos
Chuanrong_Jin
Beginner
831 Views
1) Even if I use MKL v10.3 Update11, Visual Studio Just-In-Time debuger launches in the same way. I linked the example after setting the project as below. i)Select the C/C++ -> General tab. And, in the Additional Include Directories line, add the following paths. C:\Program Files\Intel\Composer XE 2011 SP1.344\mkl\include C:\Program Files\Intel\Composer XE 2011 SP1.344\compiler\include ii)Select the Link -> General tab. And, in the Additional Library Directories line, add the following paths. C:\Program Files\Intel\Composer XE 2011 SP1.344\mkl\lib\ia32 C:\Program Files\Intel\Composer XE 2011 SP1.344\compiler\lib\ia32 iii)Select the Link -> Input tab. And, in the Additional Dependencies, add the following MKL libraries. mkl_solver.lib mkl_intel_c.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib 2) Even if MKL v10.3 Update11 is used, the same access violation error occurs. However, no error occurs when MMD reordering or incore mode is selected, or build the project in Release mode. I modified pardiso_sym_c.c and pardiso_sym_f.f to treat 2 x 2 matrix, which is very small. Is there any problem to use such a small matrix ?
0 Kudos
Gennady_F_Intel
Moderator
831 Views
okay. thanks. I haven't reproduce the issue on my side. Pls give me the exact example you use.
0 Kudos
Chuanrong_Jin
Beginner
831 Views
Thank you very much. I give you the source files used.
0 Kudos
Gennady_F_Intel
Moderator
831 Views
well, thanks. I checked these examples with MKL 10.3.11 from command line but not from microsoft IDE . I have no Microsoft Visual C++ 2010 available right now. ia32 version of libraries: imkl_intel_c.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib ( mkl_solver.lib not needed to be linked explicitly ) also, all versions of reodering has been checked (default, mmd, metis, openmp mmd). all tests passed. i attached these log into this thread. the problem may be came from Visual Studio, Do you see the problem when link with mkl_sequential.lib?
0 Kudos
Chuanrong_Jin
Beginner
831 Views
Thank you for your reply and checking. Even if mkl_sequential.lib is linked, the same problem occurs. For a supplementary information, size of largest supernode is extraordinary large value 5341702365642754 when I use the execute file build by Release mode of Visual Studio with the same source. (Debuger does not launch when the Release mode is used. ) I attached the logs. Sorry, Japanease is included.
0 Kudos
Gennady_F_Intel
Moderator
831 Views
I would recomend you to build these example from command line without VS. I used the same version MKL and on my side - we don't see the problem. I will try to find VS2010 and check the problem there.
0 Kudos
Chuanrong_Jin
Beginner
831 Views
Thank you for your reply. I builded the source from command line, however, the programs did't work properly. The commands I used and the logs of the programs are attached. I use the Incremental Linker Version 10.00.30319.01 of Microsoft. Are there any mistake in the way of compile and link?
0 Kudos
Gennady_F_Intel
Moderator
831 Views
Yes, I checked how it works on my side with the latest 11.0. the example works on my side. but I slighly changed the linking line you uses because of you don't need to link mkl_solver.lib and treading and sequential version on time: here - your linking line "mkl_solver.lib" "mkl_intel_c.lib" "mkl_intel_thread.lib" "mkl_core.lib" "libiomp5md.lib" "mkl_sequential.lib" I replaced the following: "mkl_intel_c.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib" - also, I attached the makefile I used for testing this example. it is required to rename makefile.txt to makefile because this impossible to upload to this forum file w/o extentions
0 Kudos
mecej4
Honored Contributor III
831 Views

Chuanrong Jin wrote:

Thank you for your reply.
I builded the source from command line, however, the programs did't work properly.
The commands I used and the logs of the programs are attached.
I use the Incremental Linker Version 10.00.30319.01 of Microsoft.
Are there any mistake in the way of compile and link?

I built and ran your example program pardiso_sym_c.c using MS C 16.00.40219.01 (32-bit) and the same IA-32 version of MKL as you, but on a system with a dual-core processor. The results (the numerical part of) agree with those in your log file, with one exception: size of largest supernode: 2 The corresponding result that you obtained (5341599286427650) is out of the range of 32-bit integers. One may wonder how this came to happen. Do you have any compiler switches in your command line, or in configuration files, that attempt to use 64-bit (8-byte) integers?

0 Kudos
Konstantin_A_Intel
831 Views
Hi, I reproduced the failure. It takes place when 4 conditions are met: 1)Use 2 x 2 symetric matrix including off-diagonal component 2)Use reordering from METIS 3)Use OOC mode 4)Win32 (probably there's a problem on other platforms - did not check). Thank you for the report! We will try to fix this issue as soon as possible. As a workaround I would not recommend you to use OOC mode with such small matrices (it makes no sence). Regards, Konstantin
0 Kudos
Konstantin_A_Intel
831 Views
I forgot to note that I run it under MS VS 2010.
0 Kudos
Chuanrong_Jin
Beginner
831 Views
Thank you for your kind reply. I will try to build the sources with 64bit machine.
0 Kudos
Reply