Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Intel Community
- Software
- Software Development SDKs and Libraries
- Intel® oneAPI Math Kernel Library
- Solver settings in pardiso?

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

danielsue

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

01-29-2013
04:27 PM

52 Views

Solver settings in pardiso?

Hi All,

My program have two solvers, solver A is based on Bi-CGSTAB acceleration that was developed by someone else before, and another one (solver B) is pardiso. I found for Pardiso works fine as solver A for most of the time, but it run much slower than solver A if I use 1 or two threads.

The following settings is used in solver A:

maximum number of solver iterations: 100

solver residual tolerance: 1.0E-7

solver update tolerance: 1.0E-7.

I try to use this settings in pardiso as follows:

iparm(8) = 100 !numbers of iterative refinement steps

iparm(10) = 7 !perturbe the pivot elements with 1E-7

Is this correct? And how to set the residual tolerance?

Thanks and regards,

PS: other parameters

iparm= 0

iparm(1) = 1 ! no solver default

iparm(2) = 3 ! fill-in reordering from METIS ,0-MIN DEGREE, 2-METIS, 3-OPENMP VERSION

iparm(3) = 0 ! numbers of processors. Input the next call mkl_set_dynamic(0), mkl_set_num_threads(n);

iparm(4) = 0 ! 0-no iterative-direct algorithm; 10*L+1 - CGS; 10*L+2 - CG; 10^-L is the tolerance.

iparm(5) = 0 ! no user fill-in reducing permutation

iparm(6) = 0 ! if == 0, the array of b is replaced with the solution x.

iparm(7) = 0 ! not in use

iparm(9) = 0 ! not in use

iparm(11) = 1 ! use nonsymmetric permutation and scaling MPS

iparm(12) = 0 ! not in use

iparm(13) = 1 ! maximum weighted matching algorithm is switched-on (default for non-symmetric)

iparm(14) = 0 ! Output: number of perturbed pivots

iparm(15) = 0 ! not in use

iparm(16) = 0 ! not in use

iparm(17) = 0 ! not in use

iparm(18) = -1 ! Output: number of nonzeros in the factor LU

iparm(19) = -1 ! Output: Mflops for LU factorization

iparm(20) = 0 ! Output: Numbers of CG Iterations

iparm(27) = 0 !check matrix error, 0-without check, 1-check

maxfct = 1

mnum = 1

nrhs = 1

error = 0 ! initialize error flag

msglvl = 0 ! print statistical information

mtype = 11 ! real unsymmetric

Daniel

Link Copied

2 Replies

Gennady_F_Intel

Moderator

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

01-30-2013
07:47 PM

52 Views

What is the problem size?

Zhang_Z_Intel

Employee

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

01-31-2013
12:03 PM

52 Views

Dainiel,

Would you please let us know how big the sparse system you're solving is?

Bi-CGSTAB is an iterative method, while PARDISO is a direct sparse solver. An iterative solver could be faster than a direct solver sometimes, especially when there is a good understanding of the initial conditions and/or a good preconditioner. Please share more details about your problem and your Bi-CGSTAB solver such that we can provide more meaningful answer.

Thanks.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page

For more complete information about compiler optimizations, see our Optimization Notice.