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

using pardiso

array123
初学者
4,133 次查看
hi,
i am new in using pardiso
can anyone tell me how to compile and run a c program using PARDISO in a multiple processor cluster. The architecture is INTEL 64 bit.
0 项奖励
21 回复数
Gennady_F_Intel
主持人
3,527 次查看
The current version of PARDISO is SMP version but not a version for Cluster.
--Gennady
0 项奖励
array123
初学者
3,527 次查看
By cluster i mean parallel processing. Can we do it by giving more no. of threads and if so then how to do it. Pardiso always reports no. of processors as 1
0 项奖励
Gennady_F_Intel
主持人
3,527 次查看
ok. I've got what you mean. You can just link your application with mkl's threaded libraries and then pardiso will automatically execute in parallel mode. Please look at the MKL Linker Adviser and you can find How to link your application with threaded versions of MKL.
What MKL version are you using? In the case of version > 10.2 you don't need to set the number of threads PARSDISO will be running explicitly ( iparm(3) is not used).
--Gennady
0 项奖励
array123
初学者
3,527 次查看
hi,
thanks for early reply. I am using mkl 10.2.5.035. I saw the link advisor, what i am not getting is what essential changes do i need to make in program to run it parallel, i mean values of iparm. And while compiling i should use mpicc *.c or gcc *.c to run pardiso in parallel mode.
Note: I want to run c program as serial code and inside c program use pardiso in parallel mode.
0 项奖励
Gennady_F_Intel
主持人
3,527 次查看
- it will depends on many factors, but for the first attempt, you can use the default values of iparm.
just set iparm(1) == 0 and items iparm(2)-iparm(64) are filled with default values.
- use gcc compiler
>>Note: I want to run c program as serial code and inside c program use pardiso in parallel mode.
- yes, if you will link the application with threaded MKL's libraries, then PARDISO will be running in parallel mode ( the number of threads == the nubmer of CPU core by the default)
may be I have to ask one more question: are you going to use another MKL's routines in your application?
--Gennady

0 项奖励
array123
初学者
3,527 次查看
hi,
i am not using any other MKL library.
I have a c program running in serial using gcc compiler. In this program to solve equation of type Ax=b i am calling PARDISO. Now i want to use it in such that internally PARDISO works on parallel way so as to reduce computational time.
0 项奖励
array123
初学者
3,527 次查看
i tried example problem pardiso_unsym_c.c setting value of iparm[0]=1 but it is giving segmentation fault.
0 项奖励
Gennady_F_Intel
主持人
3,527 次查看
pardiso_unsym_c.c from MKL's examples?
how did you build this exmple?
--Gennady
0 项奖励
array123
初学者
3,527 次查看
i did it using
gcc -O3 pardiso_unsym_c.c $MKLPATH/libmkl_solver_lp64.a -Wl,--start-group $MKLPATH/libmkl_intel_lp64.a $MKLPATH/libmkl_gnu_thread.a $MKLPATH/libmkl_core.a $MKLPATH/libmkl_blacs_openmpi_lp64.a -Wl,--end-group -fopenmp -lpthread -lm
0 项奖励
Gennady_F_Intel
主持人
3,527 次查看
Very intersting! Can you try again removing blacs lib:
gcc -O3 pardiso_unsym_c.c $MKLPATH/libmkl_solver_lp64.a -Wl,--start-group $MKLPATH/libmkl_intel_lp64.a $MKLPATH/libmkl_gnu_thread.a $MKLPATH/libmkl_core.a $MKLPATH/libmkl_blacs_openmpi_lp64.a -Wl,--end-group -fopenmp -lpthread -lm
0 项奖励
array123
初学者
3,527 次查看
even after removing blacs lib again error is segmentation fault
0 项奖励
Artem_V_Intel
员工
3,527 次查看
Hello,

I tried to reproduce your problem using command line you specified and doesn't meet any issues.

Could you please send the version of your gcc compiler? What processor do you use?

Best regards,
Artem
0 项奖励
array123
初学者
3,527 次查看
i tried with above command but again error is segmentation fault.
0 项奖励
array123
初学者
3,527 次查看
for using pardiso in parallel mode i was suggested that set iparm[0]=0 and pardiso will run in parallel mode. So in the example given in installation folder i.e. pardiso_unsym_c.c by setting iparm values. But i got segmentation fault
0 项奖励
Gennady_F_Intel
主持人
3,527 次查看
Artem asked you about gcc version and CPU type you are running.
We cannot see the problem on our side when we ran this example on Corei7 CPU type, gcc (4.1.2).
--Gennady
0 项奖励
array123
初学者
3,527 次查看
i am using gcc 4.4 and core 2 duo processor
0 项奖励
Artem_V_Intel
员工
3,527 次查看
Hi,

I tried to build unmodified pardiso_unsym_c.c using gcc 4.4 and command line you postedand doesn't obtain any issues again.

Could you please show your kernel version and full output of 'gcc -v' command? What Linux distribution do you use?

Best regards,
Artem
0 项奖励
array123
初学者
3,527 次查看
hi,
thanks Artem i tried the same thing and its working.
tc
0 项奖励
Gennady_F_Intel
主持人
3,527 次查看
tc,
nevertheless, the situation is not clear for me:what were conditions under which this sample produced segmentation fault?
How did you changepardiso_unsym_c.c?
--Gennady
0 项奖励
array123
初学者
3,390 次查看
hi,
in oreder to use all values as default i did iparm[0]=0 (in pardiso_unsym_c.c )and it was giving me segmentation fault.
0 项奖励
回复