code: def request_remote(
      device_key, host=None, port=None, priority=1, timeout=60
  ):
      """Request a remote session
  
      Parameters
      ----------
      device_key: string
          The device key of registered device in tracker
      host: host, optional
          The host address of rpc tracker.
          If is none, will use environment variable "TVM_TRACKER_HOST"
      port: int, optional
          The port of rpc tracker.
          If is none, will use environment variable "TVM_TRACKER_PORT"
      priority: int, optional
          The priority of this request, larger is more prior
      timeout: float, optional
          The timeout of this session (units: second)
  
      Returns
      ------
      session: RPCSession
      """
      # connect to the tracker
      host = host or os.environ["TVM_TRACKER_HOST"]
      port = port or int(os.environ["TVM_TRACKER_PORT"])
  
      tracker = _rpc.connect_tracker(host, port)
      remote = tracker.request(
          device_key, priority=priority, session_timeout=timeout
      )
      return remote
  
imports: import contextlib
  import logging
  import os
  import shutil
  import tempfile
  import threading
  import time
  import traceback
  import typing
  import warnings
  from collections import namedtuple
  from random import getrandbits
  import tvm._ffi
  import tvm.ir.transform
  from tvm import nd
  from tvm import rpc
  from tvm.autotvm.env import AutotvmGlobalScope, reset_global_scope
  from tvm.contrib import ndk, stackvm, tar
  from tvm.contrib.popen_pool import PopenPoolExecutor
  from tvm.driver import build
  from tvm.error import TVMError
  from tvm.target import Target
  from ..env import AutotvmGlobalScope
  from ..task.space import InstantiationError
  from ..utils import get_const_tuple
  from .measure import Builder, MeasureErrorNo, MeasureResult, Runner
label_desc: Use image node_id 4 for calling a global function with example usage: request_remote(device_key, host, port, priority, timeout) and returns: remote