implementation of "ElasticAgent". For a local agent, it could be
   the "pid (int)" of the worker, for a remote agent it could be
   encoded as "host:port (string)".
Parameters:
      * id (Any) -- uniquely identifies a worker (interpreted by
        the agent)
  * **local_rank** (*int*) -- local rank of the worker

  * **global_rank** (*int*) -- global rank of the worker

  * **role_rank** (*int*) -- rank of the worker across all workers
    that have the same role

  * **world_size** (*int*) -- number of workers (globally)

  * **role_world_size** (*int*) -- number of workers that have the
    same role

class torch.distributed.elastic.agent.server.WorkerGroup(spec)
Represents the set of "Worker" instances for the given "WorkerSpec"
   managed by "ElasticAgent". Whether the worker group contains cross
   instance workers or not depends on the implementation of the agent.
Implementations