mpi4py 中的错误处理

本文从本人简书博客同步过来

上一篇中我们介绍了 mpi4py 中的属性和命名操作,下面将介绍 mpi4py 中的错误处理。

预定义错误处理

通信子

MPI.Comm.Set_errhandler(self, Errhandler errhandler)

将错误处理函数 errhandler 与当前通信子对象关联。

MPI.Comm.Get_errhandler(self)

获取与当前通信子对象相关联的错误处理函数,为一个 MPI.Errhandler 类对象。

MPI.Comm.Call_errhandler(self, int errorcode)

激活通信子对象上的错误处理函数,处理的错误码为 errorcode。MPI 标准中,通信子对象的默认错误处理函数为 MPI.ERRORS_ARE_FATAL,调用该方法时,如果没有指定其它错误处理函数,则默认地会调用 MPI.ERRORS_ARE_FATAL 停止该通信子组内的所有进程。不过需要注意的是,为了有助于 Python 的异常处理机制,mpi4py 中将 MPI.COMM_WORLD 和 MPI.COMM_SELF 的默认错误处理函数设置成了 MPI.ERRORS_RETURN。如果你需要将 mpi4py 中 MPI.COMM_WORLD 和 MPI.COMM_SELF 的错误处理函数传递给 C/C++/Fortran 库,推荐先将其错误处理函数恢复为默认的 MPI.ERRORS_ARE_FATAL,以防止调用库中发生的错误不会被注意到。

窗口

MPI.Win.Set_errhandler(self, Errhandler errhandler)

将错误处理函数 errhandler 与当前窗口对象关联。

MPI.Win.Get_errhandler(self)

获取与当前窗口对象相关联的错误处理函数,为一个 MPI.Errhandler 类对象。

MPI.Win.Call_errhandler(self, int errorcode)

激活窗口对象上的错误处理函数,处理的错误码为 errorcode。MPI 标准中,窗口对象的默认错误处理函数为 MPI.ERRORS_ARE_FATAL,调用该方法时,如果没有指定其它错误处理函数,则默认地会调用 MPI.ERRORS_ARE_FATAL 停止构成该窗口对象组内的所有进程。不过需要注意的是,为了有助于 Python 的异常处理机制,mpi4py 中将新创建的窗口对象的默认错误处理函数设置成了 MPI.ERRORS_RETURN。如果你需要将 mpi4py 中窗口的错误处理函数传递给 C/C++/Fortran 库,推荐先将其错误处理函数恢复为默认的 MPI.ERRORS_ARE_FATAL,以防止调用库中发生的错误不会被注意到。

文件

MPI.File.Get_errhandler(self)

将错误处理函数 errhandler 与当前文件句柄关联。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值