code: def test_workers(shutdown_only):
      num_workers = 3
      ray.init(num_cpus=num_workers)
  
      @ray.remote
      def f():
          return id(ray._private.worker.global_worker), os.getpid()
  
      # Wait until all of the workers have started.
      worker_ids = set()
      while len(worker_ids) != num_workers:
          worker_ids = set(ray.get([f.remote() for _ in range(10)]))
  
imports: import logging
  import os
  import pickle
  import socket
  import sys
  import time
  import numpy
  import pytest
  import ray
  import ray._private.utils
  import ray.cluster_utils
  import ray.util.accelerators
  from ray._private.test_utils import check_call_ray, wait_for_num_actors
  import setproctitle
label_desc: Use image node_id 4 for calling a global function with example usage: test_workers(shutdown_only) and returns: id,  os