code: def write_events(self, event_list):
      if dist.get_rank() == 0:
          if self.tb_monitor is not None:
              self.tb_monitor.write_events(event_list)
          if self.wandb_monitor is not None:
              self.wandb_monitor.write_events(event_list)
          if self.csv_monitor is not None:
              self.csv_monitor.write_events(event_list)
  
file_path: deepspeed/deepspeed/monitor/monitor.py
imports: from abc import ABC, abstractmethod
  import deepspeed.comm
  from .wandb import WandbMonitor
  from .tensorboard import TensorBoardMonitor
  from .csv_monitor import csvMonitor
label_desc: Use image node_id 2 for calling the MonitorMaster obj's underlying member method code with example usage: obj.write_events(event_list) without return types