[Trilinos-Users] question about MueLu (AMG) setting

Ouchi Hisanao ouchi at joe.co.jp
Thu Jul 9 20:51:08 EDT 2015


Dear Trilinos developers and users:

I am developing a 3D hydraulic fracturing simulator (which implicitly
solves 5 unknowns: x,y,z displacement + porous flow + fracture flow) based
on peridynamics theory and using Aztecoo as a linear solver.

Recently, I began to use MueLu as a preconditioner for Aztecoo in order to
improve our simulator performance by AMG preconditioning. It works very
well under single CPU conditions (from 2 to 10 times faster than ILU
preconditioning in some test cases).

However, AMG preconditioning does not work well under multiple CPU
conditions. Simulation times with AMG  preconditioning under multiple CPU
are even slower than those under single CPU conditions. (In the case of ILU
preconditioning, of course, simulation time decreases with the number of
CPU).

I guess it is just because my AMG parameter setting is not appropriate for
solving my Jacobian matrix with multiple CPU. (Since I am not familiar with
AMG, I just copied those setting mostly from the MueLu tutorial for solving
unsymmetrical matrix.)

I attached the AMG parameter settings I am using in my simulations at the
bottom of this email .

Could you please tell me which part should be modified to improve linear
solver performance especially for parallel efficiency?

Just for information, my Jacobian matrix is unsymmetrical and ill
conditioned (condition number is around 10^11 before diagonal scaling).

Best regards,

Hisanao Ouchi
PhD candidate in Dr. Sharma's Group
Department of Petroleum & Geosystems Engineering
University of Texas at Austin
Austin, TX 78712-0300
Tel: 5127406601
email: ouchi at joe.co.jp

------------------------------ setting
-----------------------------------------------
<ParameterList name="MueLu">

  <!-- Factory collection -->
  <ParameterList name="Factories">

    <!-- Note that ParameterLists must be defined prior to being used -->

    <ParameterList name="UncoupledAggregationFact">
      <Parameter name="factory"                             type="string"
value="UncoupledAggregationFactory"/>
      <Parameter name="aggregation: ordering"
 type="string" value="natural"/>
      <Parameter name="aggregation: max selected neighbors"
type="int"    value="0"/>
      <Parameter name="aggregation: min agg size"           type="int"
 value="4"/>
    </ParameterList>

    <ParameterList name="myTentativePFact">
      <Parameter name="factory"                             type="string"
value="TentativePFactory"/>
    </ParameterList>
    <ParameterList name="myProlongatorFact">
      <Parameter name="factory"                             type="string"
value="SaPFactory"/>
      <Parameter name="P"                                   type="string"
value="myTentativePFact"/>
      <Parameter name="sa: damping factor"                  type="double"
value="1.0"/>
    </ParameterList>
    <ParameterList name="myTentRestrictorFact">
      <Parameter name="factory"                             type="string"
value="TransPFactory"/>
      <Parameter name="P"                                   type="string"
value="myTentativePFact"/>
    </ParameterList>
    <ParameterList name="mySymRestrictorFact">
      <Parameter name="factory"                             type="string"
value="TransPFactory"/>
      <Parameter name="P"                                   type="string"
value="myProlongatorFact"/>
    </ParameterList>
    <ParameterList name="myNonsymRestrictorFact">
      <Parameter name="factory"                             type="string"
value="GenericRFactory"/>
      <Parameter name="P"                                   type="string"
value="myProlongatorFact"/>
    </ParameterList>


    <ParameterList name="SymGaussSeidel">
      <Parameter name="factory"                             type="string"
value="TrilinosSmoother"/>
      <Parameter name="type"                                type="string"
value="RELAXATION"/>
      <ParameterList name="ParameterList">
        <Parameter name="relaxation: type"                  type="string"
value="Symmetric Gauss-Seidel"/>
        <Parameter name="relaxation: sweeps"                type="int"
 value="10"/>
        <Parameter name="relaxation: damping factor"        type="double"
value="0.8"/>
      </ParameterList>
    </ParameterList>
    <ParameterList name="RILUK">
      <Parameter name="factory"                             type="string"
value="TrilinosSmoother"/>
      <Parameter name="type"                                type="string"
value="RILUK"/>
<ParameterList name="ParameterList">
        <Parameter name="relaxation: type"                  type="string"
value="RILUK"/>
        <Parameter name="riluk: fill"                type="int"
 value="1"/>
      </ParameterList>
    </ParameterList>
    <ParameterList name="ILUT">
      <Parameter name="factory"                             type="string"
value="TrilinosSmoother"/>
      <Parameter name="type"                                type="string"
value="ILUT"/>
<ParameterList name="ParameterList">
        <Parameter name="relaxation: type"                  type="string"
value="ILUT"/>
        <Parameter name="ILUT: fill"                type="int"
 value="1"/>
      </ParameterList>
    </ParameterList>
  </ParameterList>

  <!-- Definition of the multigrid preconditioner -->
  <ParameterList name="Hierarchy">

    <Parameter name="max levels"                            type="int"
 value="10"/> <!-- Max number of levels -->
    <Parameter name="coarse: max size"                      type="int"
 value="10"/> <!-- Min number of rows on coarsest level -->
    <Parameter name="verbosity"                             type="string"
value="High"/>

    <ParameterList name="All">
      <Parameter name="Smoother"                        type="string"
value="ILUT"/>
      <Parameter name="Aggregates"                      type="string"
value="UncoupledAggregationFact"/>
      <Parameter name="Nullspace"                       type="string"
value="myTentativePFact"/>
      <Parameter name="P"                               type="string"
value="myProlongatorFact"/>
      <Parameter name="R"                               type="string"
value="mySymRestrictorFact"/>
      <Parameter name="CoarseSolver"                    type="string"
value="DirectSolver"/>
    </ParameterList>

  </ParameterList>
</ParameterList>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://trilinos.org/pipermail/trilinos-users/attachments/20150709/6fa24f73/attachment.html>


More information about the Trilinos-Users mailing list