[petsc-users] Solving a linear system with symmetrical matrix

Barry Smith bsmith at mcs.anl.gov
Fri Mar 25 11:08:30 CDT 2011


  Since Superlu is its own self-contained package you set its various options using the interfaces below, listed in the manual page for MATSOLVERSUPERLU


+  -mat_superlu_equil: <FALSE> Equil (None)
.  -mat_superlu_colperm <COLAMD> (choose one of) NATURAL MMD_ATA MMD_AT_PLUS_A COLAMD
.  -mat_superlu_iterrefine <NOREFINE> (choose one of) NOREFINE SINGLE DOUBLE EXTRA
.  -mat_superlu_symmetricmode: <FALSE> SymmetricMode (None)
.  -mat_superlu_diagpivotthresh <1>: DiagPivotThresh (None)
.  -mat_superlu_pivotgrowth: <FALSE> PivotGrowth (None)
.  -mat_superlu_conditionnumber: <FALSE> ConditionNumber (None)
.  -mat_superlu_rowperm <NOROWPERM> (choose one of) NOROWPERM LargeDiag
.  -mat_superlu_replacetinypivot: <FALSE> ReplaceTinyPivot (None)
.  -mat_superlu_printstat: <FALSE> PrintStat (None)
.  -mat_superlu_lwork <0>: size of work array in bytes used by factorization (None)
.  -mat_superlu_ilu_droptol <0>: ILU_DropTol (None)
.  -mat_superlu_ilu_filltol <0>: ILU_FillTol (None)
.  -mat_superlu_ilu_fillfactor <0>: ILU_FillFactor (None)
.  -mat_superlu_ilu_droprull <0>: ILU_DropRule (None)
.  -mat_superlu_ilu_norm <0>: ILU_Norm (None)
-  -mat_superlu_ilu_milu <0>: ILU_MILU (None)

  

On Mar 25, 2011, at 10:16 AM, Longmin RAN wrote:

> Hello again,
> 
> I recompiled petsc using --with-debugging=0 but it doesn't improve the
> situation much. What's more, when running the program with "-info", I
> saw "Option SYMMETRIC ignored" and "Option SYMMETRY_ETERNAL ignored".
> Why are these options ignored? For superlu to specify the symmetric
> mode with MMD_AT_PLUS_A ordering will significantly shorten the
> solution time. I didn't find corresponding ordering type in petsc.
> 
> 
> Longmin
> 
> On Thu, Mar 24, 2011 at 3:29 PM, Longmin RAN <longmin.ran at gmail.com> wrote:
>> Thanks for the tips, Barry. I didn't specify --with-debugging=0 during
>> the configuration, I think this is the problem. I'll recompile petsc
>> accordingly to check on this.
>> 
>> 
>> Longmin
>> 
>> On Thu, Mar 24, 2011 at 1:30 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
>>> 
>>> On Mar 24, 2011, at 5:26 AM, Longmin RAN wrote:
>>> 
>>>> Hello everyone,
>>>> 
>>>> 
>>>> I use superlu inside petsc to solve linear systems with symmetrical
>>>> matrix. The solving time is at least twice longer than using superlu
>>>> directly.
>>> 
>>>   How much of that time is in other parts of the code, not the actual superlu solver? Run the PETSc version with -log_summary; the times given in the lines
>>> MatFactorSymbolic, MatFactorNumerical, MatSolve (or some similar names) are the amount of time in Superlu. Compare those times to the superlu standalone solution time.
>>> 
>>>    Did you ./configure PETSc with the option --with-debugging=0?
>>> 
>>>   Barry
>>> 
>>> 
>>> 
>>>> Since I'm new with Petsc, I didn't fine-tune much the petsc
>>>> solver, as I had done when using superlu directly. For example, in
>>>> superlu there are options like diagonal pivot
>>>> threshold(superlu_options_t.DiagPivotThresh), symmetric mode
>>>> (superlu_options_t.SymmetricMode), and column
>>>> permutation(superlu_options_t.ColPerm). Could anybody inform me about
>>>> the corresponding options in petsc? Thanks in advance.
>>>> 
>>>> BTW, I tried the following options:
>>>>       MatSetOption(A, MAT_SYMMETRIC, PETSC_TRUE);
>>>>       MatSetOption(A, MAT_SYMMETRY_ETERNAL, PETSC_TRUE);
>>>> But it seems that these options weren't enough to reduce the solving
>>>> time sufficiently.
>>>> 
>>>> 
>>>> Best regards,
>>>> 
>>>> - Longmin Ran
>>> 
>>> 
>> 



More information about the petsc-users mailing list