code: def _sync_file_list(self, remove_remainder=False):
      file_lists = self.comm.gather_obj(self.files)
  
      iters0 = None
      if self.comm.rank == 0:
          if file_lists is not None:
              if len(file_lists) == 0:
                  self.files = []
                  return
  
              iters0 = set(
                  [
                      i
                      for _, _, i in self._parse_filenames(
                          file_lists[0]
                      )
                  ]
              )
              for files in file_lists[1:]:
                  iters = set(
                      [i for _, _, i in self._parse_filenames(files)]
                  )
                  iters0 &= iters
  
              iters0 = list(iters0)
              iters0.sort()
              iters0 = iters0[-self.cp_interval :]
  
          else:
              raise RuntimeError("Can't gather checkpoint file names")
  
      iters0 = self.comm.bcast_obj(iters0)
      files = self._filenames(iters0)
  
      if remove_remainder:
          files2remove = set(self.files) - set(files)
          for file in files2remove:
              try:
                  os.remove(os.path.join(self.path, file))
              except Exception:
                  pass
  
      self.files = files
  
imports: import errno
  import os
  import shutil
  import tempfile
  import time
  import warnings
  import chainer
  from chainer.training import extension
label_desc: Use image node_id 6 for calling the _MultiNodeCheckpointer obj's underlying member method code with example usage: obj._sync_file_list(remove_remainder) without return types