Community
cancel
Showing results for 
Search instead for 
Did you mean: 
array123
Beginner
119 Views

using pardiso

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 Kudos
21 Replies
Gennady_F_Intel
Moderator
107 Views

The current version of PARDISO is SMP version but not a version for Cluster.
--Gennady
array123
Beginner
107 Views

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
Gennady_F_Intel
Moderator
107 Views

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
array123
Beginner
107 Views

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.
Gennady_F_Intel
Moderator
107 Views

- 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

array123
Beginner
107 Views

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.
array123
Beginner
107 Views

i tried example problem pardiso_unsym_c.c setting value of iparm[0]=1 but it is giving segmentation fault.
Gennady_F_Intel
Moderator
107 Views

pardiso_unsym_c.c from MKL's examples?
how did you build this exmple?
--Gennady
array123
Beginner
107 Views

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
Gennady_F_Intel
Moderator
107 Views

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
array123
Beginner
107 Views

even after removing blacs lib again error is segmentation fault
Artem_V_Intel
Employee
107 Views

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
array123
Beginner
107 Views

i tried with above command but again error is segmentation fault.
array123
Beginner
107 Views

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
Gennady_F_Intel
Moderator
107 Views

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
array123
Beginner
107 Views

i am using gcc 4.4 and core 2 duo processor
Artem_V_Intel
Employee
107 Views

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
array123
Beginner
107 Views

hi,
thanks Artem i tried the same thing and its working.
tc
Gennady_F_Intel
Moderator
107 Views

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