基于消息传递并行进程迁移技术的研究与实现

合集下载

跨进程传递指针的方法

跨进程传递指针的方法

跨进程传递指针的方法跨进程传递指针的方法取决于所使用的操作系统和编程语言。

在大多数操作系统中,进程之间的内存空间是隔离的,因此直接传递指针是不可能的。

然而,有一些方法可以实现跨进程传递指针的效果:1. 使用共享内存:通过共享内存,两个进程可以访问同一块物理内存区域。

这可以通过使用系统调用(如shmget、shmat和shmdt)在Unix-like系统上实现,或者使用特定的库(如库)在Windows上实现。

使用共享内存时,需要小心同步和互斥问题,以避免竞态条件和死锁。

2. 使用消息传递:进程之间可以通过发送和接收消息来传递指针。

这种方法需要定义一个消息协议,其中包含指向数据的指针。

常见的消息传递系统包括套接字、管道、信号量、共享内存等。

这种方法比直接传递指针更安全,因为它可以避免指针的非法访问和潜在的内存泄漏问题。

3. 使用文件映射:文件映射是一种将文件作为共享内存的机制,可以在进程之间共享数据。

通过将文件映射到进程的地址空间中,一个进程可以读取和修改另一个进程的数据。

这种方法需要在文件系统级别进行操作,并可能需要额外的权限和配置。

4. 使用远程过程调用(RPC):RPC是一种允许一个进程通过网络调用另一个进程中的函数的方法。

通过RPC,一个进程可以请求另一个进程执行某个操作,并将结果返回给调用者。

RPC通常使用序列化技术将数据转换为可以在网络上传输的格式,并在另一端进行反序列化以恢复原始数据。

这种方法需要在网络级别进行通信,并可能涉及到额外的传输开销和安全性问题。

需要注意的是,跨进程传递指针存在一定的风险和复杂性。

直接操作指针可能会导致竞态条件、死锁、数据损坏或安全漏洞等问题。

因此,在实现跨进程通信时,建议使用更加安全和抽象的方法,如消息传递、文件映射或RPC 等。

实验三-进程通讯实验报告

实验三-进程通讯实验报告

实验三进程通讯实验报告【姓名】【学号】【实验题目】进程通讯——消息队列与共享存储区【实验目的】(1)掌握进程间通讯的编程方法;(2)加深对进程并发执行的理解;(3)学习利用消息队列和共享存储区实现进程通信的方法。

【实验内容】设计一个多进程并发运行的程序,它由不同的进程完成下列工作:(1)接收键盘输入进程负责接收用户的键盘输入,并以适当的方式将由键盘获得的数据交给其它进程处理。

(2)显示进程负责全部数据显示任务,包括键盘输入数据的显示和提示信息的显示。

(3)分发数据进程将键盘输入的数据分为3类,即字母、数字和其它,并分别将字母写入文件letter.txt 中,数字写入文件number.txt中,除字母和数字外其它数据丢弃。

【实验要求】1、程序能以适当的方式提示用户输入数据;2、提示用户有数据被丢弃;3、全部的显示任务必须由显示进程完成;4、整个程序能够连续处理多组输入数据,直到用户输入“quit”字符串,整个程序结束;5、进一步要求:同时采用共享存储区和消息2种方法实现进程之间的通信,并比较这2种通信方法的利弊。

【实验方法】1、利用fork()函数创建2个子进程,用一个父进程和两个子进程完成上面的三个实验任务,用子进程1实现分发数据任务,子进程2实现接受键盘输入任务,父进程实现全部的显示任务。

2、同时通过共享存储区和消息队列两种进程通讯方式实现上面三个进程之间的同步和互斥。

3、利用while()循环、kill()函数和signal()函数实现连续多组数据输入。

【程序结构】·数据结构:消息队列、字符数组;·程序结构:顺序结构、if-else分支结构和while循环结构;·主要算法:无特别算法【实验结果】1、有代表性的执行结果:[stud13@localhost stud13]$ cc ipc.c[stud13@localhost stud13]$ ./a.outPlease input a line:∟operatingsystem01234-=,.Your message is:operatingsystem01234-=,.The characters deserted are:-=,.Please input a line:∟xushengju6651001!@#$%^&*()Your message is:xushengju6651001!@#$%^&*()The characters deserted are:!@#$%^&*()Please input a line:∟Hello123Your message is:Hello123Please input a line:∟quit[stud13@localhost stud13]$ cat letter.txtOperatingsystemxushengjuHello[stud13@localhost stud13]$ cat number.txt 012346651001123[stud13@localhost stud13]$2、结果分析及解释:在创建子进程1时,由于先返回子进程的ID号,msgrcv(msgid,&msg,BUFSIZE,0,0)一直都是非0值,故循环等待。

