code: def rank_zero_rm(path: Optional[Union[str, Path]]):
      """
      仅在 rank 0 下删除文件的函数。普通的删除文件操作在分布式文件系统中可能会发生错误，rank 0 下发删除成功后就运行走了，但实际的删除需要 rank 0 的机器
      发送到远程文件系统再去执行，这个时候在 rank 0 已经删除成功了，但是在远程文件系统那里这个操作还没完成，rank 1 读取的时候还是读取到存在这个文件；
      该函数会保证所有进程都检测到 ``path`` 删除之后才退出，请保证不同进程上 ``path`` 是完全一样的，否则会陷入死锁状态。
  
      :param path:
      """
      if int(os.environ.get(FASTNLP_GLOBAL_RANK, 0)) == 0:
          if path is None:
              return
          if isinstance(path, str):
              path = Path(path)
          if not path.exists():
              return
          _recursive_rm(path)
  
file_path: fastNLP/fastNLP/envs/distributed.py
imports: import os
  from functools import wraps
  from pathlib import Path
  from typing import Callable, Any, Optional, Union
  from contextlib import contextmanager
  from fastNLP.envs.env import FASTNLP_GLOBAL_RANK, FASTNLP_NO_SYNC
label_desc: Use image node_id 6 for calling a global function with example usage: rank_zero_rm(path) without return types