code: def test_zero_cpus_actor(ray_start_cluster):
      cluster = ray_start_cluster
      cluster.add_node(num_cpus=0)
      valid_node = cluster.add_node(num_cpus=2)
      ray.init(address=cluster.address)
  
      @ray.remote
      class Foo:
          def method(self):
              return ray._private.worker.global_worker.node.unique_id
  
      # Make sure tasks and actors run on the remote raylet.
      a = Foo.remote()
      assert valid_node.unique_id == ray.get(a.method.remote())
  
imports: import logging
  import os
  import sys
  import time
  import numpy
  import pytest
  import ray
  import ray.cluster_utils
  from ray._private.test_utils import RayTestTimeoutException, wait_for_condition
  from ray.util.placement_group import placement_group
  from ray.util.accelerators import AWS_NEURON_CORE
  from ray.util.scheduling_strategies import PlacementGroupSchedulingStrategy
label_desc: Use image node_id 3 for calling a global function with example usage: test_zero_cpus_actor(ray_start_cluster) and returns: ray