"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?