《进程管理》课件

《进程管理》课件

和协作。
进程迁移
02
为了提高系统可靠性和可用性,分布式系统支持进程迁移,确
保关键任务能够持续运行。
负载均衡
03
分布式系统通过负载均衡技术,将任务分配到不同节点上执行
,提高系统整体性能。
THANKS
感谢观看
当系统中存在多个等待资源的进程,且每 个进程都持有至少一个资源并等待获取被 其他进程持有的资源时,就会产生死锁。
通过设置资源分配顺序或限制资源请求量 来避免饥饿。
• 死锁预防
• 死锁避免
通过破坏死锁产生的必要条件来预防死锁 ,例如预先分配资源、设置最大需求量等 。
在分配资源时进行检测和限制,避免产生 死锁,例如银行家算法。
进程的状态及其转换
总结词
阐述进程的三种基本状态及转换关系
详细描述
进程状态分为新建、运行、阻塞和就绪等状态。新建状态是进程被创建时的状态,运行状态是进程获 得CPU并执行的状态,阻塞状态是进程等待某个条件成立而暂时无法执行的状态,就绪状态是进程已 具备运行条件但未获得CPU时的状态。不同状态之间可以相互转换。
进程管理在操作系统中的应用
01
02
03
进程调度
操作系统通过进程调度算 法,合理分配系统资源, 确保进程能够高效地运行 。
进程同步
操作系统提供进程同步机 制,实现多个进程之间的 协同工作,避免资源竞争 和死锁。
进程通信
进程之间通过消息传递、 共享内存等方式进行通信 ,实现数据交换和协同工 作。
多核处理器下的进程管理技术
进程与程序的区别和联系
总结词
比较进是程序的一次执行过程,具有动态特性和独立性。 程序是静态的,而进程是动态的。程序是永存的,进程是暂时的。程序是过程的代码, 而进程是执行这些代码的过程。一个程序可以对应多个进程,但一个进程不能对应多个

面向异构数据的迁移学习技术研究

面向异构数据的迁移学习技术研究

面向异构数据的迁移学习技术研究引言在当今数据驱动的社会中,数据的异构性已经成为一个普遍存在的问题。

不同来源、不同类型、不同结构的数据之间存在着差异,这给机器学习任务带来了挑战。

迁移学习作为一种解决这一问题的方法,已经引起了广泛关注。

本文将探讨面向异构数据的迁移学习技术研究,分析其应用场景、方法和挑战,并展望其未来发展方向。

应用场景面向异构数据的迁移学习技术在许多实际应用中发挥着重要作用。

以医疗领域为例,医疗数据通常包含多种类型和来源,如电子病历、医学影像和生物标志物等。

利用已有领域(如图像识别)上训练得到的模型进行迁移学习,可以加速新领域(如肿瘤诊断)上模型训练过程,并提高预测性能。

另一个应用场景是自然语言处理领域。

自然语言处理任务中常常需要处理来自于不同领域或社交媒体平台的文本数据,这些数据的特点各不相同,如语言风格、词汇表和语法结构等。

通过将已有数据上训练得到的模型迁移到新领域上,可以避免从头开始训练模型,提高模型的泛化能力和性能。

迁移学习方法面向异构数据的迁移学习方法可以分为基于特征的方法和基于模型的方法。

基于特征的方法主要关注如何将不同领域或类型数据中提取到的特征进行对齐。

这些方法通常通过对源领域和目标领域中提取到的特征进行映射或转换,使得它们在相同或相似分布下更加接近。

常用的技术包括主成分分析、典型相关分析和核规范相关分析等。

基于模型的方法则更加关注如何在不同领域或类型数据上共享知识。

这些方法通常通过共享参数、共享层或共享结构等方式来实现跨领域知识传递。

例如,在深度神经网络中,可以通过在预训练网络上微调参数来将已有知识迁移到新任务上。

