docstr: Connect to the cluster and start sampling of the remote actor.
          
docstr_tok: ["Connect","to","the","cluster","and","start","sampling","of","the","remote","actor","."]
code: def create_actors(self):
      """Connect to the cluster and start sampling of the remote actor."""
      parl.connect(args.cluster_address, ["official_obs_scaler.npz"])
  
      for i in range(args.actor_num):
          logger.info("Remote actor count: {}".format(i + 1))
  
          remote_thread = threading.Thread(
              target=self.run_remote_sample
          )
          remote_thread.setDaemon(True)
          remote_thread.start()
  
      # There is a memory-leak problem in osim-rl package.
      # So we will dynamically add actors when remote actors killed due to excessive memory usage.
      time.sleep(10 * 60)
      parl_client = get_global_client()
      while True:
          if parl_client.actor_num < args.actor_num:
              logger.info(
                  "Dynamic adding acotr, current actor num:{}".format(
                      parl_client.actor_num
                  )
              )
              remote_thread = threading.Thread(
                  target=self.run_remote_sample
              )
              remote_thread.setDaemon(True)
              remote_thread.start()
          time.sleep(5)
  
imports: import os
  import parl
  import queue
  import six
  import threading
  import time
  import numpy
  from actor import Actor
  from opensim_model import OpenSimModel
  from opensim_agent import OpenSimAgent
  from parl.utils import logger, summary, get_gpu_count
  from parl.utils.window_stat import WindowStat
  from parl.remote.client import get_global_client
  from parl.utils import machine_info
  from shutil import copy2
label_desc: Use image node_id 2 for calling the Evaluator obj's underlying member method code with example usage: obj.create_actors() without return types