CN103838551A - 并行计算机及其控制方法 - Google Patents
并行计算机及其控制方法 Download PDFInfo
- Publication number
- CN103838551A CN103838551A CN201310606714.2A CN201310606714A CN103838551A CN 103838551 A CN103838551 A CN 103838551A CN 201310606714 A CN201310606714 A CN 201310606714A CN 103838551 A CN103838551 A CN 103838551A
- Authority
- CN
- China
- Prior art keywords
- obstacle
- synchronous
- node
- computing node
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/522—Barrier synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Debugging And Monitoring (AREA)
Abstract
公开了一种并行计算机及其控制方法。该并行计算机包括多个节点,并且当检测到在多个节点的每个中停止了用于作业的程序的执行时,多个节点中的一个节点从多个节点中的每个收集与障碍同步的进展状态有关的信息。而且,并行计算机中的多个节点中的一个节点基于在该一个节点中用于作业的程序的停止位置和从多个节点中的每个所收集的信息来确定在该一个节点中用于作业的程序的重新启动位置。
Description
相关申请的交叉引用
本申请基于2012年11月27日提交的在先日本专利申请第2012-258186号,并且要求该在先日本专利申请的优先权的权益,该在先日本专利申请的全部内容通过引用并入于此。
技术领域
本发明涉及一种用于控制并行计算机的技术。
背景技术
已知障碍同步(barrier synchronization)是一种用于对由并行计算机中的多个计算节点所执行的处理进行同步的方法。在此,计算节点是并行计算机中执行计算处理的部分,并且计算节点包括作为处理器的中央处理器单元(CPU)或作为处理单元的处理器内核。通过由每个计算节点在用于作业(job)的程序中的预定位置处调用障碍函数(function)而使得障碍同步变为可能。例如,在使用消息传递接口(MPI)库的情况下,可以通过在用于作业的程序中调用MPI_Barrier函数来实现障碍同步。在并行计算机中的所有计算节点都确认完成障碍同步之前,计算节点中的每个不能使得用于作业的程序的执行前进。
已知以下用于在并行计算机中执行用于作业的程序的技术。更具体地,在并行计算机中,基于对于共享存储器的访问历史来执行用于程序的再次执行的同步。在那之后,采用基于记录信息所再现的共享存储器和处理器状态信息、从检查点起再次执行程序。
然而,未建立如下技术:在该技术中,在正执行障碍同步的并行计算机中,临时地停止作业,然后稍后重新启动该作业。当在障碍同步的执行期间停止作业时,存在如下可能性:作业重新启动之后将不会适当地执行障碍同步,因此将停止作业的前进。因此,当在障碍同步的执行期间存在来自用户的停止作业的指令时,存在如下问题:不可以立即停止作业,并且停止作业将被搁置直至障碍同步完成。
发明内容
与本发明有关的一种控制方法是由并行计算机中所包括的多个节点之中的第一节点所执行的。然后,该控制方法包括:(A)当检测到在多个节点中的每个中停止了用于作业的程序的执行时,从多个节点中的每个收集与障碍同步的进展状态有关的信息;以及(B)基于在第一节点中用于作业的程序的停止位置和从多个节点中的每个所收集的信息,对在第一节点中用于作业的程序的重新启动位置进行第一确定。
将借助于在权利要求中具体地指出的要素和组合来实现并且获得实施例的目的和优点。
将理解,如所要求保护的,前述的一般描述和下面的详细描述两者均是示例性的和说明性的,并且不是对实施例的限制。
附图说明
图1是描述障碍同步的进展的示例的图;
图2是描述在本实施例中的系统的概要的图;
图3是说明在计算节点中所执行的程序的图;
图4是描述用于确定用于作业的程序的重新启动位置的处理的处理流程的图;
图5是描述在数据存储单元中所存储的数据的示例的图;
图6是描述在数据存储单元中所存储的数据的示例的图;
图7是说明在MPI_Barrier函数中所调用的函数的图;
图8是说明重新启动位置的确定的图;
图9是描述用于确定用于作业的程序的重新启动位置的处理的处理流程的图;
图10是说明重新启动的确定的图;
图11是说明用于作业的程序的停止位置与重新启动位置之间的关系的图;
图12是说明用于作业的程序的停止位置与重新启动位置之间的关系的图;
图13是说明用于作业的程序的停止位置与重新启动位置之间的关系的图;
图14是说明用于作业的程序的停止位置与重新启动位置之间的关系的图;
图15是说明用于作业的程序的停止位置与重新启动位置之间的关系的图;以及
图16是说明用于作业的程序的停止位置与重新启动位置之间的关系的图。
具体实施方式
在并行计算机的通信中,存在点对点数据通信(在此,其包括集合通信(collective communication))和当执行障碍同步时所使用的一对多通信。在点对点数据通信中,诸如MPI库的通信库可以确认另一方是否接收到所传送的数据。因此,通过在确认另一方接收到数据执行后执行停止作业的处理并且将该停止位置设置为重新启动位置,在重新启动作业后执行通信而不会发生问题。另一方面,当在一对多通信中执行障碍同步时,通信库能够确认障碍同步的起始和终止,然而,通信库不能确认障碍同步已经进展了多少(换言之,进行中的障碍同步的处理)。
为了更详细地说明这点,图1示出了障碍同步的进展的示例。图1中的示例是在用于障碍同步的特定网络(在下文中,称为“障碍网络”)中六个计算节点使得障碍同步继续的示例。在此,计算节点是并行计算机的执行计算处理的部分,并且计算节点包括作为处理器的CPU或作为处理单元的处理器内核。每个计算节点具有包括硬件和固件的障碍接口。障碍接口具有用于接收、传送以及等待同步数据的多种机制。在此,该机制被称为“门(gate)”。存在作为起始点的门、作为终止点的门以及作为中继点的门。每个门等待接收来自其自身计算节点的门的同步数据(图1中的实线箭头)和等待接收来自另外的计算节点的门的同步数据(图1中的虚线箭头),并且在确认接收同步数据之后,每个门将该同步数据传送到下一个门。在每个计算节点处,起始门(即,门1)传送同步数据,中继门(即,门2和门3)对同步数据进行中继,以及终止门(即,门1,其与起始门为同一门)确认是否完成障碍同步。对于每个门,通信库设置与将作为接收方和传送方的门有关的信息(例如,计算节点编号和门编号)。通信库能够确认在起始门和终止门处的障碍同步的状态,然而通信库不能确认在中继门(例如,图1中的门2和门3)处的障碍同步的状态。
在此,将考虑存在来自用户的停止作业的指令的情况。当存在停止作业的指令并且计算节点1至计算节点6已经完成了来自门1的同步数据的传送时,在计算节点1至计算节点6处的障碍同步完成。然而,当存在尚未结束传送同步数据的计算节点时,中继门中的一个等待接收来自该尚未结束传送同步数据的计算节点的同步数据,并且同步数据未到达终止门。此时,通信库不能确认在各个通信节点的中继门处的障碍同步的状态。因此,不能知道在哪个中继门处停止了障碍同步。因此,通信库不知道从哪个位置起重新启动作业的程序以便适当地执行障碍同步。
因此,下面将针对在障碍同步的执行期间临时地停止作业并且稍后重新启动作业的情况,说明用于确定用于作业的程序的重新启动位置以使得在重新启动作业之后将适当地执行障碍同步的方法。
图2示出了本实施例中的系统。本实施例中的系统包括计算节点1至计算节点N(N是等于或大于2的自然数)。图2所示的系统是不共享存储器的单程序多数据(SPMD)并行计算机,并且图2所示的系统在采用障碍同步对计算节点进行同步的同时并行地执行作业。然而,该系统不限于SPMD并行计算机。
计算节点1至计算节点N中的每个具有主板N0,在主板N0上安装有CPU N1和存储器N2。作为诸如局域网(LAN)卡的扩展卡的网络接口(在图2中简写为NI)N4和障碍接口(在图2中简写为BI)N3连接到主板N0。
网络接口N4中的每个连接到网络交换机200,该网络交换机200例如为二层交换机。每个计算节点通过借助于网络接口N4接收和传送数据而与其他计算节点执行点对点通信。网络交换机200在计算节点的网络接口之间对通信数据进行中继。
障碍接口N3中的每个借助于障碍网络100与其他障碍接口连接。计算节点1至计算节点N属于同一障碍分组,并且如图1所示,通过由每个计算节点接收和传送同步数据而继续障碍同步。用于执行障碍同步的通信是一对多通信,并且该通信是与借助于网络接口N4执行的通信独立地执行的。
将使用图3说明在计算节点1至计算节点N处所执行的程序。在此,作为示例将说明计算节点1,然而,计算节点2至计算节点N也是如此。在计算节点1中,由CPU11执行:包括收集单元102和确定单元103的同步管理器101、作业管理器105、资源管理器106、作业执行单元107以及通信处理单元108。在存储器12中确保了用于数据存储单元104的区域。
收集单元102从其他计算节点收集关于障碍同步的进展状态的信息,并且将所收集的信息存储在数据存储单元104中。确定单元103使用在数据存储单元104中所存储的数据执行用于确定用于作业的程序的重新启动位置的处理。作业管理器105接收来自从用户的停止用于作业的程序的执行的停止指令,并且将转出(swap-out)请求输出到资源管理器106。作业管理器105还控制作业执行单元107。当资源管理器106接收到转出请求时,资源管理器106激活同步管理器101。资源管理器106执行用于释放障碍接口13、网络接口14等中的资源的处理。通信处理单元108是诸如MPI库的通信库,并且通信处理单元108执行与通信有关的处理。
接下来,将使用图4至图16说明图2所示系统的操作。在此,将说明如下示例:在该示例中,用户向计算节点1给出停止用于作业(在下面,其将被称为“第一作业”)的程序的指令,并且用户执行用于具有高于第一作业的优先级的作业(在下面,其将被称为“第二作业”)的程序。
在接收到停止用于第一作业的程序的执行的停止指令之后,作业管理器105请求作业执行单元107停止第一作业。响应于此请求,作业执行单元107停止处理。作业管理器105然后将表示用于第一作业的程序停止的停止位置的信息存储在存储器12中。
作业管理器105将第一作业的转出请求输出到资源管理器106。资源管理器106将转出请求传送到作为剩余计算节点的计算节点2至计算节点N。在计算节点1至计算节点N中的每个中的资源管理器106调用同步管理器101作为用于执行本实施例中的处理的线程。
当计算节点1正在执行与另外的计算节点的通信时,同步管理器101使得通信处理单元108停止通信。例如,通信处理单元108停止通过网络接口14的通信数据的传送,并且停止用于执行障碍同步的同步数据的传送。另外,同步管理器101将在网络接口14的存储器中所存储的要保存的信息保存(换言之,转出)在诸如硬盘的存储装置中。在执行了前述的处理之后,同步管理器101将命令输出到通信处理单元108以启用计算节点之间的通信。结果,可以使用网络接口14的资源用于通信。
如将在以下所描述的,障碍接口13的资源与网络接口14的资源是独立的,可以使用网络接口14的资源以便确认障碍同步的进展状态。
同步管理器101然后执行在用于第一作业的程序中设置重新启动位置的处理。将使用图4至图16说明此处理。
首先,同步管理器101中的收集单元102通过借助于网络接口14执行通信来从计算节点2至计算节点N收集与障碍同步的进展状态有关的信息(图4:步骤S1)。更具体地,收集单元102收集在计算节点2至计算节点N的预定存储器区域中所存储的、与障碍同步的进展状态有关的信息。收集单元102从诸如障碍接口13中的存储器的存储装置获取与针对其自身计算节点(在此为计算节点1)的障碍同步的进展状态有关的信息。
与障碍同步的进展状态有关的信息包括表示是否已经传送了用于执行障碍同步的同步数据的信息和表示障碍同步的完成状态的序列号码。表示是否已经传送了同步数据的信息是“R(1)”或“B(0)”。R(1)表示尚未传送同步数据,以及B(0)表示已经传送了同步数据并且处于等待障碍同步完成的状态。每当完成障碍同步时,表示障碍同步的完成状态的序列号码递增“1”。初始值为“0”。通过障碍接口中的固件等对这些种类的信息进行更新。
收集单元102将在步骤S1处所收集的、与障碍同步的进展状态有关的信息存储在数据存储单元104中。图5示出了在数据存储单元104中所存储的数据的示例。在图5的示例中,在存在四个计算节点的情况下,对于每个计算节点,存储表示是否已经传送了同步数据的信息和表示障碍同步的完成状态的序列号码。此外,基于所存储的信息,收集单元102执行收敛测试,并且将收敛测试的结果存储在数据存储单元104中。收敛测试是确定状态是否已经达到障碍同步将不再继续的状态(换言之,障碍同步是否已经收敛)的测试。在“OR:1”并且“MAX-MIN:0”的情况下,确定障碍同步已经收敛。当计算节点中的任一个表示R(1)时,设置“OR:1”,并且当所有计算节点都表示B(0)时,指定“OR:0”。“MAX-MIN”是序列号码的最大值与最小值之间的差。在图5的示例中,数据表示“OR:0”和“MAX-MIN:0”,所以确定障碍同步尚未收敛。
例如,当诸如图6所示的数据存储在数据存储单元104中时,确定障碍同步已经收敛。在图6的示例中,所有计算节点中的传送状态都表示R(1),所以尚未传送用于第二障碍同步的同步数据。此外,对于所有计算节点序列号码为“1”,所以完成了第一障碍同步。
在首先执行了在步骤S1处的处理之后,收集单元102例如周期性地收集与障碍同步的进展状态有关的信息,并且对数据存储单元104进行更新,直至障碍同步收敛。
返回到图4中的说明,确定单元103从存储器12中标识出计算节点1中用于第一作业的程序的停止位置(步骤S3)。
将使用图7说明从MPI_Barrier函数内部调用的并且包括在比MPI低层级的通信库中的函数。在本实施例中,障碍同步的设置函数、同步数据的传送函数、以及障碍同步的完成确认函数是从MPI_Barrier函数内部调用的。在图7中,程序继续向右进行,其中,第一MPI_Barrier函数调用障碍同步的设置函数、同步数据的传送函数、以及障碍同步的完成确认函数,并且第二MPI_Barrier函数调用同步数据的传送函数。第二MPI_Barrier函数未调用障碍同步的设置函数,这是因为障碍同步的设置与第一MPI_Barrier函数中相同并且不需要调用障碍同步的设置函数。
在本实施例中,考虑在调用MPI_Barrier函数的同时执行障碍同步。当用于作业的程序的停止位置在MPI_Barrier函数内部时,在步骤S3处具体地标识用于作业的程序停止的位置(例如,a1、(1)、a2、(2)、a3等)。
返回到图4的说明,确定单元103确定用于第一作业的程序的停止位置是否表示计算节点1已经完成了传送同步数据(步骤S5)。在图7的示例中,当停止位置在(1)之后时,结束同步数据的传送。当用于第一作业的程序的停止位置是a2时,当传送函数正在进行中时不可以终止同步数据的传送函数,所以认为同步数据的传送结束。
当同步数据的传送未结束(步骤S5:“否”的路线)时,确定单元103参考数据存储单元104中的收敛测试的字段以确定障碍同步是否已经收敛(步骤S7)。在步骤S7处,当在收敛测试的字段中设置了圆形标记时,确定单元103确定障碍同步已经收敛,并且当在收敛测试的字段中设置了“X”时,确定单元103确定障碍同步尚未收敛。
当障碍同步尚未收敛(步骤S7:“否”的路线)时,确定单元103重试确定,直至可以通过由收集单元102对数据存储单元104进行更新而确定障碍同步已经收敛。
当障碍同步已经收敛(步骤S7:“是”的路线)时,为了发送同步数据,确定单元103将同步数据传送之前的位置设置为重新启动位置(步骤S9)。确定单元103将表示重新启动位置的信息存储在存储器12中。处理然后经由端点A移动到图9并且终止。在同步数据的传送之前的位置是例如图7中的(1)。
另一方面,当同步数据的传送已经完成(步骤S5:“是”的路线)时,确定单元103确定用于第一作业的程序的停止位置是否表示计算节点1已经结束了障碍同步完成的确认(步骤S11)。在图7的示例的情况下,当停止位置在(2)之后时,结束障碍同步完成的确认。当用于第一作业的程序的停止位置是a3时,当确认函数正在进行中时不可以终止障碍同步的完成确认函数。因此,认为已经确认完成了障碍同步。
当确认障碍同步未完成(步骤S11:“否”的路线)时,确定单元103参考数据存储单元104中的收敛测试的字段,并且确定障碍同步是否已经收敛(步骤S13)。在步骤S13处,当在收敛测试的字段中设置了圆形标记时,确定单元103确定障碍同步已经收敛,并且当在收敛测试的字段中设置了“X”时,确定单元103确定障碍同步尚未收敛。
当障碍同步尚未收敛(步骤S13:“否”的路线)时,确定单元103重试确定,直至可以通过由收集单元102对数据存储单元104进行更新而确定障碍同步已经收敛。
当障碍同步已经收敛(步骤S13:“是”的路线)时,确定单元103确定障碍同步是否完成(步骤S15)。在步骤S15处,确定单元103通过参考表示是否已经传送了同步数据的并且存储在数据存储单元104中的信息来执行用于其自身计算节点(在此为计算节点1)的确定。在步骤S5处确定已经传送了同步数据,所以当数据为R(1)时,可以认为完成了障碍同步,并且当数据是B(0)时,可以认为其处于等待障碍同步完成的状态(换言之,障碍同步未完成)。
当完成了障碍同步(步骤S15:“是”的路线)时,为了确认障碍同步的完成,确定单元103将障碍同步完成的确认之前的位置设置为重新启动位置(步骤S17)。确定单元103将表示重新启动位置的信息存储在存储器12中。处理然后经由端点A移动到图9并且终止。在障碍同步完成的确认之前的位置是图7的示例中的(2)。
另一方面,当障碍同步未完成(步骤S15:“否”的路线)时,为了重新发送同步数据,确定单元103将在同步数据的传送之前的位置设置为重新启动位置(步骤S19)。确定单元103将表示重新启动位置的信息存储在存储器12中。处理然后经由端点A移动到图9并且终止。在同步数据的传送之前的位置是图7的示例中的(1)。
图8示出了通过在步骤S19处的处理设置重新启动位置的情况的示例。在图8中,轴是时间轴,并且障碍同步随时间继续。计算节点1至计算节点3确认在传送了同步数据之后完成了障碍同步,然而计算节点4尚未传送同步数据(因此,以虚线绘出表示由计算节点4进行的同步数据的传送的块)。因此,在计算节点1至计算节点4中,未完成障碍同步,所以对于计算节点1至计算节点4,通过在步骤S19处的处理将同步数据的传送之前的位置设置为重新启动位置。
返回到图4的说明,当已经确认了障碍同步的完成(步骤S11:“是”的路线)时,处理经由端点B移动到图9中的步骤S21。
移动到图9的说明,确定单元103参考在数据存储单元104中的收敛测试的字段,并且确定障碍同步是否已经收敛(步骤S21)。在步骤S21处,当在收敛测试的字段中设置了圆形标记时,确定单元103确定障碍同步已经收敛,并且当在收敛测试的字段中设置了“X”时,确定单元103确定障碍同步尚未收敛。
当障碍同步尚未收敛(步骤S21:“否”的路线)时,确定单元103重试确定,直至可以通过由收集单元102对数据存储单元104进行更新而确定障碍同步已经收敛。
当障碍同步已经收敛(步骤S21:“是”的路线)时,确定单元103确定用于第一作业的程序的停止位置是否表示计算节点1已经结束了传送用于下一个障碍同步的同步数据(步骤S23)。在图7的示例中,当用于第一作业的程序的停止位置在a4之后时,已经传送了用于下一个障碍同步的同步数据。当用于第一作业的程序的停止位置是a4时,当传送函数在进行中时不可以终止同步数据的传送函数,所以认为用于下一个障碍同步的同步数据的传送结束。
当已经传送了用于下一个障碍同步的同步数据(步骤S23:“是”的路线)时,确定单元103将用于下一个障碍同步的同步数据的传送之前的位置设置为重新启动位置(步骤S27)。确定单元103将表示重新启动位置的信息存储在存储器12中。处理然后终止。在用于下一个障碍同步的同步数据的传送之前的位置是图7的示例中的(3)。
另一方面,当尚未传送用于下一个障碍同步的同步数据(步骤S23:“否”的路线)时,确定单元103将在结束障碍同步完成的确认之后的位置设置为重新启动位置(步骤S25)。确定单元103将表示重新启动位置的信息存储在存储器12中。然后处理终止。在结束障碍同步完成的确认之后的位置是图7的示例中的(3)。
图10示出了当通过在步骤S25处的处理设置重新启动位置时的示例。图10中的轴是时间轴,并且障碍同步随时间继续。计算节点1至计算节点4确认在已经传送了同步数据之后完成了障碍同步。因此,即使当用于作业的程序的停止位置被设置为重新启动位置时,也能适当地执行下一个障碍同步。
将使用图11至图16说明用于作业的程序的停止位置与重新启动位置之间的关系。图11至图16表示如下情况的示例:在该情况中,存在十二个计算节点,并且对于每个计算节点,存在停止位置、与紧接在停止之后的障碍同步的进展状态有关的信息、与收敛之后的障碍同步的进展状态有关的信息、以及重新启动位置。此外,图11至图16示出了紧接在停止之后和收敛之后的收敛测试的结果。停止位置和重新启动位置如在图7的示例中一样。
在图11的示例中,用于所有计算节点的停止位置是(1),并且尚未传送同步数据。因此,即使当停止位置被设置为重新启动位置时,所有节点都在重新启动之后传送同步数据,所以适当地执行了障碍同步。在这种情况下,通过在步骤S9处的处理设置用于计算节点1至计算节点12的重新启动位置。
在图12的示例中,因为用于所有计算节点的停止位置是a2,所以在收敛之后在计算节点中的任一个处都未完成障碍同步。因此,通过将停止位置如原样地设置为重新启动位置,在重新启动之后对于所有节点确认障碍同步完成,所以在所有节点处完成障碍同步。在这种情况下,通过在步骤S17处的处理设置用于计算节点1至计算节点12的重新启动位置。
在图13的示例中,用于计算节点1至计算节点8的停止位置是a2,并且用于计算节点9至计算节点12的停止位置是(1)。换言之,存在结束了同步数据的传送的计算节点和未结束传送的计算节点,所以当停止位置被设置为重新启动位置时,在计算节点中的任一个处都未完成障碍同步。因此,(1)被设置为用于所有计算节点的重新启动位置,并且即使对于结束了同步数据的传送的计算节点1至计算节点8,也再次执行同步数据的传送。在这种情况下,针对计算节点1至计算节点8在步骤S19处设置重新启动位置,并且针对计算节点9至计算节点12通过在步骤S9处的处理设置重新启动位置。
在图14的示例中,用于计算节点1至计算节点4的停止位置是a2,用于计算节点5和计算节点6的停止位置是(2),用于计算节点7和计算节点8的停止位置是a3,以及用于计算节点9至计算节点12的停止位置是(3)。因此,对于计算节点1至计算节点6结束了同步数据的传送,所以通过在作为障碍同步的完成确认之前的位置的(2)处重新启动,完成障碍同步。此外,计算节点7至计算节点12结束了障碍同步的完成确认,所以从作为在障碍同步的完成之后的位置的(3)起执行重新启动。在这样的情况下,通过在步骤S17处的处理设置用于计算节点1至计算节点6的重新启动位置,并且通过在步骤S25处的处理设置用于计算节点7至计算节点12的重新启动位置。
在图15的示例中,用于计算节点1至计算节点4的停止位置是a2,用于计算节点5和计算节点6的停止位置是(2),用于计算节点7和计算节点8的停止位置是a3,用于计算节点9和计算节点10的停止位置是(3),以及用于计算节点11和计算节点12的停止位置是a4。因此,因为计算节点1至计算节点6已经传送了同步数据,所以通过从作为在障碍同步的完成确认之前的位置的(2)起重新启动而完成障碍同步。此外,因为计算节点7至计算节点10已经确认完成了障碍同步,所以从作为在障碍同步的完成确认之后的位置的(3)起执行重新启动。对于计算节点11和计算节点12,因为计算节点1至计算节点10尚未传送用于下一个障碍同步的同步数据并且未完成下一个障碍同步,所以重新启动位置是作为在下一个同步数据的传送之前的位置的(3)。在这样的情况下,通过在步骤S17处的处理设置用于计算节点1至计算节点6的重新启动位置,通过在步骤S25处的处理设置用于计算节点7至计算节点10的重新启动位置,以及通过在步骤S27处的处理设置用于计算节点11至计算节点12的重新启动位置。
在图16的示例中,用于计算节点1至计算节点4的停止位置是a2,用于计算节点5和计算节点6的停止位置是(2),用于计算节点7和计算节点8的停止位置是a3,以及用于计算节点9至计算节点12的停止位置是a4。因此,因为计算节点1至计算节点6已经传送了同步数据,所以通过从作为在障碍同步的完成确认之前的位置的(2)起重新启动而完成障碍同步。此外,因为计算节点7和计算节点8已经确认了障碍同步的完成,所以从作为在障碍同步的完成确认之后的位置的(3)起执行重新启动。此外,因为计算节点1至计算节点8尚未传送用于下一个障碍同步的同步数据并且未完成下一个障碍同步,所以对于节点9至计算节点12将作为在传送下一个同步数据之前的位置的(3)设置为重新启动位置。在这样的情况下,通过在步骤S17处的处理设置用于计算节点1至计算节点6的重新启动位置,通过在步骤S25处的处理设置用于计算节点7和计算节点8的重新启动位置,以及通过在步骤S27处的处理设置用于计算节点9至计算节点12的重新启动位置。
通过执行诸如以上所述的处理,可以重新启动用于作业的程序的执行,以使得即使在障碍同步的执行期间停止作业也能适当地执行障碍同步。
在已经执行了如上所述的处理之后,同步管理器101将当再次执行用于第一作业的程序时所使用的并且存储在障碍接口13中的诸如存储器的存储装置中的信息保存在诸如硬盘的存储装置中。在此,资源管理器106释放障碍接口13和网络接口14中的诸如存储器和其他硬件的资源。
然后,通过作业管理器105激活用于第二作业的程序,在计算节点1中执行第二作业。当完成第二作业的执行时,同步管理器101将为了再次执行第一作业所保存的信息返回到原始状态(换言之,转入(swap-in)信息)。作业管理器105然后从存储器12中标识出表示重新启动位置的信息。作业管理器105还激活用于第一作业的程序,并且从所确定的重新启动位置起在计算节点1中再次执行第一作业。同样在计算节点2至计算节点N中,与计算节点1的情况相同,在停止第一作业之后执行第二作业,然后在完成第二作业的执行之后,重新启动第一作业的执行。
尽管说明了本发明的实施例,但是本发明不限于实施例。例如,前述的计算节点1至计算节点N的功能框图可以不总是对应于程序模块配置。
此外,前述的每个表格的结构仅为示例,并且可以改变。此外,对于处理流程,只要处理结果不改变,则可以改变步骤的次序。此外,可以并行地执行多个步骤。
此外,在前述的示例中,说明了使用障碍接口作为用于执行障碍同步的机制的示例。然而,在没有障碍接口的情况下,可以在网络交换机中以固件提供类似的功能。
本发明的前述实施例可以如下概括:
由在并行计算机中所包括的多个节点(CPU或CPU内核)之中的第一节点执行与本实施例有关的控制方法。然后,该控制方法包括:(A)当检测到在多个节点中的每个中停止用于作业的程序的执行时,从多个节点中的每个收集与障碍同步的进展状态有关的信息;以及(B)基于在第一节点中用于作业的程序的停止位置和从多个节点中的每个所收集的信息,对在第一节点中用于作业的程序的重新启动位置进行第一确定。
采用此配置,即使在障碍同步的执行期间停止作业时,也可以重新启动用于作业的程序的执行以便适当地执行障碍同步。
此外,前述的第一确定可以包括:(b1)基于从多个节点中的每个所收集的信息,对并行计算机的状态是否达到障碍同步不再前进的状态进行第二确定;以及(b2)当确定并行计算机的状态达到障碍同步不再前进的状态时,对用于作业的程序的重新启动位置进行第三确定。
紧接在用于作业的程序的停止之后,障碍同步可以通过在用于作业的程序的停止之前所传送的同步数据而前进。因此,通过执行前述的处理,可以防止确定不适当的重新启动位置。
此外,第二确定可以包括:(b1-1)确定多个节点中的至少一个是否尚未结束传送用于障碍同步的同步数据,并且确定在多个节点中的每个中已经完成了障碍同步还是在多个节点的任一个中尚未完成障碍同步。当确定满足了前述的条件时,确定并行计算机的状态达到障碍同步不再前进的状态,换言之,认为障碍同步的进展状态不再改变。
此外,前述的第一确定可以包括:当检测到第一节点已经结束了传送用于障碍同步的同步数据并且第一节点等待接收来自除了第一节点之外的节点的同步数据时,将在传送同步数据的位置之前的位置设置为重新启动位置。在这样的情况下,因为除了第一节点之外的节点未传送同步数据,所以未完成障碍同步。然后,通过在传送同步数据的位置处重新启动用于作业的程序的执行,可以适当地执行障碍同步。
另外,第一确定可以包括:当检测到在第一节点中已经完成了障碍同步并且第一节点已经结束了传送用于下一个障碍同步的同步数据时,将在传送用于下一个障碍同步的同步数据的位置之前的位置设置为重新启动位置。在这样的情况下,可能存在尚未传送用于下一个障碍同步的同步数据的节点。因此,可能未完成下一个障碍同步。然后,通过在传送用于下一个障碍同步的同步数据之前的位置处重新启动用于作业的程序的执行,适当地传送下一个障碍同步。
顺便提及,可以建立使得计算机执行前述处理的程序,并且这样的程序存储在计算机可读的存储介质或存储装置中,诸如软盘、CD-ROM、DVD-ROM、磁光盘、半导体存储器、以及硬盘。另外,中间处理结果临时地存储在存储装置中,诸如主存储器等。
在此所阐述的所有示例和条件性语言是出于辅助读者理解由发明人为推进现有技术所贡献的本发明和概念的教学目的,并且应当被理解为不是对这样具体地阐述的示例和条件的限制,在说明书中的这样的示例的组合也不涉及示出本发明的优势和劣势。尽管已经详细地描述了本发明的实施例,但是应当理解可以进行各种改变、置换以及替换,而不背离本发明的精神和范围。
Claims (8)
1.一种由并行计算机中所包括的多个节点中的第一节点执行的控制方法,所述控制方法包括:
当检测到在所述多个节点中的每个中停止了用于作业的程序的执行时,从所述多个节点中的每个收集与障碍同步的进展状态有关的信息;以及
基于在所述第一节点中用于所述作业的所述程序的停止位置和从所述多个节点中的每个所收集的所述信息,对在所述第一节点中用于所述作业的所述程序的重新启动位置进行第一确定。
2.根据权利要求1所述的控制方法,其中,所述第一确定包括:
基于从所述多个节点中的每个所收集的所述信息,对所述并行计算机的状态是否达到所述障碍同步不再前进的状态进行第二确定;以及
当确定所述并行计算机的所述状态达到所述障碍同步不再前进的所述状态时,对所述程序的所述重新启动位置进行第三确定。
3.根据权利要求2所述的控制方法,其中,所述第二确定包括:
确定所述多个节点中的至少一个是否尚未结束传送用于所述障碍同步的同步数据,并且确定在所述多个节点中的每个中已经完成了所述障碍同步还是在所述多个节点的任一个中尚未完成所述障碍同步。
4.根据权利要求1所述的控制方法,其中,所述第一确定包括:
当检测到所述第一节点已经结束了传送用于所述障碍同步的同步数据并且所述第一节点等待接收来自除了所述第一节点之外的节点的所述同步数据时,将在传送所述同步数据的位置之前的位置设置为重新启动位置。
5.根据权利要求1所述的控制方法,其中,所述第一确定包括:
当检测到在所述第一节点中已经完成了所述障碍同步并且所述第一节点已经结束了传送用于下一个障碍同步的同步数据时,将在传送用于所述下一个障碍同步的所述同步数据的位置之前的位置设置为重新启动位置。
6.根据权利要求1所述的控制方法,其中,所述多个节点中的每个包括用于执行计算处理的处理器或处理单元。
7.一种控制方法,包括:
当检测到在多个节点中的每个中停止了用于作业的程序的执行时,通过使用所述多个节点之中的一个节点从所述多个节点中的每个收集与障碍同步的进展状态有关的信息;以及
通过使用所述一个节点基于在所述一个节点中用于所述作业的所述程序的停止位置和从所述多个节点中的每个所收集的所述信息,对在所述一个节点中用于所述作业的所述程序的重新启动位置进行第一确定。
8.一种并行计算机,包括:
多个节点,并且
其中,当检测到在所述多个节点中的每个中停止了用于作业的程序的执行时,所述多个节点中的一个节点从所述多个节点中的每个收集与障碍同步的进展状态有关的信息,以及
所述一个节点基于在所述一个节点中用于所述作业的所述程序的停止位置和从所述多个节点中的每个所收集的所述信息,确定在所述一个节点中用于所述作业的所述程序的重新启动位置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012258186A JP5994601B2 (ja) | 2012-11-27 | 2012-11-27 | 並列計算機、並列計算機の制御プログラム及び並列計算機の制御方法 |
JP2012-258186 | 2012-11-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103838551A true CN103838551A (zh) | 2014-06-04 |
CN103838551B CN103838551B (zh) | 2017-04-12 |
Family
ID=49263156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310606714.2A Expired - Fee Related CN103838551B (zh) | 2012-11-27 | 2013-11-25 | 并行计算机及其控制方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20140149994A1 (zh) |
EP (1) | EP2735968A3 (zh) |
JP (1) | JP5994601B2 (zh) |
CN (1) | CN103838551B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6369286B2 (ja) * | 2014-10-23 | 2018-08-08 | 富士通株式会社 | プロセス間通信プログラム、解放要求方法、および並列演算装置 |
US9348658B1 (en) * | 2014-12-12 | 2016-05-24 | Intel Corporation | Technologies for efficient synchronization barriers with work stealing support |
JP7159696B2 (ja) * | 2018-08-28 | 2022-10-25 | 富士通株式会社 | 情報処理装置,並列計算機システムおよび制御方法 |
JP2021043737A (ja) * | 2019-09-11 | 2021-03-18 | 富士通株式会社 | バリア同期システム、バリア同期方法及び並列情報処理装置 |
JP7338354B2 (ja) * | 2019-09-20 | 2023-09-05 | 富士通株式会社 | 情報処理装置,情報処理システム及び通信管理プログラム |
US11449339B2 (en) * | 2019-09-27 | 2022-09-20 | Red Hat, Inc. | Memory barrier elision for multi-threaded workloads |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101542442A (zh) * | 2007-04-09 | 2009-09-23 | 松下电器产业株式会社 | 多处理器控制装置、其控制方法及集成电路 |
US7925791B2 (en) * | 2006-07-17 | 2011-04-12 | The Math Works, Inc. | Recoverable error detection for concurrent computing programs |
US20110173488A1 (en) * | 2010-01-08 | 2011-07-14 | International Business Machines Corporation | Non-volatile memory for checkpoint storage |
CN102402421A (zh) * | 2010-09-08 | 2012-04-04 | 富士通株式会社 | 归约运算装置、处理器和计算机系统 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5721921A (en) * | 1995-05-25 | 1998-02-24 | Cray Research, Inc. | Barrier and eureka synchronization architecture for multiprocessors |
US6192391B1 (en) * | 1997-05-30 | 2001-02-20 | Nec Corporation | Process stop method and apparatus for a distributed memory multi-processor system |
JP3571976B2 (ja) * | 1999-11-08 | 2004-09-29 | 富士通株式会社 | デバッグ装置及び方法並びにプログラム記録媒体 |
JP4276028B2 (ja) * | 2003-08-25 | 2009-06-10 | 株式会社日立製作所 | マルチプロセッサシステムの同期方法 |
JP4448784B2 (ja) * | 2005-03-15 | 2010-04-14 | 株式会社日立製作所 | 並列計算機の同期方法及びプログラム |
US7516361B2 (en) * | 2005-06-27 | 2009-04-07 | Sun Microsystems, Inc. | Method for automatic checkpoint of system and application software |
US8280944B2 (en) * | 2005-10-20 | 2012-10-02 | The Trustees Of Columbia University In The City Of New York | Methods, media and systems for managing a distributed application running in a plurality of digital processing devices |
GB0613289D0 (en) * | 2006-07-04 | 2006-08-16 | Imagination Tech Ltd | Synchronisation of execution threads on a multi-threaded processor |
US8056087B2 (en) * | 2006-09-25 | 2011-11-08 | International Business Machines Corporation | Effective use of a hardware barrier synchronization register for protocol synchronization |
US7512836B2 (en) * | 2006-12-11 | 2009-03-31 | International Business Machines Corporation | Fast backup of compute nodes in failing midplane by copying to nodes in backup midplane via link chips operating in pass through and normal modes in massively parallel computing system |
US7783920B2 (en) * | 2007-02-20 | 2010-08-24 | International Business Machines Corporation | Recovery routine masking and barriers to support phased recovery development |
US8082424B2 (en) * | 2007-08-01 | 2011-12-20 | International Business Machines Corporation | Determining when a set of compute nodes participating in a barrier operation on a parallel computer are ready to exit the barrier operation |
US20100017655A1 (en) * | 2008-07-16 | 2010-01-21 | International Business Machines Corporation | Error Recovery During Execution Of An Application On A Parallel Computer |
JP5304194B2 (ja) * | 2008-11-19 | 2013-10-02 | 富士通株式会社 | バリア同期装置、バリア同期システム及びバリア同期装置の制御方法 |
US8752048B1 (en) * | 2008-12-15 | 2014-06-10 | Open Invention Network, Llc | Method and system for providing checkpointing to windows application groups |
FR2939922B1 (fr) * | 2008-12-16 | 2011-03-04 | Bull Sas | Gestionnaire physique de barriere de synchronisation entre processus multiples |
US8364844B2 (en) * | 2009-11-13 | 2013-01-29 | International Business Machines Corporation | Deadlock-free class routes for collective communications embedded in a multi-dimensional torus network |
US8516487B2 (en) * | 2010-02-11 | 2013-08-20 | International Business Machines Corporation | Dynamic job relocation in a high performance computing system |
US8250405B2 (en) * | 2010-05-27 | 2012-08-21 | International Business Machines Corporation | Accelerating recovery in MPI environments |
GB2484086A (en) * | 2010-09-28 | 2012-04-04 | Metaswitch Networks Ltd | Reliability and performance modes in a distributed storage system |
JP5549575B2 (ja) * | 2010-12-17 | 2014-07-16 | 富士通株式会社 | 並列計算機システム、同期装置、並列計算機システムの制御方法 |
US20120179896A1 (en) * | 2011-01-10 | 2012-07-12 | International Business Machines Corporation | Method and apparatus for a hierarchical synchronization barrier in a multi-node system |
JP5759203B2 (ja) * | 2011-02-25 | 2015-08-05 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 反復法の並列コンピュータ計算における非同期なチェックポイント取得とそこからの回復 |
US9367306B2 (en) * | 2011-03-30 | 2016-06-14 | Nvidia Corporation | Method for transforming a multithreaded program for general execution |
JP5568048B2 (ja) * | 2011-04-04 | 2014-08-06 | 株式会社日立製作所 | 並列計算機システム、およびプログラム |
JP6036690B2 (ja) * | 2011-07-07 | 2016-11-30 | 日本電気株式会社 | 分散実行システム及び分散プログラム実行方法 |
US8607247B2 (en) * | 2011-11-03 | 2013-12-10 | Advanced Micro Devices, Inc. | Method and system for workitem synchronization |
US9092272B2 (en) * | 2011-12-08 | 2015-07-28 | International Business Machines Corporation | Preparing parallel tasks to use a synchronization register |
US20130247069A1 (en) * | 2012-03-15 | 2013-09-19 | International Business Machines Corporation | Creating A Checkpoint Of A Parallel Application Executing In A Parallel Computer That Supports Computer Hardware Accelerated Barrier Operations |
US9652300B2 (en) * | 2012-06-28 | 2017-05-16 | Intel Corporation | Systems, methods, and computer program products for preemption of threads at a synchronization barrier |
-
2012
- 2012-11-27 JP JP2012258186A patent/JP5994601B2/ja active Active
-
2013
- 2013-09-17 US US14/028,887 patent/US20140149994A1/en not_active Abandoned
- 2013-09-25 EP EP13185931.6A patent/EP2735968A3/en not_active Withdrawn
- 2013-11-25 CN CN201310606714.2A patent/CN103838551B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7925791B2 (en) * | 2006-07-17 | 2011-04-12 | The Math Works, Inc. | Recoverable error detection for concurrent computing programs |
CN101542442A (zh) * | 2007-04-09 | 2009-09-23 | 松下电器产业株式会社 | 多处理器控制装置、其控制方法及集成电路 |
US20110173488A1 (en) * | 2010-01-08 | 2011-07-14 | International Business Machines Corporation | Non-volatile memory for checkpoint storage |
CN102402421A (zh) * | 2010-09-08 | 2012-04-04 | 富士通株式会社 | 归约运算装置、处理器和计算机系统 |
Also Published As
Publication number | Publication date |
---|---|
US20140149994A1 (en) | 2014-05-29 |
EP2735968A3 (en) | 2016-08-17 |
JP2014106660A (ja) | 2014-06-09 |
EP2735968A2 (en) | 2014-05-28 |
CN103838551B (zh) | 2017-04-12 |
JP5994601B2 (ja) | 2016-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103838551A (zh) | 并行计算机及其控制方法 | |
CN103634150B (zh) | 一种冗余的高安全性can总线通信方法 | |
CN103647820B (zh) | 用于分布式集群系统的仲裁方法及仲裁装置 | |
JP6431197B2 (ja) | スナップショット処理方法および関係付けられたデバイス | |
JP4529767B2 (ja) | クラスタ構成コンピュータシステム及びその系リセット方法 | |
CN107005435B (zh) | 一种网络服务描述符上架方法及装置 | |
US9509680B2 (en) | Information processing system, information processing method and communication device | |
CN103678031A (zh) | 二乘二取二冗余系统及方法 | |
CN102420820A (zh) | 一种集群系统中的隔离方法和装置 | |
CN101980171A (zh) | 一种软件系统故障自恢复方法及其使用的软件看门狗系统 | |
CN110784331A (zh) | 一种共识流程恢复方法及相关节点 | |
CN103209418A (zh) | 移动终端及其wifi热点信息更新方法 | |
CN112698978A (zh) | 基于分布式图处理网络的容错方法和设备 | |
JP2011158995A (ja) | コンピュータ装置及びそのbiosアップデート方法 | |
CN104683486B (zh) | 分布式系统中处理同步消息的方法、装置、分布式系统 | |
CN106789506B (zh) | 一种基于光纤总线与1553b总线混合结构的bc切换方法 | |
RU2512111C2 (ru) | Устройство и способ связи | |
Basu | An efficient approach of election algorithm in distributed systems | |
CN103678163A (zh) | 数据流的切换方法、装置及系统 | |
CN105577310B (zh) | 一种时间触发以太网络中任务分区与通信调度的同步方法 | |
CN102291303B (zh) | 一种单板及其确定主备状态的方法 | |
JP5605279B2 (ja) | プロセス間同期方法 | |
WO2011134255A1 (zh) | 业务板倒换的处理方法及机架控制装置 | |
CN100548002C (zh) | 永久虚电路状态查询系统 | |
JP5748122B2 (ja) | プラント制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170412 Termination date: 20181125 |