class_docstr: Mapping from logical cores in a computation to the physical TPU topology.
  
  Prefer to use the `DeviceAssignment.build()` helper to construct a
  `DeviceAssignment`; it is easier if less flexible than constructing a
  `DeviceAssignment` directly.
class_docstr_tok: ["Mapping","from","logical","cores","in","a","computation","to","the","physical","TPU","topology",".","Prefer","to","use","the","`","DeviceAssignment.build","(",")","`","helper","to","construct","a","`","DeviceAssignment","`",";","it","is","easier","if","less","flexible","than","constructing","a","`","DeviceAssignment","`","directly","."]
docstr: Returns the CPU device attached to a logical core.
docstr_tok: ["Returns","the","CPU","device","attached","to","a","logical","core","."]
code: def host_device(
      self,
      replica: int = 0,
      logical_core: int = 0,
      job: Optional[str] = None,
  ) -> str:
      """Returns the CPU device attached to a logical core."""
      coordinates = self.coordinates(replica, logical_core)
      return self._topology.cpu_device_name_at_coordinates(
          coordinates, job=job
      )
  
imports: import enum
  import math
  from typing import List, Optional, Tuple
  import numpy
  from tensorflow.python.platform import tf_logging
  from tensorflow.python.tpu.topology import Topology
  from tensorflow.python.util.tf_export import tf_export
label_desc: Use image node_id 9 for calling the DeviceAssignment obj's underlying member method code with example usage: obj.host_device(replica, logical_core, job) and returns: self