class_docstr: 用于统计节点内不同训练进程的信息，和 fastnlp 的 Triainer 没有关系
class_docstr_tok: ["\u7528\u4e8e\u7edf\u8ba1\u8282\u70b9\u5185\u4e0d\u540c\u8bad\u7ec3\u8fdb\u7a0b\u7684\u4fe1\u606f\uff0c\u548c","fastnlp","\u7684","Triainer","\u6ca1\u6709\u5173\u7cfb"]
code: def __init__(self, endpoint=None, rank=None):
      self.devices = []
      self.endpoint = endpoint
      self.rank = rank
  
imports: import os
  import sys
  import __main__
  import tempfile
  import copy
  from typing import List
  from fastNLP.core.drivers.utils import distributed_open_proc
  from fastNLP.envs.env import FASTNLP_DISTRIBUTED_CHECK, FASTNLP_LOG_LEVEL, FASTNLP_GLOBAL_SEED, FASTNLP_GLOBAL_RANK
  from fastNLP.core.utils import get_paddle_device_id
  from .utils import find_free_ports
label_desc: Use image node_id 1 to create a new SubTrainer object from inherited base classes: object with example: obj = SubTrainer(endpoint, rank)