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

Link Copied

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

Please find my answers below

- Do I really need to do a symbolic factorization from time to time to prevent the loss of accuracy, or is there any other way ?

- Why does the iterative process does not speed up the code ?

Would you pleaselet us knowthe value of iparm(20) which is CG/CGS diagnostics? I'd assumeit happens becauseyou call PARSDISO with phase=23, CG fails to converge and as a consequence PARDISO has to factorize the matrix again.

Let me remind that CG/CGS in PARDISO uses thefollowing strategy

"If

`phase =23`, then the factorization for a given

`A`is automatically recomputed in cases where the Krylow-Subspace iteration failed, and the corresponding direct solution is returned. Otherwise the solution from the preconditioned Krylow-Subspace iteration is returned. Using

`phase =33`results in an error message (

`error =-4`) if the stopping criteria for the Krylow-Subspace iteration can not be reached. More information on the failure can be obtained from iparm

`(20)`."

Would you please provide more details about the platforms, the matrix type and PARDISO settings (iparm values from 1 to 30 elements)?

- I still do not understand how pardiso can parallelize the LU-decomposition and the substitution. Can I find some general information about how those things are parallelized ?

Here are a couple ofreferences where you can finda general description of the numerical methods used in PARDISO

O. Schenk, K. Gartner, and W. Fichtner.

*Efficient Sparse LU Factorization with Left-right Looking Strategy on Shared Memory Multiprocessors*. BIT, 40(1):158-176, 2000.

O. Schenk and K. Gartner.

*Two-level scheduling in PARDISO: Improved Scalability on Shared Memory Multiprocessing Systems*. Parallel Computing, 28:187-197, 2002.

More references can be found in the MKL Reference Guide.

All the best

Sergey

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

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

Thanks a lof for the information.

As concerns a crash in symbolic factorization when a=0 it happens because of the settings

this%iparm(11) = 1 ! Scaling vector

These settings requires values for the symbolic factorization and since a=0, all scaling factors are zeros as well.

Normally it is recommended to keep only nonzero elements in thesparse matrix. Soit would be betterto avoid many zeros in the sparse matrix and I'd propose toform new"ia" and "ja" from time to time.Probably it helps to reduce the factorization time andthe usagethe CGS solver fromPARDISOwith PHASE=33 for a few next iterationswill allow you to reduce the time.

Would you please toset MSGLVL (the message level information) to 1 and post the zipped log file? By the way what is the total number of the Newton iterations with and without CGS iterations?

Thanks in advance

All the best

Sergey

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

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

Thanks a lot. Now I see what is the problem and itmight bea bug in CGS since PARDISO should not have recomputed the LU factorsin your case. Would you please provideatest case with data toreproduce the problem?

Please let us know your e-mail addressbyprivate postand we will inform you the results of investigation.

Thanks in advance

All the best

Sergey

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

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

I'm not completely sure andI need to check it out.But the solver step for your system generallytakes

Times:

======

Time solve : 0.036523 s

So2 CGS iterations should take about 0.072 plus somevery small time for additonal computation.I'd estimatethe upper limit for CGS as 0.1 sec.In your log I see

iterative : 31 1

================ PARDISO: solving a real nonsymmetric system ================

Summary PARDISO: ( factorize to solve )

================

Times:

======

Time cgs : 0.203449 s cgx iterations 2

It might be the statistics is wrong (say the number iterations is not correct) or PARDISO recomputed the LU factors.

All the best

Sergey

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

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

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

Dear Francois,

Sorry for the delay taken in answering and many thanks for providing the test code.

The last usage model is correct.

I investigated you code and I've not found any bug in PARDISO. To improve the performance of your code. I'd reccomend to use the parallel METIS by setting iparm(2)=3 and it essentiallyreduces the reordering time.

Your code also work well if we turn off scaling and matching by setting

iparm(11) = 0 ! Scaling vector

iparm(13) = 0 ! improved accuracy using (non-)symmetric weighted matchings

It looks like your system is well-conditioned but I'd rather check how it works in the whole application.

I'll let you know if I found further performance improvements.

All the best

Sergey

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

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