挑战与展望面向异构数据迁移学习技术面临着一些挑战。

首先,数据的异构性导致了数据分布的不一致,这给迁移学习带来了困难。

如何有效地对齐不同领域或类型数据的分布,是一个需要解决的问题。

其次,迁移学习需要在源领域和目标领域之间建立联系。

然而,在现实应用中,源领域和目标领域之间往往存在着巨大差异,这使得建立联系变得困难。

linux进程迁移原理

linux进程迁移原理

linux进程迁移原理
Linux进程迁移是指将正在运行的进程从一个处理器移动到另
一个处理器上执行的过程。

进程迁移的原理涉及到操作系统的调度器、进程状态保存和恢复、以及多处理器系统的协调工作。

首先,进程迁移涉及到操作系统的调度器。

在多处理器系统中,不同的处理器上可能有不同的负载情况,为了实现负载均衡,操作
系统的调度器会根据系统的负载情况动态地调整进程的分配情况。

当某个处理器负载过重或者其他处理器负载较轻时,调度器会考虑
将运行中的进程迁移到其他处理器上执行,以实现系统资源的最优
利用。

其次,进程迁移涉及到进程状态的保存和恢复。

在进行进程迁
移时,操作系统需要保存正在运行进程的状态,包括寄存器的内容、内存映射、打开的文件等信息。

然后将这些状态信息传输到目标处
理器上,并在目标处理器上恢复这些状态,使得进程可以在新的处
理器上继续执行,而不会丢失任何运行状态。

此外,进程迁移还涉及到多处理器系统的协调工作。

在多处理
器系统中,不同处理器之间需要进行协调和通信,以确保进程迁移
的顺利进行。

这包括在进行迁移时暂停进程的执行、传输进程状态信息、在目标处理器上重新调度进程等操作。

总的来说,Linux进程迁移的原理涉及到操作系统调度器的负载均衡、进程状态的保存和恢复、以及多处理器系统的协调工作。

这些原理的相互配合使得进程可以在多处理器系统中高效地进行迁移,从而实现系统资源的最优利用和性能的提升。

并行任务调度算法研究

并行任务调度算法研究
314 非确定性调度
非确定性调度技术又称为随机搜索调度技术 ,它主要是通 过有导向的随机选择来搜索问题的解空间而并不是单纯的随 机搜索 。这类技术组合前面搜索结果的知识和特定的随机搜 索特点来产生新的结果 。遗传算法是最流行和使用最广泛的 该类技术 ,它们的调度时间一般高于使用其他技术的调度算 法 ,适合于某一种任务图的控制参数优化集并不适合于另一种 类型的任务图 ,即对新的任务图遗传算法需要长时间的训练学 习 。另外 ,模拟退火方法也属于该类型技术 。
考虑到任务图的基本信息以及处理单元本身和其互连结 构的基本信息是否在应用程序执行前可以得到 ,已经调度好的 任务是否可以由于其处理单元失效而实时迁移等因数可以把 并行任务调度算法分为两大类 。一类假设任务图和处理单元 相关的信息在程序执行前可以精确获取 ,调度好的任务节点不 能迁移 ,基于这类假设的调度算法称为静态调度算法 ,也叫编 译时间调度算法 ;反之则称为动态调度算法 ,也叫实时调度算 法 。前者存在如何精确获取所需信息的问题 ,但其可凭借成熟 的模型组织有效而具体的启发式算法 ,文献中大多数算法均属 于此类算法 ;后者需要程序实时执行期间得到相应调度信息来 调度任务 ,有许多不确定因数存在 ,调度开销一般较大 ,但在大 型分布式系统如网格计算中该类算法不失为有效的方法 ,也适 合于含有条件分支和循环的任务图调度 。本文讨论的并行任 务调度算法主要限于第一类 。图 1 就已有的并行任务调度算 法进行了粗略的分类 。
第 11 期
马 丹等 :并行任务调度算法研究
·91 ·
并行任务调度算法研究
马 丹1 , 张 薇1 ,2 , 李肯立1
(1. 华中科技大学 计算机学院 , 湖北 武汉 430074 ; 2. 武汉军械士官学校 , 湖北 武汉 430075)

ipcd协议

ipcd协议一、概述IPC(Inter-Process Communication,进程间通信)是计算机科学中的一个重要概念,它指的是在多个进程之间进行数据交换和通信的机制和技术。

