Introduction

There are two ways to parallelise ensemble workflows in FEWS:

  • On a single FSS, run parts of the workflow in separate parallel threads to take advantage of multiple CPU cores
  • Allow the taskrun of the workflow to be split up over multiple Forecasting Shells using maxEnsembleParts, see below
  • Allow the taskrun of the workflow to be split up over multiple Forecasting Shells using multipleForecastingShells=true, see 06 Workflow Configuration

Running workflows in multiple threads

See the next chapter of the configuration documentation: 19 Parallel running of ensemble loops and activities on one forecasting shell instance

Splitting workflows over multiple Forecasting Shells

To use the functionality to be able to split up a task over multiple forecasting shells, set the maxEnsembleParts attribute in the WorkflowDescriptor of the workflow to a value > 1. If the value is missing or <= 1, it will not be possible to split up the workflow.

The number of parts in which to split the run up will be set when scheduling the task. When scheduling via the Admin Interface or the Manual Forecast Dialog, the number of parts is checked against maxEnsembleParts in the WorkflowDescriptor.

The MasterController will create the number of taskRuns as set in the TaskProperties, using the same taskRunID, with some numbers appended to indicate this is part of an ensemble split. e.g. EANWMC01:0000001$001/004 meaning part 1 of 4. For the MC these will be separate taskRuns and will be treated in the normal way like ordinary taskruns with regard to allocating a FSS. When FEWS runs or displays these tasks (on the OC and FSS), the parts will be combined again.

 

  • No labels