text: def _parse_remote_device(remote_device: str):
      r"""
      Parses the remote device.
  
      Args:
          remote_device (str): Device on the destination worker where we‘d like to place this module.
              The format should be "<workername>/<device>", where the device field can be parsed as torch.device type.
              E.g., "trainer0/cpu", "trainer0", "ps0/cuda:0".
              In addition, the device field can be optional and the default value is "cpu".
  
      Returns:
          A workername and a device.
      """
      fields = remote_device.split("/")
      if len(fields) == 2:
          [on, device] = fields
      elif len(fields) == 1:
          on = fields[0]
          device = "cpu"
      else:
          raise RuntimeError(
              "Could not parse remote_device: {}. The valid format is '<workername>/<device>'".format(
                  remote_device
              )
          )
  
      # Since the workername in the input remote device won't be validated until the created remote module is executed,
      # only do some very basic sanity check on workername at the module creation time.
      # As currently there is no regex to describe the format of workername, just check whether the workername is empty.
      if not on:
          raise RuntimeError(
              "The workername in remote_device '{}' cannot be empty. The valid format is '<workername>/<device>'".format(
                  remote_device
              )
          )
  
      return on, device
  