而ipcd协议则是一种特定的IPC协议,用于在不同的进程之间进行高效的通信。

二、ipcd协议的特点ipcd协议具有以下几个特点:1. 跨平台兼容性ipcd协议设计时考虑了跨平台的兼容性,因此可以在不同的操作系统和硬件平台上进行使用。

这使得ipcd协议成为一种非常灵活和通用的IPC解决方案。

2. 高效的数据传输ipcd协议采用了高效的数据传输机制,能够在进程间快速地传输大量的数据。

它使用了一种优化的数据编码和解码算法,以及高速的数据传输通道,从而实现了高效的数据传输。

3. 可靠性和安全性ipcd协议在设计时考虑了通信的可靠性和安全性。

它采用了一系列的机制来确保数据的可靠传输,包括错误检测和纠正、数据重传等。

同时,ipcd协议还提供了安全的认证和加密机制,以保护通信过程中的数据安全。

4. 灵活的通信模式ipcd协议支持多种通信模式,包括点对点通信、发布订阅模式等。

这使得ipcd协议可以适应不同的通信场景和需求,提供灵活的通信方式。

三、ipcd协议的应用场景ipcd协议可以在各种不同的应用场景中使用,以下是几个常见的应用场景:1. 分布式系统在分布式系统中,不同的进程可能运行在不同的计算节点上,它们需要进行数据交换和通信。

ipcd协议可以提供高效的进程间通信机制,使得分布式系统中的各个进程能够快速地进行数据传输和通信。

2. 并行计算在并行计算中,多个进程可能同时执行不同的任务,它们之间需要进行数据交换和协调。

ipcd协议可以提供高效的数据传输和通信机制,使得并行计算中的各个进程能够快速地进行数据交换和协作。

3. 消息队列ipcd协议可以作为消息队列的基础协议,用于实现消息的发布和订阅。

它可以提供高效的消息传输和通信机制,使得消息队列能够快速地进行消息的发布和订阅。

并行编程原理与实践

并行编程原理与实践一、并行编程概述并行编程是指利用多个处理器或计算机核心同时执行程序,以提高程序的性能和效率。

在多核CPU和分布式系统的背景下,越来越多的应用程序需要实现并行计算。

但是,并行编程也带来了许多挑战,比如线程同步、数据共享等问题。

二、并行编程模型并行编程模型是指描述并行计算过程的抽象概念和方法。

常见的并行编程模型包括共享内存模型和消息传递模型。

1. 共享内存模型共享内存模型是指所有处理器都可以访问同一个物理内存空间,并且可以通过读写共享变量来进行通信。

在共享内存模型中,线程之间可以通过锁机制来同步访问共享变量,以避免数据竞争。

2. 消息传递模型消息传递模型是指不同处理器之间通过发送和接收消息来进行通信。

在消息传递模型中,每个处理器都有自己的私有内存空间,不能直接访问其他处理器的内存空间。

因此,在消息传递模型中需要使用特殊的通信库来实现进程之间的通信。

三、并行编程技术1. 多线程编程多线程编程是指利用多个线程同时执行程序,以提高程序的性能和效率。

在多线程编程中,需要注意线程同步、数据共享等问题。

2. OpenMPOpenMP是一种基于共享内存模型的并行编程技术,它提供了一组指令集,可以在C、C++和Fortran等语言中实现并行计算。

OpenMP 采用“指导性注释”的方式来控制程序的并行执行。

3. MPIMPI是一种基于消息传递模型的并行编程技术,它可以在分布式系统中实现进程之间的通信。

MPI提供了一组函数库,可以在C、C++和Fortran等语言中实现并行计算。

4. CUDACUDA是NVIDIA公司推出的针对GPU的并行编程技术。

CUDA允许开发者使用C语言来编写GPU程序,并且提供了丰富的API函数库来支持各种计算任务。

5. MapReduceMapReduce是Google公司推出的分布式计算框架,它可以将大规模数据集分成若干个小块进行处理,并且通过网络传输将结果汇总起来。

MapReduce采用函数式编程思想,将计算过程抽象成映射和归约两个阶段。

单个计算机实现并行处理的途径_理论说明

单个计算机实现并行处理的途径理论说明1. 引言1.1 概述随着计算机技术的发展和进步,人们对于提高计算机性能和处理效率的需求也日益增加。

