implementations.controller_classes.controller_nonMPI module

class controller_nonMPI(num_procs, controller_params, description)[source]

Bases: controller

PFASST controller, running serialized version of PFASST in blocks (MG-style)

default(local_MS_running)[source]

Default routine to catch wrong status

Parameters:

local_MS_running (list) – list of currently running steps

it_check(local_MS_running)[source]

Key routine to check for convergence/termination

Parameters:

local_MS_running (list) – list of currently running steps

it_coarse(local_MS_running)[source]

Coarse sweep

Parameters:

local_MS_running (list) – list of currently running steps

it_down(local_MS_running)[source]

Go down the hierarchy from finest to coarsest level

Parameters:

local_MS_running (list) – list of currently running steps

it_fine(local_MS_running)[source]

Fine sweeps

Parameters:

local_MS_running (list) – list of currently running steps

it_up(local_MS_running)[source]

Prolong corrections up to finest level (parallel)

Parameters:

local_MS_running (list) – list of currently running steps

pfasst(local_MS_active)[source]

Main function including the stages of SDC, MLSDC and PFASST (the “controller”)

For the workflow of this controller, check out one of our PFASST talks or the pySDC paper

This method changes self.MS directly by accessing active steps through local_MS_active. Nothing is returned.

Parameters:

local_MS_active (list) – all active steps

predict(local_MS_running)[source]

Predictor phase

Parameters:

local_MS_running (list) – list of currently running steps

recv_full(S, level=None, add_to_stats=False)[source]

Function to perform the recv, including bookkeeping and logging

Parameters:
  • S – the current step

  • level – the level number

  • add_to_stats – a flag to end recording data in the hooks (defaults to False)

restart_block(active_slots, time, u0)[source]

Helper routine to reset/restart block of (active) steps

Parameters:
  • active_slots – list of active steps

  • time – list of new times

  • u0 – initial value to distribute across the steps

run(u0, t0, Tend)[source]

Main driver for running the serial version of SDC, MSSDC, MLSDC and PFASST (virtual parallelism)

Parameters:
  • u0 – initial values

  • t0 – starting time

  • Tend – ending time

Returns:

end values on the finest level stats object containing statistics for each step, each level and each iteration

send_full(S, level=None, add_to_stats=False)[source]

Function to perform the send, including bookkeeping and logging

Parameters:
  • S – the current step

  • level – the level number

  • add_to_stats – a flag to end recording data in the hooks (defaults to False)

spread(local_MS_running)[source]

Spreading phase

Parameters:

local_MS_running (list) – list of currently running steps