高性能并行计算系统检查点技术与应用
数据处理中的高性能计算和并行处理技术(一)

数据处理中的高性能计算和并行处理技术引言:随着信息技术的迅猛发展和大数据时代的到来,数据处理已成为了各个行业和领域中的重要环节。
在面对海量数据的处理和分析时,单机计算已经远远不能满足需求。
因此,高性能计算和并行处理技术成为了数据处理的关键。
一、什么是高性能计算和并行处理技术高性能计算是指通过充分利用计算资源,使得计算能力大大超过传统计算机的计算模式。
而并行处理技术则是指将计算任务划分为多个子任务,并同时分配给多个处理器进行并行计算的技术。
二、高性能计算和并行处理技术的应用领域1. 科学研究在各个科学领域,如物理、化学、生物等,研究者需要进行大规模的计算和模拟以推进科学发展。
高性能计算和并行处理技术可以提供强大的计算能力,帮助科学家解决复杂的计算问题,加快研究进程。
2. 人工智能和机器学习人工智能和机器学习算法通常需要处理和分析大量的数据。
高性能计算和并行处理技术可以加速模型的训练和优化过程,使得机器学习算法更加高效和准确。
3. 金融行业金融行业需要快速地处理大量的交易数据和市场信息,以做出准确的预测和决策。
高性能计算和并行处理技术可以实现金融模型的复杂计算,并提供即时的分析结果。
4. 生物信息学生物信息学研究需要处理大规模的基因组数据,如基因序列分析、基因功能预测等。
高性能计算和并行处理技术可以加快基因数据的处理和分析速度,帮助科学家发现更多的基因信息。
三、高性能计算和并行处理技术的挑战1. 数据通信在并行处理中,各个处理器之间需要进行频繁的数据通信,以完成任务的分配和结果的整合。
如何高效地进行数据通信成为了挑战之一,需要保证通信带宽和延迟的性能。
2. 负载平衡并行处理涉及到任务的分配和负载的均衡,以充分利用各个处理器的计算能力。
如何合理地分配任务,避免负载不均衡成为了问题,需要设计合理的调度算法。
3. 数据一致性在分布式并行处理中,各个处理器涉及到对共享数据的访问。
如何保证数据的一致性,避免数据冲突和错误成为了挑战,需要设计高效的同步机制和事务处理。
计算科学中的高性能计算与并行计算

计算科学中的高性能计算与并行计算随着时代的发展,计算机科学的重要性越来越被人们所认识,从简单的计算器到高性能超级计算机,计算的速度越来越快,计算能力也越来越强大。
特别是在科学、工程、航空、军事、能源、医学等领域,计算机的应用越来越广泛,已经成为当今世界不可缺少的工具。
而在计算机科学中,高性能计算与并行计算更是成为了计算科学中的一个重要研究领域。
高性能计算和并行计算是指通过对多台计算机进行连接和协作,同时进行同一个任务的计算方式。
其目的是为了提高计算机的运算速度和性能,从而加快计算的过程并节省时间。
这种计算方式可以简单地理解为“分而治之”,将一个大的计算任务分成若干个小任务进行处理,最后将结果汇总,从而提高计算效率。
高性能计算和并行计算的主要应用领域包括但不限于物理、数学、化学、生物、医学、气象、工程、互联网等领域。
在这些领域中,科学家们需要解决各种各样的计算问题,而这些问题需要庞大的数据集和高效的计算方法才能处理。
而高性能计算和并行计算就成为了解决这些问题的有效工具。
为了实现高性能计算和并行计算,需要解决很多问题。
首先,要使用最新、最快的硬件设备,如多核处理器、高速网络、虚拟化技术。
其次,需要使用高效的编程语言和算法,如MPI、OpenMP、CUDA等。
最后,需要进行系统优化和并行编程技术的研究,以便在最短时间内完成任务。
面对日益庞大和复杂的计算问题,高性能计算和并行计算正变得越来越重要。
它们不仅可以提高计算效率和精确度,而且还可以节约时间和成本,进而推动科学、工程技术和社会的发展。
因此,高性能计算和并行计算将会在计算科学的研究领域中持续发挥着重要作用。
总之,计算机科学的发展离不开高性能计算和并行计算的支持。
它们是现代计算科学中最重要的研究领域之一,具有广泛的应用场景和深远的影响力。
随着计算机技术的不断进步和人们对计算机科学重要性认识的不断提高,高性能计算和并行计算的地位和作用也将会越来越受人们的重视。
高性能计算与并行计算技术

