abstract _monitor_workers(worker_group)
  Checks on the workers for the "worker_group" and returns the new
  state of the worker group.

  Return type:
     *RunResult*

_rendezvous(worker_group)
  Runs rendezvous for the workers specified by worker spec.
  Assigns workers a new global rank and world size. Updates the
  rendezvous store for the worker group.

_restart_workers(worker_group)
  Restarts (stops, rendezvous, starts) all local workers in the
  group.

abstract _shutdown(death_sig=Signals.SIGTERM)
  Cleans up any resources that were allocated during the agent's
  work.

  Parameters:
     **death_sig** (*Signals*) -- Signal to send to the child
     process, SIGTERM is default

abstract _start_workers(worker_group)
  Starts "worker_group.spec.local_world_size" number of workers
  according to worker spec for the worker group .

  Returns a map of "local_rank" to worker "id".

  Return type:
