docstr: :param discovery: object used to detect and manage available hosts
  :type discovery: horovod.runner.elastic.discovery.HostDiscovery
  :param min_num_proc: minimum number of processes
  :type min_num_proc: int
  :param max_num_proc: maximum number of processes
  :type max_num_proc: int
  :param elastic_timeout: timeout for elastic initialisation after re-scaling in seconds
  :type elastic_timeout: int
  :param reset_limit: maximum number of resets after which the job is terminated
  :type reset_limit: int
  :param cooldown_range: maximum number of resets after which the job is terminated
  :type cooldown_range: int
docstr_tok: [":","param","discovery",":","object","used","to","detect","and","manage","available","hosts",":","type","discovery",":","horovod.runner.elastic.discovery.HostDiscovery",":","param","min_num_proc",":","minimum","number","of","processes",":","type","min_num_proc",":","int",":","param","max_num_proc",":","maximum","number","of","processes",":","type","max_num_proc",":","int",":","param","elastic_timeout",":","timeout","for","elastic","initialisation","after","re-scaling","in","seconds",":","type","elastic_timeout",":","int",":","param","reset_limit",":","maximum","number","of","resets","after","which","the","job","is","terminated",":","type","reset_limit",":","int",":","param","cooldown_range",":","maximum","number","of","resets","after","which","the","job","is","terminated",":","type","cooldown_range",":","int"]
code: def __init__(
      self,
      discovery,
      min_num_proc,
      max_num_proc,
      elastic_timeout,
      reset_limit,
      cooldown_range=None,
      **kwargs,
  ):
      """
      :param discovery: object used to detect and manage available hosts
      :type discovery: horovod.runner.elastic.discovery.HostDiscovery
      :param min_num_proc: minimum number of processes
      :type min_num_proc: int
      :param max_num_proc: maximum number of processes
      :type max_num_proc: int
      :param elastic_timeout: timeout for elastic initialisation after re-scaling in seconds
      :type elastic_timeout: int
      :param reset_limit: maximum number of resets after which the job is terminated
      :type reset_limit: int
      :param cooldown_range: maximum number of resets after which the job is terminated
      :type cooldown_range: int
      """
      super(ElasticSettings, self).__init__(elastic=True, **kwargs)
      self.discovery = discovery
      self.min_num_proc = min_num_proc
      self.max_num_proc = max_num_proc
      self.elastic_timeout = elastic_timeout
      self.reset_limit = reset_limit
      self.cooldown_range = cooldown_range
  
imports: from horovod.runner.common.util.settings import BaseSettings
label_desc: Use image node_id 1 to create a new ElasticSettings object from inherited base classes: BaseSettings with example: obj = ElasticSettings(discovery, min_num_proc, max_num_proc, elastic_timeout, reset_limit, cooldown_range)