高性能计算与并行计算技术第一章:高性能计算简介高性能计算作为一种计算能力的拓展,旨在通过利用更强大的计算系统和算法,提供更高效的计算速度和更大的计算能力。
在现代科学研究、工程设计和商业运营中,高性能计算已经成为不可或缺的重要工具。
1.1 高性能计算的定义高性能计算是指通过利用大规模计算资源,使用并行计算技术以提高计算资源的利用率和计算任务的执行速度。
1.2 高性能计算的应用领域高性能计算广泛应用于气象预测、地震模拟、基因组分析、药物研发、人工智能、金融建模等领域,以解决大规模计算和复杂问题的需求。
第二章:高性能计算系统高性能计算系统是高性能计算的基础,它包括硬件架构、软件平台和网络连接等多个组成部分。
2.1 高性能计算硬件架构高性能计算硬件架构主要包括处理器、内存、存储和互联网络等。
其中,多核心处理器和大容量内存是提升计算能力和执行速度的重要组成部分。
2.2 高性能计算软件平台高性能计算软件平台包括操作系统、并行编程语言和工具库等。
常用的操作系统有Linux、Unix等,而并行编程语言如MPI,OpenMP等可以帮助开发人员充分利用计算资源。
2.3 高性能计算网络连接高性能计算网络连接是保证计算节点之间高效通信的重要环节。
高速网络如InfiniBand和以太网等可提供低延迟和高带宽的数据传输能力。
第三章:并行计算技术并行计算技术是实现高性能计算的基础,通过将任务分解成多个可并行计算的子任务,以提高计算效率和速度。
3.1 并行计算模型并行计算模型可以分为共享内存模型和分布式内存模型两种。
共享内存模型通过共享计算资源提供通信机制,而分布式内存模型则通过消息传递实现计算节点之间的通信。
3.2 并行计算算法并行计算算法是利用并行计算技术解决计算问题的具体方法。
常见的算法包括并行排序、图算法、线性代数计算等。
3.3 并行计算工具并行计算工具是开发和调试并行计算程序的辅助工具,如调试器、性能分析器、任务调度器等。
基于超级计算机的并行FDTD关键技术与应用

基于超级计算机的并行FDTD关键技术与应用基于超级计算机的并行FDTD关键技术与应用概述:近年来,随着计算机技术的快速发展,计算速度的提升已经成为超级计算机发展的主要动力之一。
光学器件的设计与仿真是光学领域中的一个重要研究方向,其中以FDTD(Finite-Difference Time-Domain,有限差分时域)方法为代表的数值模拟方法已经成为光学器件设计与仿真的主要手段。
然而,传统的FDTD方法由于计算量大、内存需求高等问题,在处理复杂光学结构时计算效率低下,难以满足实际应用的需求。
超级计算机在其高性能和强大的并行计算能力方面具有明显的优势。
本文将重点介绍基于超级计算机的并行FDTD关键技术与应用,包括基本原理、算法优化、并行计算模型等方面。
通过充分利用超级计算机的并行计算能力,可以提高FDTD方法的计算速度,应用于更广泛的光学器件设计与仿真。
一、基本原理:FDTD方法是一种基于Maxwell方程的数值模拟方法,通过在空间网格上离散Maxwell方程,利用差分运算和时间步进,实现光场传输和电磁场分布的计算。
基于超级计算机的并行FDTD方法将计算任务划分为多个子任务,并通过合理的通信和数据交换机制实现并行计算,提高计算速度和效率。
二、算法优化:为了进一步提高基于超级计算机的并行FDTD方法的效率,研究人员提出了一系列的算法优化方法。
首先,通过合理选择空间离散网格和时间步长,可以在保证计算精度的前提下减少计算量,提高计算速度。
其次,采用高效的并行数据结构和快速的数据交换算法,可以减少通信开销,提高并行计算效率。
此外,还可以结合GPU等加速器技术,进一步提高并行FDTD方法的计算速度。
三、并行计算模型:基于超级计算机的并行FDTD方法采用多种并行计算模型,包括共享内存模型、分布式内存模型等。
共享内存模型通过在超级计算机的节点之间共享内存资源,实现数据共享和通信。
分布式内存模型则通过将计算任务划分为多个子任务,并在不同节点之间进行数据传输和通信,实现并行计算。
高性能计算与并行编程技术研究与应用