并行处理作为一种有效的解决方案被广泛应用于各种领域,如科学计算、数据分析等。

在传统的观念中,实现并行处理一般需要多台计算机之间进行协作,并且通常需要进行复杂的系统配置和网络设置。

然而,单个计算机实现并行处理也成为了一种备受关注的研究领域。

1.2 文章结构本文将重点探讨单个计算机实现并行处理的途径以及相关理论知识。

文章分为五个部分:引言、单个计算机实现并行处理的途径、基于任务划分的并行模型、基于数据划分的并行模型和结论。

在引言部分,我们将对整篇文章进行概述,并介绍本文各个部分的内容安排。

1.3 目的本文旨在通过理论说明,介绍单个计算机实现并行处理的方法和技术。

通过深入探讨并发与并行的区别、多线程技术以及SIMD架构等内容,读者将能够了解到单个计算机实现并行处理的基本概念和原理。

此外,我们还将介绍基于任务划分和数据划分的并行模型,包括任务划分思想、数据一致性问题、分布式共享内存系统的实现原理、数据通信与同步机制,以及并行算法设计与优化方法等内容。

最后,在结论部分,我们将总结单个计算机实现并行处理的途径方法及其优缺点,并展望未来研究方向和发展趋势。

通过本文的阅读,读者将能够深入了解单个计算机实现并行处理的理论知识,并掌握相关技术和方法,从而提高计算机性能和处理效率。

这对于在科学研究、工程应用和数据处理等领域中面临大规模计算需求的人们具有重要意义。

2. 单个计算机实现并行处理的途径2.1 并发和并行的区别在讨论单个计算机实现并行处理的途径之前,我们首先要明确并发(concurrency)与并行(parallelism)的区别。

并发是指多个任务交替进行,通过任务间的切换快速响应每个任务的需求。

而并行则表示多个任务同时执行,通过利用多核或多处理器来加速任务处理。

尽管两者都涉及多任务处理,但并发更侧重于提高系统资源利用率和提升用户体验,而并行更强调提高计算性能和加速任务完成时间。

intel mpi原理

intel mpi原理Intel MPI是一种基于消息传递接口(Message Passing Interface,MPI)的编程库,用于在Intel架构上实现并行计算。

它提供了一套高性能的通信和同步机制,使得并行应用程序能够在多个处理器之间进行消息传递,并实现并行计算的任务划分和负载均衡。

本文将介绍Intel MPI的原理和工作机制。

Intel MPI的原理基于MPI标准,该标准定义了一系列的函数和语义规范,用于在分布式内存系统中进行并行计算的消息传递。

MPI 标准的目标是提供一种统一的编程接口,使得不同的并行计算环境能够实现互操作性。

Intel MPI作为一种基于MPI标准的实现,提供了对Intel架构的优化和支持,以提供更高的性能和可扩展性。

Intel MPI的工作机制主要包括进程通信、进程管理和任务调度三个方面。

进程通信是Intel MPI的核心功能之一。

在并行计算中,不同的进程之间需要进行消息传递,以实现数据的交换和协同计算。

Intel MPI通过提供一系列的通信函数,如发送(send)、接收(receive)和同步(synchronize)等,来支持进程之间的消息传递。

这些通信函数可以根据应用程序的需要进行灵活的调用,以实现不同的通信模式,如点对点通信、广播通信和规约通信等。

此外,Intel MPI 还提供了高效的通信协议和算法,如基于RDMA(Remote DirectMemory Access)的通信方式,以提高通信性能和可扩展性。

进程管理是Intel MPI的另一个重要功能。

在并行计算中,需要对多个进程进行管理和调度,以实现任务的分配和负载均衡。

Intel MPI通过提供一系列的进程管理函数,如进程创建(create)、进程销毁(destroy)和进程同步(synchronize)等,来支持进程的管理和协同。

