容错
MCCL 提供了一组功能,允许应用程序从网络故障、节点故障或进程故障等致命错误中恢复。当发生此类错误时,应用程序应该能够调用 mcclCommAbort 在通信器上释放所有资源,然后创建新的通信器以继续。
为了安全地中止 MCCL 通信器,MCCL 要求应用程序将通信器设置为非阻塞,并确保在调用 mcclCommAbort 时没有线程调用任何 MCCL 操作。设置非阻塞后,所有 MCCL 调用(除了 mcclCommDestroy/mcclCommAbort)都变为非阻塞,以便可以在任何时候调用 mcclCommAbort,在初始化、通信或最终确定通信器期间。如果 MCCL 通信器被设置为阻塞,线程可能因网络错误而卡在 MCCL 调用中;在这种情况下,MCCL 通信器可能会永远挂起。