code: def get_total_time(self) -> float:
      procs = [0.0 for _ in range(NUM_PROCS_FOR_SHARDING_CALC)]
      for test in self.parallel:
          min_index = procs.index(min(procs))
          procs[min_index] += test.get_time()
      time = max(procs) + sum(test.get_time() for test in self.serial)
      return time
  
file_path: pytorch/tools/testing/test_selections.py
imports: import math
  import os
  import subprocess
  from pathlib import Path
  from typing import Callable, Dict, List, Optional, Sequence, Set, Tuple
  from tools.stats.import_test_stats import get_disabled_tests, get_slow_tests
  from tools.testing.test_run import ShardedTest, TestRun
label_desc: Use image node_id 2 for calling the ShardJob obj's underlying member method code with example usage: obj.get_total_time() and returns: time