[petsc-users] Some general questions

Dave May dave.mayhem23 at gmail.com
Fri May 12 02:25:43 CDT 2017


On 12 May 2017 at 07:50, Matt Baker <mbaker112 at outlook.de> wrote:

> Hello,
>
>
> I have a few questions on how to improve performance of my program. I'm
> solving Poisson's equation on a (large) 3D FD grid with Dirichlet boundary
> conditions and multiple right hand sides. I set up the matrix and
> everything's working fine so far, but I'm sure the solving process could go
> faster. I know multigrid is generally the best preconditioner in such a
> case and algebraic multigrid currently works best.
>

If you use a DMDA for your FD problem, consider using PCMG with Galerkin.
It will set up a geometric multigrid hierarchy. Depending on the specifics
of your Poisson problem (constant coefficient versus highly hetegoneous),
geometric MG is likely superior (faster time to solution) than AMG.


>
> So generally speaking:
>
>
> Should I make the effort of symmetrizising the system matrix? I know how
> to do it, but it would probably take some time. CG does currently work, but
> is not competitive against other methods, so I guess the matrix might not
> be "symmetric enough"?
>

In its basic form, CG is only guaranteed to converge with with an SPD
operator.
If you want to use CG, definitely do the work and make the operator
symmetric.

>
> For the various multigrid preconditioners: I always read that the problem
> should be solved exactly on the coarsest grid, but wouldn't an iterative
> solver do the same job if its provided accuracy is high enough, since the
> coarse discretization and the subsequent interpolation process introduce
> errors themselves?
>

Yes iterative can work well. If your Poisson problem has a constant
coefficient, rtol 1.0e-1 is likely a sufficient tolerance to use for an the
coarse grid solve (e.g. overall convergence of solve won't be affected). If
the Poisson problem has a highly variable coefficient (jumps of O(1e3) or
more), or it has very large gradients say 1e3 variation over a few cells,
then you will have to perform a more accurate iterative coarse level solve
(say rtol 1e-4 to 1e-6). Note that the numbers for rtol I quote are purely
empirical.


>
> I submit my program to a batch system, but PETSc was compiled on the login
> node with different hardware. Is this affecting performance? What parts of
> the configuration process should I perform on a compute node then?
>
If the login and compute nodes are fundamentally different, you should
configure petsc with the option
 --with-batch
and following the instructions.

Thanks,
  Dave

>
> Thanks.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20170512/fb3dc18b/attachment.html>


More information about the petsc-users mailing list