高性能计算与并行编程技术研究与应用高性能计算与并行编程技术是当今信息技术和科学研究领域中的重要研究方向。
随着科学技术的不断发展和计算机硬件性能的提升,高性能计算和并行编程技术得到了广泛应用和关注。
本文将探讨高性能计算和并行编程技术的研究与应用。
高性能计算是一种通过使用多个处理器或计算机并行工作来提高计算速度的方法。
它可以在有限的时间内完成大规模的计算任务,从而在各种科学、工程和工业领域中提供了强大的计算能力。
高性能计算系统通常由大型超级计算机和高速网络等组成,其硬件和软件环境都是进行高性能计算所必需的。
并行编程技术是一种用于编写并发程序的方法和技术。
它通过将程序划分为多个子任务并同时运行,以提高整体程序的性能。
并行编程可以在多核处理器、分布式系统和大规模计算机集群等环境下实现。
并行编程技术的应用范围非常广泛,包括天气预报、粒子模拟、基因测序、图像处理和机器学习等领域。
在高性能计算和并行编程技术的研究与应用中,有几个关键的方面需要重点关注。
首先是性能优化。
为了充分利用硬件资源和提高计算效率,需要进行针对性的性能优化。
这包括算法优化、并行任务划分、数据通信和负载均衡等方面的优化。
只有通过高效的性能优化,才能最大程度地发挥高性能计算和并行编程技术的潜力。
其次是并行编程模型的选择。
并行编程模型是指描述并行程序中各个组件之间交互关系的框架。
常见的并行编程模型包括共享内存模型和消息传递模型等。
选择适合应用场景的并行编程模型对于程序的性能和可维护性至关重要。
同时,还需要考虑编程模型的易用性和可扩展性,以便更好地支持高性能计算和并行编程。
此外,研究与应用高性能计算和并行编程技术还需要关注并行算法的设计和实现。
并行算法是为并行计算环境下设计的算法,其目标是充分利用并行计算资源,提高算法的执行速度和效率。
并行算法的设计涉及任务划分、通信和同步等方面,并且需要考虑输入规模、问题复杂度和硬件限制等因素。
在实际应用中,高性能计算和并行编程技术已经取得了许多重要的成果。
高性能计算与并行算法

高性能计算与并行算法高性能计算(High Performance Computing,HPC)指的是利用计算机技术和算法来解决科学、工程、商业和其他复杂问题的计算过程。
随着计算机科学与技术的发展,高性能计算已经成为许多领域进行大规模计算和数据处理的重要工具。
本文将介绍高性能计算的概念、并行算法的特点和应用,并探讨其中的挑战与发展趋势。
一、高性能计算简介高性能计算通常指的是在短时间内解决大规模问题所需的计算能力。
它通过使用并行计算、分布式系统、超级计算机等技术手段,提高计算效率和处理速度。
高性能计算的应用领域广泛,包括天气预报、气候模拟、医学影像处理、基因组学研究等。
二、并行算法的特点并行算法是实现高性能计算的关键。
与串行算法相比,它充分利用多核处理器、分布式计算平台等并行计算架构,提高计算效率。
并行算法的特点如下:1. 分解与并行性:将问题分解成多个子问题,并行处理各个子问题,最后将结果合并。
2. 通信与同步:并行计算过程中需要进行数据交换和同步操作,确保计算的正确性和一致性。
3. 负载均衡:合理分配计算任务和数据,以最大程度地利用计算资源,避免负载不平衡导致性能下降。
三、并行算法的应用1. 矩阵计算:在科学计算和工程领域中,矩阵运算是非常常见的操作。
并行算法可以显著提高矩阵计算的效率,加快求解速度。
2. 图像处理:图像处理是一项计算密集型任务,如人脸识别、图像分割等。
并行算法可以将图像分割成多个子区域,分别进行处理,最后合并结果,提高处理速度和准确性。
3. 大规模数据分析:随着大数据时代的到来,处理海量数据已经成为许多领域的挑战。
并行算法可以将数据分割成多个部分,同时进行分析,提高数据处理效率。
4. 科学模拟:在物理学、化学等科学领域,模拟物理过程是一项重要任务。
并行算法可以将物理模型分解为多个计算单元,并行进行模拟,加快计算速度。
四、挑战与发展趋势高性能计算和并行算法仍面临一些挑战。
首先,如何合理利用不同硬件架构和计算资源,对算法进行优化,是一个需要解决的难题。
高性能计算中的并行计算技术