这些函数可以根据应用程序的需要进行灵活的调用,以实现不同的进程管理策略,如静态进程划分和动态进程迁移等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.mpirun由BLCR恢复之后与同Node2上的lamd重链 接;
2.根据用户或管理程序的要求来创建全新MPI任务拓 扑mig_schema;
3.mpirun根据mig schema中的MPI任务拓扑向各节点 上的lamd服务发出恢复请求;
4.1amd接收到恢复请求后,从本地或其它节点获取检查 点文件之后,调用BLCR命令cr restarz恢复进程,并与lamd 重链接;
4进程迁移的实现
圳/Migration进程迁移的实现分为检查点保存与异
地卷回两个部分,其中LAM环境重链接与通讯通道重建模 块发挥了关键作用。 4.1 MPI任务的检查点机制
LAM/Migration应用同步检查点协议来保证记录MPI 任务正常运行期间的一致状态。检查点文件保存在集群可靠 共享存储设备NAS上。检查点操作入I:/是mpirun进程,具 体流程如下(如图2所示)。
现MPI整体任务在节.最之间的自由迁移,其迁移功能对应用程序透明,智能化程度高,并可应用于集群节点客错与负
裁均衡,有效提高集群的可用性。
关键词MPI,高可用,检查点,卷回,进程迁移
中图法分类号TP338.8
文献标识码A
Research on Implementation of Message Passing Based Parallel Process Migration LIU Tian-tian YANG Sheng-chun OU Zho/149-hong YUAN You-guang (Wuhan Digital Engineering Institute,Wuhan 430074,China)
2研究现状
目前国外已开发出ห้องสมุดไป่ตู้干具有容错功能的MPI算平台,如
应用CoCheek检查点软件实现容错的tuMPI[“,Starfishc引, MPICH一Ⅵ们等,但都没有解决MPI进程迁移这一难题。 Jiarmong Caor5]提出的MPI进程迁移方案是通过修改检查点 文件中的数据实现的,当检查点文件的内容或数量较大时,将 产生巨大开销,且灵活性差。Chao wan毋6。提出的Job Pause Service机制由于不能迁移任务主进程mpirun,因此不能真正 实现整体任务迁移,当mpirun进程所在节点发生故障时,仍 无法避免整体任务的崩溃。
2.在MPI层添加通讯通道重建模块(Communication Channel Rebuilder,CC-Rebuilder):MPI进程迁移后,更新 MPI进程间的通讯路由,重建进程间的消息通道。
LAM环境重链接模块与通讯通道重建模块是实现进程 迁移的两大支撑,具体实现将在第4节阐述。LAM/Migra- tion的MPI层与LAM层共同实现同步检查点算法(coordi— hated checkpoint protoc01),并配合内核检查点模块BLCR实 现MPI任务检查点的保存工作。因为CC-Rebuilder与RTE- Relinker分别在MPI层和LAM层实现,所以LAM/Migra— tion的进程迁移功能对应用程序完全透明,而且MPI进程在 CC-Rebuilder与RTE-Relinker的协助下,可自主完成LAM 环境重链接、通讯路由更新、消息通道重建,无需任何外界或 人工干预,充分体现出LAM/Migration的智能化。
本文基于MPI-1规范,以扩展MPI运行环境的容错能力 为目标,选用IAnux 2.6与Lpd订/MPI.7.3作为开发平台,突 破了MPI进程迁移这一关键技术,成功开发出LAM/Migra— tion原型系统,实现MPI进程在任意节点之间的自由迁移, 有效提高了系统可用性。其特点如下:
①MPI容错功能扩展:通过将检查点软件BLCR(Berke. Icy Lab’S Checkpoint/Restart)与LAM/MYI相结合,实现 MPI整体任务状态的保存与任务的卷回恢复。
节点上的lamd重链接并重建消息通道,这需要RTE-Relinker 和CC-Rebuilder共同支持。值得注意的是,各MPI进程在将
各自一gps结构发送给mpirun之前,必须感知mpirun迁移的 新地址,即各MPl进程必须更新与mpirun之间的路由。而 在mpirun启动中,只有lamd服务知道其地址信息,LAM/ Migration应用lamd与MPI进程间的通讯将mpinm的地址
1.mpirun接收到用户或系统管理程序的检查点命令之 后,向所有节点的MPI服务进程lamd广播检查点请求信号;
2.各节点上的lamd将该检查点信号转发给本地MPI进 程;
3.为了记录MPI任务一致状态,各MPI进程在自身检 查点产生之前必须相互协调地做一些准备工作,包括清空 MPI进程之间的在途消息(on-fly—message),释放共享内存、 文件、信号量、套接字等BLCR不能保存的资源。在所有 MPI进程完成准备工作之后生成检查点;
int4 gps_node#
//MPI进程所在节点编号
int4 gps_pid;
IIMPT进程的PTD号
int4 gps idx!
//对应本地Iamd保存的索引号
int4 gps grankst //在整个通讯环境中的rank号
}l
图3进程地址信息~gps结构
4.5 mpirtm进程的迁移 同MPI进程相似,在mpirun进程迁移时,同样必须同新
存在app sehama中,其反映了各MPI进程与所在节点的映 射关系。进程迁移改变了原始任务拓扑,所以LAM/Migra- tion在进程迁移操作中。mpirun将根据迁移状况刨建新的任 务拓扑mig_schema来对应新的映射关系。 4.3 LAM环境重链接模块RTE-Relinker
MPI进程在运行之初(被BI.(:R恢复时),是普通linux 进程。只有同LAM环境链接之后才进化为MPI进程。对进 程迁移而言,检查点文件中所记录的链接信息已无意义。 RTE-Relinker根据新节点的位置信息,协助迁移进程与 LAM环境的重链接。 4.4消息通道重建模块CC-Rebuilder
Keywards MPI,High availability,Checkpoint,Rollback,Process migration
1 引言
MPI是并行程序设计的工业标准,因良好的可移植性被 广泛应用于集群计算中。MPI任务中的进程与计算节点的 映射关系是固定的,随着集群规模不断增加,进程崩溃、异常 关机、节点硬件故障以及电磁干扰引起的节点间歇故障等,将 造成系统可用度成指数下降。当某一个进程失效时,整个任 务将面临崩溃。大型工程计算任务执行时间长,一旦发生上 述事件,整个任务将重新执行,导致计算资源与时间的浪费。 所以要求MPI具备容错能力来保证系统在故障期间仍能为 用户提供正确的、不间断的服务[1]。
程的新一gps结构广播给其它MPI进程,并对各进程的一gps 队列进行更新,如gps—node成员更新为新节点的节点号。随
后各进程将各自全新的一gps结构发送给mpirun进程,由
mpirun组成全新一gps队列回送给各脚I进程,这样全体
MPI进程的一gps结构队列都得到了更新。
struct_gps{
Abstract Hi【gh availability plays more and more important role in paralleled computing.This paper developed a new computing platfoFnl named LAM/Migration,which introduced process migration ability into LAM/MPI_By migrating whole MPI application among cluster nodes freely,the process migration function is intelligentized and transparent for application.LAM/Migration can implement node fault tolerance and load balance of cluster and improve the availability of cluster effectively.
检查点与卷回恢复技术(Checkpoint and Rollback Reco- very)是分布式计算常用的容错方法。MPI应用检查点记录 任务正常运行过程中的一致性状态,并存到可靠存储介质上。 当系统发生故障后,根据检查点将任务卷回到故障前的一致 状态继续执行,避免整个任务的重新执行。该方法可以解决 操作系统崩溃、应用程序出错等软件方面的问题,缺点是 MPI进程只能在原节点上卷回,如果原节点因硬件故障不可 再使用时,该进程就被丢失,整个任务也将崩溃。因此,为了 对节点的硬件故障进行容错。必须将故障节点上的MPI进程 迁移到其它正常节点上运行,这是LAM/Migration所解决的 主要问题。
第36卷第4期
圣QQ!生4旦
计算机科学
鱼里巳坚!曼!坠i兰坠堡
Vo.1.36.№4
垒P!:2QQ竺.
基于消息传递并行进程迁移技术的研究与实现
刘天田杨升春欧中红袁由光 (武汉数字工程研究所武汉430074)
摘要高可用在并行计算环境中的地位日益突出。实现LAM/Migration扩展了LAM/MPI的进程迁移功能,可实
MPI进程消息通道的重建需要一gps结构的支持,该结构 包含描述MPI进程的地址信息,具体成员如图3所示。每个
MPI进程都保存一个一gps队列,通过该队列可同任意MPI 进程建立消息通道进行消息传递。进程迁移使进程的地址信
息发生改变,检查点文件中保存的一gps信息已不可使用。 CC-Rebuilder迁移进程完成LAM环境重链接之后,将该进
·167·
信息传送给MPI进程,实现路由更新。 图4展示了较极端的迁移情况。MPI任务由mpirun进
相关文档
最新文档