code: def setUp(self):
      jobs = []
      gpu_num = 4
      gpu = "0,1,2,3"
      for i in range(gpu_num):
          job = InitializedJob(
              job_address="192.168.0.1:{}".format(1000 + i),
              worker_heartbeat_address="192.168.0.1:{}".format(
                  1000 + i + gpu_num
              ),
              ping_heartbeat_address="192.168.0.1:{}".format(
                  1000 + i + gpu_num * 3
              ),
              worker_address="192.168.0.1:8000",
              pid=1000 + i,
          )
          jobs.append(job)
  
      allocated_cpu = AllocatedCpu("192.168.0.1:8000", 0)
      allocated_gpu = AllocatedGpu("192.168.0.1:8000", gpu)
      self.worker1 = InitializedWorker(
          "192.168.0.1:8000",
          jobs,
          allocated_cpu,
          allocated_gpu,
          "worker1",
      )
  
      jobs = []
      gpu_num = 4
      gpu = "0,1,2,3"
      for i in range(gpu_num):
          job = InitializedJob(
              job_address="192.168.0.2:{}".format(1000 + i),
              worker_heartbeat_address="192.168.0.2:{}".format(
                  1000 + i + gpu_num
              ),
              ping_heartbeat_address="192.168.0.2:{}".format(
                  1000 + i + gpu_num * 3
              ),
              worker_address="192.168.0.2:8000",
              pid=1000 + i,
          )
          jobs.append(job)
  
      allocated_cpu = AllocatedCpu("192.168.0.2:8000", 0)
      allocated_gpu = AllocatedGpu("192.168.0.2:8000", gpu)
      self.worker2 = InitializedWorker(
          "192.168.0.2:8000",
          jobs,
          allocated_cpu,
          allocated_gpu,
          "worker2",
      )
  
      jobs = []
      cpu_num = 4
      for i in range(cpu_num):
          job = InitializedJob(
              job_address="192.168.0.3:{}".format(1000 + i),
              worker_heartbeat_address="192.168.0.3:{}".format(
                  1000 + i + cpu_num
              ),
              ping_heartbeat_address="192.168.0.3:{}".format(
                  1000 + i + cpu_num * 3
              ),
              worker_address="192.168.0.3:8000",
              pid=1000 + i,
          )
          jobs.append(job)
  
      allocated_cpu = AllocatedCpu("192.168.0.3:8000", cpu_num)
      allocated_gpu = AllocatedGpu("192.168.0.3:8000", "")
      self.worker3 = InitializedWorker(
          "192.168.0.3:8000",
          jobs,
          allocated_cpu,
          allocated_gpu,
          "worker3",
      )
  
      jobs = []
      gpu_num = 8
      gpu = "0,1,2,3,4,5,6,7"
      for i in range(gpu_num):
          job = InitializedJob(
              job_address="192.168.0.5:{}".format(1000 + i),
              worker_heartbeat_address="192.168.0.5:{}".format(
                  1000 + i + gpu_num
              ),
              ping_heartbeat_address="192.168.0.5:{}".format(
                  1000 + i + gpu_num * 3
              ),
              worker_address="192.168.0.5:8000",
              pid=1000 + i,
          )
          jobs.append(job)
  
      allocated_cpu = AllocatedCpu("192.168.0.5:8000", 0)
      allocated_gpu = AllocatedGpu("192.168.0.5:8000", gpu)
      self.worker5 = InitializedWorker(
          "192.168.0.5:8000",
          jobs,
          allocated_cpu,
          allocated_gpu,
          "worker5",
      )
  
file_path: PARL/parl/remote/tests/gpu/worker_manager_test.py
imports: import unittest
  import socket
  from parl.remote.worker_manager import WorkerManager
  from parl.remote.message import InitializedWorker, InitializedJob, AllocatedCpu, AllocatedGpu
  from parl.utils.test_utils import XparlTestCase
label_desc: Use image node_id 1 for calling the ImportTest obj's underlying member method code with example usage: obj.setUp() without return types