高性能计算中的并行计算技术在当今科技快速发展的时代,高性能计算(High Performance Computing,HPC)在各个领域中起着重要的作用。
而并行计算技术正是高性能计算的核心。
本文将介绍高性能计算中的并行计算技术,并探讨其在各个领域中的应用。
一、并行计算技术概述1.1 并行计算的定义并行计算是指将一个大问题分解成多个小问题,并利用多台计算机或者计算机内的多个处理器同时处理这些小问题的计算方式。
并行计算可以充分利用计算资源,提高计算效率。
1.2 并行计算的分类根据计算机体系结构和并行计算方式的不同,可以将并行计算分为共享内存并行计算和分布式内存并行计算。
1.2.1 共享内存并行计算共享内存并行计算是指多个处理器共享同一个物理地址空间,并通过读写共享内存进行通信与同步。
1.2.2 分布式内存并行计算分布式内存并行计算是指多个处理器拥有各自独立的物理地址空间,通过消息传递机制进行通信与同步。
二、并行计算技术在科学计算中的应用高性能计算的主要应用领域之一是科学计算。
在物理、化学、生物等科学领域,高性能计算可以大大加快计算速度,提高科学研究的效率。
2.1 分子模拟在分子模拟领域,通过并行计算技术,可以模拟分子系统的动力学行为,如蛋白质的折叠和分子反应的模拟等。
并行计算可以充分利用多个处理器的计算能力,大大加快分子模拟的速度。
2.2 天体物理学在天体物理学领域,通过并行计算技术,可以模拟宇宙中恒星的演化、行星的形成等复杂过程。
并行计算可以提供足够的计算能力,以处理模型中的大规模数据。
2.3 石油勘探在石油勘探领域,通过并行计算技术,可以进行地震波模拟,以确定潜在石油区域的地下结构。
并行计算可以充分利用多个处理器的计算能力,加速地震波传播的计算过程。
三、并行计算技术在工程领域中的应用并行计算技术在工程领域中也有着广泛的应用。
无论是航空航天、汽车工程还是建筑工程,高性能计算都发挥着重要作用。
3.1 航空航天工程在航空航天工程领域,通过并行计算技术可以模拟飞行器在大气中的流动情况,优化飞行器的设计,提高其性能和安全性。
并行处理技术在高性能计算中的应用

