code: def schedule_experiment(self, trial_params, exp_i):
      timestamp = datetime.datetime.now().strftime("%Y-%m-%d__%H-%M-%S")
      timestamp = "trial_{}_{}".format(exp_i, timestamp)
  
      # generate command
      slurm_cmd_script_path = os.path.join(
          self.slurm_files_log_path, "{}_slurm_cmd.sh".format(timestamp)
      )
      slurm_cmd = self.__build_slurm_command(
          trial_params,
          slurm_cmd_script_path,
          timestamp,
          exp_i,
          self.on_gpu,
      )
      self.__save_slurm_cmd(slurm_cmd, slurm_cmd_script_path)
  
      # run script to launch job
      print("\nlaunching exp...")
      result = call(
          "{} {}".format(
              AbstractCluster.RUN_CMD, slurm_cmd_script_path
          ),
          shell=True,
      )
      if result == 0:
          print("launched exp ", slurm_cmd_script_path)
      else:
          print("launch failed...")
  
imports: import datetime
  import os
  import signal
  import sys
  import time
  import traceback
  from subprocess import call
  from .argparse_hopt import HyperOptArgumentParser
label_desc: Use image node_id 5 for calling the SlurmCluster obj's underlying member method code with example usage: obj.schedule_experiment(trial_params, exp_i) without return types