What's the role of restart in PGMRES?

Open discussion for MAGMA library (Matrix Algebra on GPU and Multicore Architectures)
Post Reply
hsahasra
Posts: 32
Joined: Mon Jun 24, 2013 3:40 pm

What's the role of restart in PGMRES?

Post by hsahasra » Tue Jun 02, 2015 1:14 pm

Hi,

I have been experimenting solving a linear system with PGMRES+Jacobi preconditioner. The solver diverges with default restart. When I set the restart at 400, it converges in ~700 iterations. The number of iterations increases if I increase or decrease the restart from 400. How should I decide what restart is needed? Does the restart parameter change from system to system?

Quantity in brackets after PGMRES is the restart value. E.g. PGMRES(30) is with restart=30.

%=============================================================%
% PGMRES(30) solver summary:
% initial residual: 2.000000e+02
% iterations: 1000
% exact final residual: 4.569463e+00
% runtime: 1.0274 sec
%=============================================================%

%=============================================================%
% PGMRES(100) solver summary:
% initial residual: 2.000000e+02
% iterations: 1000
% exact final residual: 9.811325e-03
% runtime: 2.7982 sec
%=============================================================%

%=============================================================%
% PGMRES(400) solver summary:
% initial residual: 2.000000e+02
% iterations: 697
% exact final residual: 1.183331e-09
% runtime: 6.5171 sec
%=============================================================%

%=============================================================%
% PGMRES(500) solver summary:
% initial residual: 2.000000e+02
% iterations: 761
% exact final residual: 1.037513e-09
% runtime: 8.2672 sec
%=============================================================%

%=============================================================%
% PGMRES(350) solver summary:
% initial residual: 2.000000e+02
% iterations: 871
% exact final residual: 8.002018e-10
% runtime: 7.2320 sec
%=============================================================%


Thanks,
Harshad

hartwig anzt
Posts: 90
Joined: Tue Sep 02, 2014 5:44 pm

Re: What's the role of restart in PGMRES?

Post by hartwig anzt » Wed Jun 17, 2015 2:01 pm

Dear Harshad,

the restart parameter determines the dimension of the Krylov space before restarting. Please take a look at the literature for more theoretical background: http://www-users.cs.umn.edu/~saad/IterM ... _2ndEd.pdf
Small restart values result in low memory cost, faster loop execution (little orthogonalization effort) and small rounding effects. Larger Krylov subspace dimensions often result in faster convergence. Usually, one chooses restart values between 30 - 50. However, there is no general rule which dimension gives the best results for a specific system. (Otherwise, it would not be an option in MAGMA...)

Hope this helps.

Hartwig

Post Reply