Build list of device prefix names for all_reduce.

  Args:
    job_name: "worker", "ps" or "localhost".
    num_tasks: number of jobs across which device names should be generated.

  Returns:
     A list of device name prefix strings. Each element spells out the full
     host name without adding the device.
     e.g. "/job:worker/task:0"

def build_all_reduce_device_prefixes(job_name, num_tasks):
    """Build list of device prefix names for all_reduce.

  Args:
    job_name: "worker", "ps" or "localhost".
    num_tasks: number of jobs across which device names should be generated.

  Returns:
     A list of device name prefix strings. Each element spells out the full
     host name without adding the device.
     e.g. "/job:worker/task:0"
  """
    if job_name != "localhost":
        return ["/job:%s/task:%d" % (job_name, d) for d in range(0, num_tasks)]
    else:
        assert num_tasks == 1
        return ["/job:%s" % job_name]