class_docstr: Coordinates checkpointing and checkpointing across multiple nodes.
  Each of `init`, `load` and `save` will build TaskGroups which will
  trigger checkpointing on each of the nodes involved in a distributed job.
  
  Args:
      db_prefix: The prefix used to construct full db name. Since `absolute_path`
          is set to True, this will be used as db_name in SaveOp.
      db_type: Type of database to use for storing checkpoint.
      metadata_handler: An optional object capable of reading/writing
          checkpoint info in storage of choice.
class_docstr_tok: ["Coordinates","checkpointing","and","checkpointing","across","multiple","nodes",".","Each","of","`","init","`",",","`","load","`","and","`","save","`","will","build","TaskGroups","which","will","trigger","checkpointing","on","each","of","the","nodes","involved","in","a","distributed","job",".","Args",":","db_prefix",":","The","prefix","used","to","construct","full","db","name",".","Since","`","absolute_path","`","is","set","to","True",",","this","will","be","used","as","db_name","in","SaveOp",".","db_type",":","Type","of","database","to","use","for","storing","checkpoint",".","metadata_handler",":","An","optional","object","capable","of","reading\/writing","checkpoint","info","in","storage","of","choice","."]
docstr: Report the checkpoint stats for all the nodes, we need to aggregate all
  the node's stats together so that we know which node's checkpoint
  operation dominates.
  
  Args:
      action_name: A string of the name of checkpoint operation.
docstr_tok: ["Report","the","checkpoint","stats","for","all","the","nodes",",","we","need","to","aggregate","all","the","node","'s","stats","together","so","that","we","know","which","node","'s","checkpoint","operation","dominates",".","Args",":","action_name",":","A","string","of","the","name","of","checkpoint","operation","."]
code: def report_checkpoint_stats(self, action_name):
      """
      Report the checkpoint stats for all the nodes, we need to aggregate all
      the node's stats together so that we know which node's checkpoint
      operation dominates.
  
      Args:
          action_name: A string of the name of checkpoint operation.
      """
      all_stats = {}
      for _, manager in self._node_managers:
          manager.collect_checkpoint_stats(all_stats)
      logger.debug("checkpoint stats: {}".format(all_stats))
      if self._metadata_handler:
          self._metadata_handler.report(action_name, all_stats)
  
imports: import os
  import logging
  from caffe2.python import core, context
  from caffe2.python.net_builder import ops
  from caffe2.python.task import final_output, Node, Task, TaskGroup, TaskOutput, WorkspaceType
label_desc: Use image node_id 7 for calling the MultiNodeCheckpointManager obj's underlying member method code with example usage: obj.report_checkpoint_stats(action_name) without return types