reaching end of data. If "False", will continue training
           with a smaller effective world size until all ranks are
           joined. Note that if this flag is specified, then the flag
           "divide_by_initial_world_size" would be ignored. Default is
           "False".
  Example:

     >>> import torch
     >>> import torch.distributed as dist
     >>> import os
     >>> import torch.multiprocessing as mp
     >>> import torch.nn as nn
     >>> # On each spawned worker
     >>> def worker(rank):
     >>>     dist.init_process_group("nccl", rank=rank, world_size=2)
     >>>     torch.cuda.set_device(rank)
     >>>     model = nn.Linear(1, 1, bias=False).to(rank)
     >>>     model = torch.nn.parallel.DistributedDataParallel(
     >>>         model, device_ids=[rank], output_device=rank
     >>>     )
     >>>     # Rank 1 gets one more input than rank 0.
