# FARMING

Describes a farming job, in which multiple inputs are executed. The RUN_TYPE in the global section has to be set to NONE for FARMING. The different groups are executed in parallel. The jobs inside the same groups in series. [Edit on GitHub]

Subsections

- JOB
- PROGRAM_RUN_INFO
- RESTART

## Keywords

- CAPTAIN_MINION

- CYCLE

- DO_RESTART

- GROUP_PARTITION

- GROUP_SIZE

- MAX_JOBS_PER_GROUP

- NGROUPS

- RESTART_FILE_NAME

- STRIDE

- WAIT_TIME

## Keyword descriptions

CAPTAIN_MINION: logical = F

  Lone keyword: `T`

  Usage: CAPTAIN_MINION

  If a captain/minion setup should be employed, in which one process (captain) is used to distribute the tasks. This is most useful to load-balance if not all jobs have the same length, and a lot of CPUs/groups are available. [Edit on GitHub]

CYCLE: logical = F

  Lone keyword: `T`

  Usage: CYCLE

  If farming should process all jobs in a cyclic way, stopping only if MAX_JOBS_PER_GROUP is exceeded. [Edit on GitHub]

DO_RESTART: logical = F

  Lone keyword: `T`

  Usage: DO_RESTART

  Restart a farming job (and should pick up where the previous left off) [Edit on GitHub]

GROUP_PARTITION: integer[ ]

  Usage: group_partition 2 2 4 2 4

  gives the exact number of processors for each group. [Edit on GitHub]

GROUP_SIZE: integer = 8

  Usage: group_size 2

  Gives the preferred size of a working group, groups will always be equal or larger than this size. [Edit on GitHub]

MAX_JOBS_PER_GROUP: integer = 65535

  Aliases: MAX_JOBS

  Usage: MAX_JOBS_PER_GROUP 4

  maximum number of jobs executed per group [Edit on GitHub]

NGROUPS: integer

  Aliases: NGROUP

  Usage: ngroups 4

  Gives the preferred number of working groups. [Edit on GitHub]

RESTART_FILE_NAME: string

  Usage: RESTART_FILE_NAME <FILENAME>

  Name of the restart file to use for restarting a FARMING run. If not specified the name is determined from PROJECT name. [Edit on GitHub]

STRIDE: integer = 1

  Usage: STRIDE 2

  Stride to be used when building working groups from the parent MPI comm. Can be used to layout minion groups over nodes in advanced ways (1 rank per node / 2 groups per node). [Edit on GitHub]

WAIT_TIME: real = 5.00000000E-001

  Usage: WAIT_TIME 0.1

  Time to wait [s] for a new task if no task is currently available, make this zero if no clock is available [Edit on GitHub]