code: def test_happy_run_elastic(self):
      if not gloo_built():
          self.skipTest("Gloo is not available")
  
      args = _HorovodArgs()
  
      # we need two different hosts here, otherwise would need to give args.nics
      args.hosts = "localhost:2,127.0.0.1:2"
      args.command = [sys.executable, "-V"]
      args.num_proc = 2
      args.min_num_proc = 2
      args.verbose = True
  
      # no assertions, we are happy when there are no exceptions
      # TODO: call into run() when elastic supports args.run_func (#1873)
      #       we can assert the returned result then
      _run(args)
  
file_path: horovod/test/integration/test_interactiverun.py
imports: import time
  import sys
  import unittest
  import warnings
  import pytest
  import torch
  import horovod.torch
  from horovod.common.util import gloo_built, mpi_built
  from horovod.runner import run, _HorovodArgs
  from horovod.runner.launch import _run
label_desc: Use image node_id 3 for calling the InteractiveRunTests obj's underlying member method code with example usage: obj.test_happy_run_elastic() without return types