docstr: Stop the current running optimization loop,
  Called from a different thread than the :meth:`start`.
docstr_tok: ["Stop","the","current","running","optimization","loop",",","Called","from","a","different","thread","than","the",":","meth",":","`","start","`","."]
code: def stop(self):
      # type: () -> ()
      """
      Stop the current running optimization loop,
      Called from a different thread than the :meth:`start`.
      """
      # After the optimizer run, we must shutdown the master and the nameserver.
      self._bohb.shutdown(shutdown_workers=True)
      # no need to specifically shutdown the name server, hopefully pyro will do that
      # self._namespace.shutdown()
  
      if not self._res:
          return
  
      # Step 5: Analysis
      id2config = self._res.get_id2config_mapping()
      incumbent = self._res.get_incumbent_id()
      all_runs = self._res.get_all_runs()
  
      # Step 6: Print Analysis
      print("Best found configuration:", id2config[incumbent]["config"])
      print(
          "A total of {} unique configurations where sampled.".format(
              len(id2config.keys())
          )
      )
      print(
          "A total of {} runs where executed.".format(
              len(self._res.get_all_runs())
          )
      )
      print(
          "Total budget corresponds to {:.1f} full function evaluations.".format(
              sum([r.budget for r in all_runs])
              / self._bohb_kwargs.get("max_budget", 1.0)
          )
      )
      print(
          "The run took {:.1f} seconds to complete.".format(
              all_runs[-1].time_stamps["finished"]
              - all_runs[0].time_stamps["started"]
          )
      )
  
file_path: clearml/clearml/automation/hpbandster/bandster.py
imports: from time import sleep, time
  from typing import Any, Optional, Sequence
  from ..optimization import Objective, SearchStrategy
  from ..parameters import DiscreteParameterRange, UniformParameterRange, RandomSeed, UniformIntegerParameterRange, Parameter
  from ...task import Task
label_desc: Use image node_id 4 for calling the OptimizerBOHB obj's underlying member method code with example usage: obj.stop() without return types