using pardiso

using pardiso

hi,i am new in using pardisocan anyone tell me how to compile and run a c program using PARDISO in a multiple processor cluster. The architecture is INTEL 64 bit.

22 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

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

The current version of PARDISO is SMP version but not a version for Cluster.
--Gennady

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

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

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.

- 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

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.

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

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

i did it usinggcc -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

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

even after removing blacs lib again error is segmentation fault

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

i tried with above command but again error is segmentation fault.

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

i am using gcc 4.4 and core 2 duo processor

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

hi,thanks Artem i tried the same thing and its working.tc

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

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.

tc, it works withgcc 4.1.2 and core 2 duo processor. will check with 4.4 later.

Leave a Comment

Please sign in to add a comment. Not a member? Join today