class_docstr: The execution engine will submit every model onto training service.
  
  Resource management is implemented in this class.
  
  This engine doesn't include any optimization across graphs.
  
  NOTE: Due to the design of `nni.experiment`,
  the execution engine resorts to NasExperiment to submit trials as well as waiting for results.
  This is not ideal, because this engine might be one of the very few engines which need the training service.
  Ideally, the training service should be a part of the execution engine, not the experiment.
  
  Ideally, this class should not have any states. Its save and load methods should be empty.
  
  Parameters
  ----------
  nodejs_binding
      The nodejs binding of the experiment.
  fetch_intermediates
      Whether to fetch intermediate results from the training service when list models.
      Setting it to false for large-scale experiments can improve performance.
class_docstr_tok: ["The","execution","engine","will","submit","every","model","onto","training","service",".","Resource","management","is","implemented","in","this","class",".","This","engine","does","n't","include","any","optimization","across","graphs",".","NOTE",":","Due","to","the","design","of","`","nni.experiment","`",",","the","execution","engine","resorts","to","NasExperiment","to","submit","trials","as","well","as","waiting","for","results",".","This","is","not","ideal",",","because","this","engine","might","be","one","of","the","very","few","engines","which","need","the","training","service",".","Ideally",",","the","training","service","should","be","a","part","of","the","execution","engine",",","not","the","experiment",".","Ideally",",","this","class","should","not","have","any","states",".","Its","save","and","load","methods","should","be","empty",".","Parameters","--","--","--","--","--","nodejs_binding","The","nodejs","binding","of","the","experiment",".","fetch_intermediates","Whether","to","fetch","intermediate","results","from","the","training","service","when","list","models",".","Setting","it","to","false","for","large-scale","experiments","can","improve","performance","."]
code: def _check_running(self) -> None:
      if self._stopped:
          raise RuntimeError(
              "The engine has been stopped. Cannot take any more action."
          )
  
imports: from __future__ import annotations
  import logging
  import sys
  import time
  import weakref
  from threading import Event, Thread
  from typing import Iterable, TYPE_CHECKING, Any, cast
  import nni
  from nni.runtime.tuner_command_channel import command_type, TunerCommandChannel
  from nni.typehint import TrialMetric
  from nni.utils import MetricType
  from nni.nas.space import ExecutableModelSpace, ModelStatus, GraphModelSpace
  from .engine import ExecutionEngine
  from .event import FinalMetricEvent, IntermediateMetricEvent, TrainingEndEvent
label_desc: Use image node_id 14 for calling the TrainingServiceExecutionEngine obj's underlying member method code with example usage: obj._check_running() without return types