并行处理技术在高性能计算中的应用在当前数字化时代,科技发展日新月异,互联网、人工智能等新兴技术正在带来巨大的变革,而在这众多技术中,高性能计算更是备受关注。
高性能计算,简称HPC,指的是利用高速计算机及高效并行处理技术来解决复杂问题的计算过程,是计算科学领域中最为重要的技术之一。
其中,并行处理技术的应用,更是高性能计算中不可或缺的一部分。
一、什么是并行处理技术并行处理技术,即利用多个处理器或核心同时工作,并通过高速互联网络进行协同工作,以实现高性能计算的技术。
早在计算机诞生之初,计算机只有一个中央处理器来执行计算任务,而随着科技的不断发展,单一处理器技术已经无法满足人们的计算需求,这时候并行处理技术应运而生。
与单处理器计算机相比,多处理器计算机能够处理更复杂和大规模的问题,拥有更高的计算速度,更广泛的应用领域。
二、并行处理技术在高性能计算中的应用并行处理技术在高性能计算中的应用非常广泛,可以涉及到科学计算、工程计算、金融计算、图像处理等多个领域。
以下将以科学计算为例,来介绍并行处理技术在高性能计算中的应用。
1. 天气预报天气预报每天都在利用高性能计算机和并行处理技术进行运算。
对于天气预报来说,数据量非常大,需要进行多个模型的运算,而并行处理技术可以将这些任务分配到多个处理器上执行,从而加快运算速度。
例如美国国家气象局的预报系统,每天需要进行大量的气象模型计算和数据分析工作,而这些工作需要使用超级计算机进行处理。
2. 生物学研究并行处理技术也被广泛应用于生物学的研究领域。
例如,在基因测序、蛋白质结构预测和合成生物学等领域,高性能计算机和并行处理技术被广泛应用。
并行处理技术可以提高计算速度,从而加快数据分析和实验的进展,同时还可以提高数据的可靠性和精确性。
3. 物理学研究在粒子物理、原子核物理等领域,高性能计算机和并行处理技术帮助研究者进行了大量的计算。
例如,在欧洲核子研究组织(CERN)的大型强子对撞机项目中,高性能计算机和并行处理技术用于分析来自大型探测器的百万个数据,从而帮助科学家了解和探索宇宙中的基本构成和物质演化。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
高性能并行计算系统检查点技术与应用 孙国忠 李艳红 樊建平 (中国科学院计算技术研究所 中国科学院研究生院 北京 100080) (sgz@,lyh@,fan@)摘 要 随着高性能并行计算系统规模越来越大,软件和硬件发生故障的概率随之增大,系统的容错性和可靠性已经成为应用可扩展性的主要限制因素。
并行检查点技术可以使系统从故障中恢复并减少计算损失,是高性能计算系统重要的容错手段。
本文将介绍检查点技术的背景和定义,研究并行检查点协议的分类,检查点存储技术,以及利用这些协议和技术实现的MPI并行检查点系统,最后给出对各个关键技术的详细评价及结论。
关键词 高性能计算;消息传递系统;并行检查点;回滚恢复 中图法分类号 TP31 A Survey of Checkpointing Technology and It’s Application for HighPerformance Parallel SystemsSun Guo-Zhong Li Yan-Hong Fan Jian-Ping(Institute of Computing Technology,Chinese Academy of Sciences/Graduate School of the Chinese Academy of Sciences, Beijing 100080)(sgz@ lyh@ fan@ict.ac.cn)Abstract With the scale of high performance parallel computing systems becoming larger,the fault probability of software and hardware in these systems is increased.As a result, issues of fault tolerance and reliability are becoming limiting factors on application scalability.Parallel checkpointing can help fault system recover from fault and reduce the computing losing,and is an important method for tolerating fault of high performance computing system.This paper will discuss the background and definitions of checkpointing,classify of parallel checkpointing protocols, checkpoint storage technology, and several MPI systems adopting these parallel checkpointing protocols.At last we give appraisement of these key technologies and list our conclusions.Key words High Performance Computing; Message Passing System; Parallel Checkpointing ; Rollback Recovery1 引 言 高性能并行计算领域的容错技术由于以下几种情况而越发受到重视。
1)在一台高性能计算机系统中,总的处理器数快速增长。
如BlueGene/L 总的处理器有130,000个,有证据表明这样的一台机器几个小时就要有一个处理器失效。
虽然处理器总数的提高带来了性能提高,但是也提高了故障点的数目。
2)大多数并行计算机系统正在从采用昂贵的硬件系统向低成本、由处理器和光纤网络定制组装的cluster转变,以及采用Internet范围内网格技术来执行程序导致硬件发生故障的概率较高。
3)很多科学计算任务被设计成一次运行几天或者几个月,例如ASCI的stockpile certification 程序以及BlueGene当中的ab initio 蛋白质折叠程序将运行几个月。
由于应用的运行时间比硬件的平均故障间隔时间(MTBF)长,科学计算程序必须本课题得到国家高科技发展计划(863)基金支持(2003AA1Z2070)和中国科学院知识创新工程支持(20036040) 具有对硬件故障的容错技术。
采用检查点技术恢复应用运行是一种有效的容错方法。
检查点技术除了实现系统容错,还能协助实现灵活的作业调度。
例如,拥有高性能计算系统的气象局要在每天的固定时段加载资源独占作业进行气象预报或者运行紧急作业,需要暂停原来运行的其它作业。
因此必须记录原来作业的检查点并在完成紧急作业后恢复运行。
可见,采用检查点技术可以实现系统容错,实现灵活的作业调度以及提高资源利用率。
本文将通过对各种并行检查点技术的分析比较,呈现出高性能并行计算系统检查点机制的发展状况,存在的问题和研究前景。
2背景和定义 检查点技术在各个领域都进行了广泛研究,如硬件级指令重试、分布式共享内存系统、系统调试、实时系统等。
本文侧重于高性能并行计算系统,主要包括MPP、Cluster。
这些系统的进程之间通过消息传递实现通信,本文中也称为消息传递系统。
在高性能并行计算系统中有两类检查点,单进程检查点(局部检查点)和并行程序检查点(全局检查点)。
单进程检查点是将进程足够的状态存到外存的一个文件里,保证从这个外存文件能够恢复进程,使其在检查点正确的继续运行。
并行程序检查点由多个单进程检查点组成。
高性能并行计算机系统检查点技术就是通过各种协议的设计,利用单进程检查点技术,能切取/恢复并行程序的状态。
2.1 系统模型 一个消息传递系统由一些相互协调合作运行的分布式应用程序进程组成,进程之间通过且仅通过消息传递来通信,且与外界(outside world)通过发送输出消息和接收输入消息进行交互。
图1给出了一个包含3个进程的消息传递系统。
图 1 具有3个进程的消息传递系统2.2 一致的系统状态 一个消息传递系统的全局状态包括所有参与进程的局部状态以及通信通道的状态。
一致的系统状态定义为:系统状态中不包含孤立消息。
孤立消息定义为:消息的接收事件被记录,但是发送事件却丢失了。
图2给出了一致状态和非一致状态的例子。
(a)是一致状态,表示m1已经被发送,但是还没有被接收。
m1称为传递中消息。
当传递中消息成为系统全局状态的一部分,这些消息不会导致不一致。
(b)是非一致状态,m2已经被P2接收并记录下来,实际P1的状态记录m2还没有发送。
图 2一致状态和非一致状态说明 一致的全局检查点是指包含在并行程序全局检查点中各个单进程的状态,它描述了该消息传递系统的一致系统状态。
2.3 检查点协议 在基于检查点协议中,每个进程周期或根据某些条件记录局部检查点。
检查点内容包括进程数据段、堆栈段、寄存器和环境变量。
环境变量包括文件指针、工作目录等进程描述符等内容。
进程可以相互协调记录检查点形成一致的状态,这种方法称为协作式检查点(coordinated checkpointing),也称为同步(synchronous)检查点。
另外各个进程也可以独立记录检查点,在恢复阶段获得一致状态,称为独立式检查点(independent checkpointing),也称为无协作检查点(uncoordinated checkpointing),或者异步(asynchronous)检查点。
另外一种方法称为消息引导检查点(Communication-induced checkpointing),也称为类同步(quasi-synchronous)检查点,它强制每一个进程根据收到的捎带在其它应用进程消息中的信息记录检查点。
为减少损失把系统恢复到最近的一致全局检查点,这个一致的全局检查点称为恢复线(Recovery line )。
图3中,3个进程开始的检查点集合构成了一个恢复线。
图 3 恢复线、Domino 效应2.4 Domino效应 独立式检查点方法容易导致Domino效应。
图3中,假设P2发生故障,回滚到检查点C。
回滚使m6无效,导致P1必须回滚到B,以使接收到的m6无效。
P1的回滚导致使m7无效,又使得P0回滚。
如此往复,导致了Domino效应,使得系统回滚到开始处。
为了避免Domino效应,可以采用协作式检查点或者消息引导检查点,也可以把独立式检查点和事件日志结合起来。
2.5 与外界交互 一个消息传递系统经常和外界交互接收输入数据或者输出计算结果。
如果发生错误,外界不能只依靠回滚实现恢复。
例如,一个打印机不能回滚到已经打印了一个字符之前的状态。
因此系统在向外界输出结果之前,必须保证即使发生故障,也能从向外界输出后的状态中恢复到输出之前的状态。
这通常称为输出提交问题。
类似的,系统从外界接收的消息也不能在恢复中重新生成。
恢复机制必须把外界消息保存起来,在需要的时候可以获得这些消息。
2.6日志协议 在基于日志的协议中,进程不仅记录检查点,也记录与事件相关的足够日志信息。
这对于与外界交互频繁的系统来说尤其有意义。
有日志的协议可以有效避免Domino效应。
根据记录日志事件信息的时机,可以分为三种方法。
悲观日志(pessimistic logging),应用在事件可以被其它进程或外界看到之前,阻塞等待直到把事件相关信息存放到稳定存储上。
乐观日志(optimistic logging),应用不被阻塞,事件相关的日志信息异步记录到稳定存储上。
因果日志(causal logging),结合了以上两种方法的优点。
基于日志的协议以分段确定性(PWD:PieceWise Deterministic)假设作为基础。
在这个假设下,恢复机制可识别出进程执行的所有非确定性事件。
非确定性事件的例子包括接收消息、接收外界输入、中断等。
2.7 稳定存储 稳定存储是一种存储介质,当断电后它所保存的值不会丢失。
稳定存储可以用来记录检查点、事件日志或其他和恢复操作相关的信息。
稳定存储经常和实现它的磁盘相混淆,但实质上还有几种稳定存储介质,包括磁带、磁鼓、非易失性内存。
2.8 垃圾回收 检查点内容和事件日志都会占用存储资源。
随着进程的执行,更多的恢复信息被收集,其中的一部分会变得无用。
垃圾回收是指对这些无用信息的删除以释放存储资源。
垃圾回收的一般方法是识别出恢复线,丢弃恢复线之前事件相关的信息。
例如,如果多个进程采用协调记录检查点协议来形成一致状态且总是从每个进程最近的检查点开始恢复,则可以丢弃前面所有的检查点。