"Blondel, Sophie via petsc-users" <[email protected]> writes:

> Hi everyone,
>
> I have been using PETSc for a few years with a fully implicit TS ARKIMEX 
> method and am now exploring the matrix free method option. Here is the list 
> of PETSc options I typically use: -ts_dt 1.0e-12 
> -ts_adapt_time_step_increase_delay 5 -snes_force_iteration -ts_max_time 
> 1000.0 -ts_adapt_dt_max 2.0e-3 -ts_adapt_wnormtype INFINITY 
> -ts_exact_final_time stepover -fieldsplit_0_pc_type sor -ts_max_snes_failures 
> -1 -pc_fieldsplit_detect_coupling -ts_monitor -pc_type fieldsplit 
> -fieldsplit_1_pc_type redundant -ts_max_steps 100
>
> I started to compare the performance of the code without changing anything of 
> the executable and simply adding "-snes_mf", I see a reduction of memory 
> usage as expected and a benchmark that would usually take ~5min to run now 
> takes ~50min. Reading the documentation I saw that there are a few option to 
> play with the matrix free method like -snes_mf_err, -snes_mf_umin, or 
> switching to -snes_mf_type wp. I used and modified the values of each of 
> these options separately but never saw a sizable change in runtime, is it 
> expected?

Totally normal.  Changing the MF method mainly just affects stability of the 
algorithm (with small consequences in vector work required to determine the 
differencing parameter).

> And are there other ways to make the matrix free method faster? I saw in the 
> documentation that you can define your own per-conditioner for instance. Let 
> me know if you need additional information about the PETSc setup in the 
> application I use.

Could you share -log_view output for your standard method and the MF variant?

Reply via email to