class_docstr: Convenient class for launching a Hyperopt cluster in a `RuntimeGroup`.
  
  HyperoptCluster inherits from MasterWorkerCluster. See its documentation to get a list of the inherited methods
  and attributes.
  
  The number of hyperopt workers defaults to the number of `Runtimes` in the used `RuntimeGroup`. This number can be
  adjusted so that more or less workers than available `Runtimes` can be used. Per default the desired number of
  workers is started in a round robin way as implemented in `RoundRobinLauncher`. Consequently, this leads to an
  equal distribution of hyperopt workers in the `RuntimeGroup`. You can provide a custom implementation inheriting
  from the `WorkerLauncher` class in order to execute a different strategy how workers should be started. The
  master instance (i.e. the mongoDB) will always be started on localhost as implemented in `LocalMasterLauncher`. This
  behavior can also be changed by providing a custom implementation inheriting from the `MasterLauncher`.
docstr: Start the master instance.
  
  Note:
      How the master is actually started is determined by the the actual `MasterLauncher` implementation. Another
      implementation adhering to the `MasterLauncher` interface can be provided in the constructor of the cluster
      class.
  
  Args:
      master_port: Port of the master instance. Defaults to self.DEFAULT_MASTER_PORT, but another one is chosen if
                   the port is not free within the group. The actual chosen port can be requested via
                   self.master_port.
      timeout: Timeout (s) after which an MasterStartError is raised if master instance not started yet.
      debug: If `True`, stdout/stderr from the runtime will be printed to stdout of localhost. Has no effect for
             if the master instance is started locally, what default MasterLauncher implementations usually do.
  
  Raises:
      PortInUseError: If a single port is given and it is not free in the `RuntimeGroup`.
      NoPortsLeftError: If there are no free ports left in the port list for instantiating the master.
      MasterStartError: If master was not started after the specified `timeout`.
docstr_tok: ["Start","the","master","instance",".","Note",":","How","the","master","is","actually","started","is","determined","by","the","the","actual","`","MasterLauncher","`","implementation",".","Another","implementation","adhering","to","the","`","MasterLauncher","`","interface","can","be","provided","in","the","constructor","of","the","cluster","class",".","Args",":","master_port",":","Port","of","the","master","instance",".","Defaults","to","self.DEFAULT_MASTER_PORT",",","but","another","one","is","chosen","if","the","port","is","not","free","within","the","group",".","The","actual","chosen","port","can","be","requested","via","self.master_port",".","timeout",":","Timeout","(","s",")","after","which","an","MasterStartError","is","raised","if","master","instance","not","started","yet",".","debug",":","If","`","True","`",",","stdout\/stderr","from","the","runtime","will","be","printed","to","stdout","of","localhost",".","Has","no","effect","for","if","the","master","instance","is","started","locally",",","what","default","MasterLauncher","implementations","usually","do",".","Raises",":","PortInUseError",":","If","a","single","port","is","given","and","it","is","not","free","in","the","`","RuntimeGroup","`",".","NoPortsLeftError",":","If","there","are","no","free","ports","left","in","the","port","list","for","instantiating","the","master",".","MasterStartError",":","If","master","was","not","started","after","the","specified","`","timeout","`","."]
code: def start_master(
      self,
      master_port: Optional[int] = None,
      timeout: int = 3,
      debug: bool = False,
  ) -> None:
      """Start the master instance.
  
      Note:
          How the master is actually started is determined by the the actual `MasterLauncher` implementation. Another
          implementation adhering to the `MasterLauncher` interface can be provided in the constructor of the cluster
          class.
  
      Args:
          master_port: Port of the master instance. Defaults to self.DEFAULT_MASTER_PORT, but another one is chosen if
                       the port is not free within the group. The actual chosen port can be requested via
                       self.master_port.
          timeout: Timeout (s) after which an MasterStartError is raised if master instance not started yet.
          debug: If `True`, stdout/stderr from the runtime will be printed to stdout of localhost. Has no effect for
                 if the master instance is started locally, what default MasterLauncher implementations usually do.
  
      Raises:
          PortInUseError: If a single port is given and it is not free in the `RuntimeGroup`.
          NoPortsLeftError: If there are no free ports left in the port list for instantiating the master.
          MasterStartError: If master was not started after the specified `timeout`.
      """
      super().start_master(master_port, timeout)
      self._group.add_env_variables(
          {self.ENV_NAME_MONGO_URL: self.mongo_trial_url}
      )
  
imports: import os
  import time
  from typing import List, Optional, Union
  from lazycluster import Runtime, RuntimeGroup, RuntimeTask, _utils
  from lazycluster.cluster import MasterLauncher, MasterWorkerCluster, WorkerLauncher
  from lazycluster.cluster.exceptions import MasterStartError
  from lazycluster.exceptions import PortInUseError
  from lazycluster.utils import Environment
label_desc: Use image node_id 5 for calling the HyperoptCluster obj's underlying member method code with example usage: obj.start_master(master_port, timeout, debug) without return types