code: def r_model(data, currentModel, df):
      elapsed, metric = currentModel.run_model(data=data)
      name = None
      if isinstance(currentModel, ThunderGBMModel):
          name = (
              "ThunderGBM(depth="
              + str(currentModel.max_depth)
              + ")-"
              + currentModel.tree_method
          )
      elif isinstance(currentModel, XGboostModel):
          use_gpu = "gpu" if currentModel.use_gpu else "cpu"
          name = (
              "XGBoost(depth="
              + str(currentModel.max_depth)
              + ")-"
              + use_gpu
          )
      elif isinstance(currentModel, CatboostModel):
          use_gpu = "gpu" if currentModel.use_gpu else "cpu"
          name = (
              "CatBoost(depth="
              + str(currentModel.max_depth)
              + ")-"
              + use_gpu
          )
      elif isinstance(currentModel, LightGBMModel):
          use_gpu = "gpu" if currentModel.use_gpu else "cpu"
          name = (
              "LightGBM(num_rounds="
              + str(currentModel.num_rounds)
              + ")-"
              + use_gpu
          )
      fu.add_data(df, name, data, elapsed, metric)
  
      return elapsed, metric
  
file_path: thundergbm/python/benchmarks/experiments.py
imports: import utils.data_utils
  from model.catboost_model import CatboostModel
  from model.lightgbm_model import LightGBMModel
  from model.xgboost_model import XGboostModel
  from model.thundergbm_model import ThunderGBMModel
  from model.datasets import Dataset
  import utils.file_utils
  import pandas
  import math
  import sys
label_desc: Use image node_id 5 for calling a global function with example usage: r_model(data, currentModel, df) and returns: elapsed,  metric