博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MPICH2(r8733)的错误容忍
阅读量:6843 次
发布时间:2019-06-26

本文共 1475 字,大约阅读时间需要 4 分钟。

  hot3.png

以下为mpich2-trunk-r8733中的README第七节“ 错误容忍”的翻译
==================
MPICH2能够一定程度地容忍进程失效,并支持checkpointing/restart.
容忍进程失效
-----------------------------
本节中描述的这些特性应该被认为是实验性质的。即意味着它们并没有得到全面的测试,在未来的释放版中它们的行为可能发生改变。下文的说明,这是错误容忍所期待的。
 - ERROR RETURNS:   MPICH2中的通信失败不是致命性的错误。这意味着如果用户设置错误处理器为MPI_ERRORS_RETURN,MPICH2将在一个通信失败时间发生时返回一个适当的错误码。当一个进程与另一个进程通信时,检测到一个通信失败,它认为那个进程失效了从而将不再尝试和那个进程通信。用户可以,不管怎样,继续和其他的进程通信。对一个失效进程进行任何显著的发送或者接受操作,或者在一个拥有一个失效进程的通信器使用通配符接收操作,将会迅速地完成,并返回一个相对应的错误码。
 - COLLECTIVES:    对于执行在带有一个失效进程的通信器上集合操作,集合操作将返回一个错误给一些、但不必是全部的进程。一个集合操作在一个给定的进程上调用返回MPI_SUCCESS,意味着那个进程执行的部分集合操作已经成功的。
 - PROCESS MANAGER:    进程管理器:如果使用的是hydra进程管理器,hydra将会检测失效进程并通知MPICH2库。用户可以通过使用在MPI_COMM_WORLD中预定义的属性MPICH_ATTR_FAILED_PROCESSES,查询失效进程列表。这个属性值是一个包含了失效进程的进程号的整数数组。这个数组以MPI_PROC_NULL尾。
       MPICH2释放版的具体说明:用户需要在应用程序中声明下面extern型变量从而可以使用这个属性(这个想法原本应该被加入到mpi.h, 但是还没有那样做,是为了维持1.3.x释放版系列中的ABI(应用程序二进制接口)兼容性):
             extern int MPICH_ATTR_FAILED_PROCESSES;
       MPICH2释放版的具体说明: MPICH_ATTR_FAILED_PROCESSES属性目前只是定义在MPI_COMM_WORLD上,还没有定义到其他的通信器上。
   请注意默认情形下当任何进程在调用MPI_Finalize之前终止时,hydra将会abort整个应用程序。为了容许应用程序继续执行而不管失效的进程,你将需要启用mpiexec的-disable-auto-cleanup选项。

 - FAILURE NOTIFICATION: 这是一个不支持的功能和在将来几乎肯定会改变!

   当前的释放版中,hydra通过发送一个SIGUSR1信号将进程失效事件通知给MPICH2库。应用程序能够捕获这个用来通知进程失效的信号。如果应用程序用自己的处理程序替换了MPICH2库的信号处理程序,应用程序必须保证在自己的处理程序调用MPICH2库的信号处理程序。请注意,在一个信号处理函数中你不能调用任何MPI函数。
   在未来的释放版中,计划是提供一个形如MPIX_Failure_notify的调用来容许用户注册一个将会在进程失效被调用的回调函数。为了维持1.3.x释放版系列中的ABI(应用程序二进制接口)兼容性,这个机制还没有被加入.

转载于:https://my.oschina.net/ejoyc/blog/27668

你可能感兴趣的文章
嵌入式 RTP通话:视频流(H.264)的传输
查看>>
参数的排列组合2
查看>>
struts2中ognl标签详解
查看>>
.NET中Flags枚举的使用
查看>>
【Python之旅】第八篇:开发监控软件的思想与流程
查看>>
KVM虚拟机克隆
查看>>
XenApp / XenDesktop 7.6 初体验二 配置计算机目录和交付组
查看>>
C#的换行符和回车符在程序语句中如何表示?
查看>>
【MySQL】ibdata文件增大的原因
查看>>
MS SQL 批量给存储过程/函数授权
查看>>
并发集合(九)使用原子 arrays
查看>>
上传应用
查看>>
Cocos2d-x-v3动作体系
查看>>
ChargeSystem——One,Two,Three
查看>>
【ASP.NET】验证控件
查看>>
FZU 1752 a^b%c
查看>>
[华为机试真题]72.操作系统任务调度问题
查看>>
解决scrollView上subView下移20point问题的一种方式
查看>>
前端面试之关于HTTP协议
查看>>
利用 Matplotlib 绘制数据图形(二)
查看>>