[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