- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
Link Copied
21 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The current version of PARDISO is SMP version but not a version for Cluster.
--Gennady
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- 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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
i tried example problem pardiso_unsym_c.c setting value of iparm[0]=1 but it is giving segmentation fault.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
pardiso_unsym_c.c from MKL's examples?
how did you build this exmple?
--Gennady
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
even after removing blacs lib again error is segmentation fault
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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 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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
i tried with above command but again error is segmentation fault.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
i am using gcc 4.4 and core 2 duo processor
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
hi,
thanks Artem i tried the same thing and its working.
tc
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page