CN112068942B - 一种基于单节点模拟的大规模并行系统模拟方法 - Google Patents
一种基于单节点模拟的大规模并行系统模拟方法 Download PDFInfo
- Publication number
- CN112068942B CN112068942B CN202010926701.3A CN202010926701A CN112068942B CN 112068942 B CN112068942 B CN 112068942B CN 202010926701 A CN202010926701 A CN 202010926701A CN 112068942 B CN112068942 B CN 112068942B
- Authority
- CN
- China
- Prior art keywords
- simulation
- node
- parallel
- data
- module
- 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.)
- Active
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/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/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提出一种基于单节点模拟的大规模并行系统模拟方法,包括如下步骤:步骤1、首先将大规模并行程序以期待的进程规模和问题规模,在现有的计算系统或者云平台中运行,在程序运行的过程中,采集运行信息;步骤2、在采集完支持单个进程运行的必要信息后,用户指定欲模拟的目标高性能计算机的配置;步骤3、用户选择部分欲模拟的进程,并指定进程‑‑节点分布,将这些进程和节点信息输入配置,在本地宿主机集群启动并行系统模拟系统;步骤4、用户在并行系统模拟系统中启动并行程序,在执行过程中,在同一个节点内执行的进程的计算过程、进程调度、进程对资源的竞争由单节点全系统模拟实例精确模拟。
Description
技术领域
本发明涉及一种大规模并行计算系统的模拟方法和模拟器系统结构,特别涉及可以让研究人员在目标硬件不具备的情况下高效模拟执行大规模并行程序中部分进程的方法以及模拟器系统结构。
背景技术
系统结构模拟器在计算机系统设计和实现的过程中有非常重要的作用。在设计初期可以通过粗粒度的功能模拟来确定系统的设计方案;在系统开发过程中,可以通过细粒度的时钟精确的模拟来进一步完善微结构的设计;同时也可以同步进行目标系统的系统软件开发,加快系统开发速度;在软硬件同步研发的过程中,可以通过模拟器对目标系统进行性能预测和评价,为优化系统的软硬件设计和实现提供帮助。
近年来,随着工艺水平和体系结构技术的发展,高性能计算机系统的性能不断提高,伴随着系统性能的提高,高性能计算机系统的规模也迅速增长。巨大的系统规模和异构系统的复杂性使高性能计算机的研制周期与成本显著增加。为了缩短周期和降低成本,研发人员更需要在真实系统完成之前使用系统模拟技术对目标系统进行系统、全面的分析。同时,软件设计人员也可以在高性能目标系统尚不具备时,利用模拟器进行系统软件和大规模并行应用程序的调试和性能调优。
目前针对大规模并行系统的模拟方法,学术界和工业界都已经给予了充分的关注,并提出了多种解决方法。现有的解决方法主要可以分为两类:(1)使用基于目标节点的小规模集群系统的方法,(2)使用传统体系结构模拟器的方法。使用基于目标节点的小规模集群系统的方法需要目标系统的少量部分节点,在该小规模集群系统中模拟并行程序在目标系统的运行特征。因为是直接使用目标系统的部分节点,所以无需对目标系统的微体系架构进行建模,可以简化模拟方法的设计。根据具体的实现原理可以将这类方法区分为两个子类,分别是基于执行驱动的模拟方法以及基于踪迹驱动的模拟方法。踪迹驱动模拟方法首先在一个已存在的高性能平台或云平台获取大规模并行程序每个进程的执行踪迹数据(例如计算踪迹、通信踪迹、I/O踪迹等),将其保存并作为模拟器的输入,将进程的踪迹依次在小规模集群系统中重放来模拟目标系统的功能和行为,以获取程序在目标系统中的性能数据。执行驱动模拟方法的输入是目标系统的二进制文件,可以完整执行大规模并行程序。这类方法通常是在小规模集群系统中以完整进程数规模执行并行程序(每个节点运行的进程数远高于目标系统中每个节点的进程数),在执行过程中捕捉关键事件点(例如进程切换、通信操作、I/O操作等),并对这些事件点依据目标系统的配置建模,模拟程序在目标系统中的执行过程,以获取程序在目标系统中的性能数据。使用传统体系结构模拟器的方法利用当前纯熟的系统结构模拟器,组装成并行计算系统模拟器。例如组装全系统模拟器、微体系结构模拟器、内存模拟器、网络模拟器、I/O模拟器等,形成目标并行计算系统模拟器。当并行程序在模拟器中执行时,各组件分工模拟程序的计算操作、访存操作、网络操作、I/O操作等。
以上两种解决思路,存在较多不足,主要体现在以下几个方面:第一,虽然使用基于目标节点的小规模集群系统的方法通过直接使用目标系统的部分节点以避免对处理器、内存等微架构的模拟,简化了模拟器的设计,但是这限制了模拟器的使用场景以及灵活性。用户必须等待目标系统的节点实际生产出之后才能使用该模拟方法,此外,如果用户想修改一些硬件配置,或者想灵活的比对不同目标系统的性能,就需要具备很多不同目标系统的部分硬件设备。第二,基于踪迹驱动的方法虽然扩展性较强,但是由于并不是真实的执行并行程序,所以一般只能预测某个并行程序在目标系统的一些简单的性能指标,例如运行时间等,这限制了该种方法的使用范围。基于执行驱动的方法是真实的运行大规模并行程序,但由于在小规模集群以完整规模运行,而每个节点最大运行进程的个数有限,会导致所需要的宿主机的个数随着进程数规模而增加,这限制了系统的可扩展性。此外,随着模拟的进程数的增加,当增加到一定规模时,系统的减速比会不可接受,使整个系统无法使用。第三,使用传统体系结构模拟器的方法虽然灵活性很高,但是由于大规模并行系统的规模,以及传统体系结构模拟器精确模拟时较高的减速比,当系统规模达到一定程度时,模拟系统的减速比将无法接受,导致系统不可用。
综上,大规模并行系统模拟方法是一个具有广泛应用前景的研究方向。但是现阶段针对大规模并行系统模拟方法的已有研究成果都存在不足。
发明内容
本发明的目的是设计一种基于单节点模拟的大规模并行系统模拟方法,使研究人员可以在真实的目标大规模并行系统完成开发之前,使用少量的硬软件资源进行模拟实验,对系统进行全面、深入的性能分析,评测应用程序在目标系统上的性能能否达到预期,为机器设计和实现上的改进和优化提供参考。在模拟的同时也节约软硬件资源,有较高的模拟性能和灵活性。
本发明的提出的技术方案是将对大规模并行系统的模拟转化为依次对并行系统中各节点的模拟。技术方案的理论基础为:在高性能计算机系统中,并行程序的执行模式多为“单程序多数据(SPMD—Single Program Multiple Data)”,即程序运行时虽然包含成千上万个进程,但是这些进程往往会执行一种或几种代码序列,执行相同代码序列的进程会表现出相似的计算行为。因此,在高性能计算系统规模日益增大,进程数量众多的背景下,用户无需模拟程序的所有进程,而只需模拟部分进程就可以了解并行系统的整体特性。因此,本技术方案的核心思路为:通过模拟目标系统的单个节点及其上运行的应用进程,再现大规模并行系统中程序的执行过程,细粒度地展现目标系统以及程序的运行状态,进而完成对目标系统的性能评价,以及并行程序的调试和性能调优;采用消息仿真的方法模拟程序中其他进程的通信操作,通过消息的仿真发送/接收来驱动被模拟节点中应用进程的执行,进而达到通过执行少量进程来模拟程序大规模并行执行的目的;使用传统的系统结构模拟器来模拟目标系统的单个节点,通过对目标系统节点进行建模,实现节点操作系统及应用进程的模拟执行。此外,本发明的模拟方法也可以模拟这些进程的I/O操作,同时模拟其他未启动的进程并发访问存储的效果。
与已有的大规模并行系统模拟方法相比,本发明所提出的模拟方法具有如下特点:首先,通过模拟目标系统的单个节点即可实现目标系统的性能评价及并行程序的调试和性能调优,减少了硬软件资源占用;其次,使用传统系统结构模拟器模拟目标节点,可在目标硬件尚不具备的情况下,实现目标系统的细粒度建模和模拟;可以模拟操作系统及大规模并行程序在目标系统上的执行过程,更接近于真实系统。
为了实现对大规模并行系统的高效模拟,本发明提出的整体技术方案为:一种基于单节点模拟的大规模并行系统模拟方法,包括如下步骤:
步骤1、首先将大规模并行程序以期待的进程规模(例如4096个进程)和问题规模,在现有的高性能计算系统或者云平台中运行。在程序运行的过程中,记录每个进程在独立执行时所有无法复现的信息(例如进程从并行环境获取的进程号、分组信息、被分配处理的数据块信息等,进程从其他进程所接收的数据内容等)。这一步采集的数据,是为了支持并行程序的任一单一的进程独立运行。
步骤2、在采集完支持单个进程运行的必要信息后,用户指定欲模拟的目标高性能计算机的配置(包括每个计算节点的硬件体系结构配置、操作系统、并行环境等软件版本,互连网络的配置、I/O系统的配置等)。
步骤3、用户选择部分欲模拟的进程,并指定进程--节点分布,将这些进程和节点信息输入配置,在本地宿主机集群启动并行系统模拟系统。模拟系统根据指定的进程—节点分布,在宿主机启动相应数量的单节点全系统模拟实例。在单节点全系统模拟实例启动的过程中,加载步骤2中指定的硬件体系结构配置、操作系统、并行环境等软件版本,使节点的软硬件架构与目标节点完全一致。在启动单节点全系统模拟实例的同时,并行环境仿真模块、互连网络模拟功能模块以及I/O系统模拟模块根据步骤2输入的配置完成初始化建模,各单节点全系统模拟实例与互连网络模拟模块以及I/O系统模拟模块通过接口完成连接。
步骤4、用户在并行系统模拟系统中启动并行程序,被选中的部分进程按照步骤3中指定的进程—节点分布分别在各单节点全系统模拟实例中执行。在执行过程中,在同一个节点内执行的进程的计算过程、进程调度、进程对资源的竞争等由单节点全系统模拟实例精确模拟。当进程执行步骤1中所记录的并行操作(例如获得进程id、进程组等信息、通信操作、I/O操作)时,向并行环境仿真模块发起请求以完成相关的操作。并行环境仿真模块与互连网络模拟模块、I/O系统模拟模块根据步骤1中记录的数据,协同模拟这些操作,并将结果返回给进程。当进程执行步骤1中没有记录的并行操作时,则由原生并行环境来执行这些操作。在模拟系统运行的过程中,各单节点全系统模拟实例、互连网络模拟模块以及I/O系统模拟模块会通过全局逻辑时钟同步模块阶段性同步逻辑时钟。
有益效果:
本发明相对于现有技术的优点主要在于:
(1)整体上总体上提出了一种可以有效及高效的大规模并行系统模拟方法,方法的具体优势体现在兼具多功能性、灵活性、可扩展性以及较低的减速比。
(2)在功能上,本发明采用基于单节点模拟的方法,使用户聚焦大规模并行系统的部分进程和节点的工作流程,可以对程序在部分节点中的具体行为、特征、性能等做出精确评估。
(3)在灵活性上,用户可以通过纯熟的单节点全系统模拟器配置所需要的硬件架构,可以依据需求配置不同参数和拓扑的互连网络结构,以及文件系统。用户可以根据需求灵活配置所期待的大规模并行系统架构。
(4)在可扩展性和减速比上,因为本发明无需执行所有进程,所以面对上万数量的进程,无需启动数百个单节点全系统模拟实例,用户依然可以根据自己的需求,分次选择部分所关注的进程,只启动这些进程所分布的节点的模拟实例,这样无论模拟多大规模的并行系统,整个模拟方法所占用的硬件及软件资源都不会随着并行系统规模的提升而线性增长,这给用户提供了很高的可扩展性。同样,因为模拟时所启动的单节点模拟实例数量并不会随着并行系统规模增大而增加,这大大减小了本模拟方法的减速比。
附图说明
图1本发明方法流程图–必要数据采集部分;
图2本发明方法流程图–模拟系统执行流程部分;
图3本发明并行环境仿真模块处理过程示意图;
图4本发明互连网络模拟模块处理过程示意图;
图5本发明I/O系统模拟模块工作过程示意图;
图6本发明全局逻辑时钟同步模块工作过程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅为本发明的一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域的普通技术人员在不付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。
图1和图2给出了本发明所提出的整体技术方案的流程框图。在具体的实施方式中,本发明的一种基于单节点模拟的大规模并行系统模拟系统,包括必要数据采集模块、单节点全系统模拟实例、并行环境仿真模块、互连网络模拟模块、I/O系统模拟模块、全局逻辑时钟同步模块。各个模块的具体功能如下:
必要数据采集模块。由于本发明提出的模拟方法,可以在不启动所有进程和节点的情况下,模拟并行程序的任意个数的进程子集在部分节点的运行,为了保证任意进程的独立运行,本方法首先需要将目标并行程序以期待的规模完整运行在某个实际存在的高性能计算机系统或者云平台中,以采集支持每个进程单独运行的必要数据。这些数据包括:所有与并行计算环境相关的函数的输出(例如进程请求总进程数的函数、进程请求某个进程组数目的函数、进程请求其在某个进程组序号的函数等)、进程与其他进程通信操作的操作名称以及输入输出(例如具体的通信函数名称、通信的对象、传输数据的大小,以及所有从其他进程接收的数据内容)。进程的I/O操作的操作名称以及所读写的文件对象、数据块大小等。
单节点全系统模拟实例。本发明采用纯熟的单节点全系统模拟器的一个软件实例模拟目标大规模并行系统的一个节点。单节点全系统模拟实例模拟的节点的软硬件架构配置,包括硬件体系结构、软件环境(操作系统、并行环境等软件库版本)等,需要与目标节点完全一致。进程在各单节点全系统模拟实例中执行,进程的计算过程、进程的调度、进程对资源的竞争等由单节点全系统模拟实例精确模拟。
并行环境仿真模块。并行程序在执行过程中,主要通过并行环境(并行库)完成并行化操作。在本发明的模拟方法中,由于并不执行程序的所有进程,所以本发明使用并行仿真模块协助原生的并行环境,使并行程序的被选中的部分进程正确执行。进程在各个单节点全系统模拟实例中执行的过程中,当执行必要数据采集模块记录过的操作时,不再由原生并行环境提供服务,而是向并行环境仿真模块请求完成相关操作。并行环境仿真模块的具体工作过程如图3所示。具体处理流程如下:
(1)为每个单节点模拟实例和用户选择执行的进程赋予所欲模拟的目标全局标识,并根据用户输入的进程-节点分布建立节点与进程的逻辑映射。
(2)当接收到进程所有与获取进程序号、进程分组相关的信息时,并行环境仿真模块通过必要数据采集模块中记录的信息,将进程所期待的目标值分配给进程,以保证进程能顺利处理所分配的期待的数据集。
(3)当并行环境仿真模块收到进程的通信请求后,根据节点和进程映射关系判断通信目标进程的位置,如果通信目标进程是同一节点内正在运行的进程,则调用原生并行环境直接完成进程间通信操作,如果通信目标进程并不在该节点运行,则通过单节点模拟实例与互连网络模拟模块间的虚拟网络通道转发至互连网络模拟模块。在互连网络模拟模块模拟该次通信并将结果返回后,并行环境仿真模块将数据和结果返回给进程。
(4)当并行环境仿真模块收到进程关于读写文件的请求时,会将文件操作请求通过单节点模拟实例与I/O系统模拟模块间的虚拟文件驱动转发至I/O系统模拟模块,在I/O系统模拟模块模拟在目标文件系统中对文件的读写,并将结果返回后,并行环境仿真模块将数据和结果返回给进程。
互连网络模拟模块。互连网络模拟模块主要完成对进程通信操作的模拟。互连网络模拟模块具体工作过程如图4所示。具体的处理流程如下:
(1)当用户启动并行系统模拟系统时,互连网络模拟功能会根据用户的输入配置,形成软件互连网络组件,维护目标互连网络的拓扑、速率等参数。然后通过虚拟网络接口与各单节点全系统模拟实例相连接。
(2)当收到某个单节点模拟实例的通信请求时,首先记录收到该次通信操作的请求的全局时间T开始,然后启动一个任务,该任务根据通信双方的源、目的进程所在的节点,数据包的大小、以及互连网络的拓扑、速率等参数,建模得出该数据在目标互连网络中传输时间T传输。
(3)如果该请求是数据发送操作,则查看通信目标进程是否正在模拟执行,如果正在执行,则等待传输时延T传输,即在T开始+T传输时刻将此数据转发至目标进程所位于的单节点全系统模拟实例,并向源进程所位于的单节点全系统模拟实例发送该消息成功发送的通知。如果目标进程并没有执行,则丢弃该数据,并在T开始+T传输时刻(因为在本发明的方法中,并不模拟所有的进程,有的进程是不执行的,当正在执行的进程发送某条数据,如果本应该接收这条数据的进程并没有启动的话,那么这条数据的内容就没有意义了,我们只需要模拟出这条数据在互连网络中传输的时间即可,只有这个传输时间才会影响源进程的执行过程)返回至源进程所位于的单节点全系统模拟实例。
(4)如果该请求是数据接收操作,则查看发送数据的源进程是否正在执行,如果源进程正在执行,说明源进程也必然会发起一个数据发送请求,过程如步骤(3)所示。如果源进程并未执行,则通过数据采集模块记录的数据,检索得到该次接收操作所期待的正确数据,在T开始+T传输时刻将此数据发送至请求这次数据接收操作的单节点全系统模拟实例。
I/O系统模拟模块。I/O系统模拟模块主要模拟进程对目标I/O系统的文件读写的过程。I/O系统模拟模块具体工作过程如图5所示。具体的处理流程如下:
(1)当用户启动模拟系统时,I/O系统模拟功能会根据用户的输入配置,形成软件I/O系统。同时通过虚拟文件驱动接口与各单节点模拟实例相连接。
(2)当收到单节点模拟实例的I/O操作请求时,记录收到该次通信操作的请求的全局时间T开始,然后启动一个任务,该任务通过分析必要信息采集模块记录的所有进程的I/O操作序列信息,仿真其他进程同时并行读写I/O系统的效果,计算出由于大规模进程同时读写对目标进程的读写操作带来的延迟T延迟。
(3)模拟目标进程对文件的读写,计算读写时间T读写,如果是读操作,先将读入的数据放入缓存。
(4)在文件读写结束后,在T开始+T读写+T延迟时刻将读写结果返回给单节点模拟实例。如果是读操作,将缓存中的数据拷贝至单节点模拟实例虚拟文件驱动。
全局逻辑时钟同步模块。因为各单节点全系统模拟实例,以及互连网络模拟模块和I/O系统模拟模块,这些软件模块都是以进程的形式在宿主机中运行,其本身也会被宿主机的操作系统调度,因为宿主机资源有限,每个软件模块对应的进程不可能一直占用硬件资源处于运行状态,此外这些进程对共享资源的竞争也会影响进程执行的速度,这与实际目标系统每个节点是不间断运行的情况有较大差异,所以本发明使用全局逻辑时钟同步模块来同步各模块内部的逻辑时钟,以使整个模拟系统更加接近真实目标系统的运行。
全局逻辑时钟同步模块具体工作过程如图6所示。在并行系统模拟系统运行过程中,各单节点全系统模拟实例、互连网络模拟模块、以及I/O系统模拟模块,每隔一定时间间隔进行全局逻辑时钟同步,本发明记时间间隔为T同步。每个单节点模拟实例、互连网络模拟模块、I/O系统模拟模块各自维护其内部的逻辑时钟,当逻辑时钟经过T同步时间,停下当前模拟过程,向全局逻辑时钟同步模块发送请求同步信号。全局逻辑时钟同步模块收到所有单节点模拟实例、以及互连网络模拟模块和I/O系统模拟模块发送的请求同步信号后,向各模拟实例和模块发送同步完成信号,各模拟实例收到同步完成信号之后,重新恢复模拟过程,直到下一次同步。
根据本发明的另一个实施例,基于上述模拟系统,提出一种基于单节点模拟的大规模并行系统模拟方法,包括如下步骤:
步骤1、首先将并行程序以期待的进程规模和问题规模,在现有的计算系统或者云平台中运行,在程序运行的过程中,必要信息采集模块采集并记录每个进程在独立执行时所有无法复现的信息,包括:进程从并行环境获取的进程号、分组信息、被分配处理的数据块信息,进程从其他进程所接收的数据内容;此处采集的信息,用于支持并行程序的任一单一的进程独立运行;
步骤2、在采集完支持单个进程运行的必要信息后,用户指定欲模拟的目标高性能计算机的配置,包括每个计算节点的硬件体系结构配置、操作系统、并行环境的软件版本,互连网络的配置、I/O系统的配置;
步骤3、用户选择部分欲模拟的进程,并指定进程--节点分布,将这些进程和节点信息输入配置,在本地宿主机集群启动并行系统模拟系统;并行系统模拟系统根据指定的进程—节点分布,在宿主机启动相应数量的单节点全系统模拟实例;在单节点全系统模拟实例启动的过程中,加载步骤2中指定的硬件体系结构配置、操作系统、并行环境软件版本,使节点的软硬件架构与目标节点完全一致;在启动单节点全系统模拟实例的同时,并行环境仿真模块、互连网络模拟功能模块以及I/O系统模拟模块根据步骤2输入的配置完成初始化建模,各单节点全系统模拟实例与互连网络模拟模块以及I/O系统模拟模块通过接口完成连接;
步骤4、用户在并行系统模拟系统中启动并行程序,被选中的部分进程按照步骤3中指定的进程—节点分布分别在各单节点全系统模拟实例中执行;在执行过程中,在同一个节点内执行的进程的计算过程、进程调度、进程对资源的竞争由单节点全系统模拟实例精确模拟;当进程执行步骤1中所记录的并行操作时,向并行环境仿真模块发起请求以完成相关的操作;并行环境仿真模块与互连网络模拟模块、I/O系统模拟模块根据步骤1中记录的数据,协同模拟这些操作,并将结果返回给进程;当进程执行步骤1中没有记录的并行操作时,则由原生并行环境来执行这些操作,在模拟系统运行的过程中,各单节点全系统模拟实例、互连网络模拟模块以及I/O系统模拟模块会通过全局逻辑时钟同步模块阶段性同步逻辑时钟。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,且应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
Claims (6)
1.一种基于单节点模拟的大规模并行系统模拟方法,其特征在于,包括如下步骤:
步骤1、首先将并行程序以期待的进程规模和问题规模,在现有的计算系统或者云平台中运行,在程序运行的过程中,必要信息采集模块采集并记录每个进程在独立执行时所有无法复现的信息,包括:进程从并行环境获取的进程号、分组信息、被分配处理的数据块信息,进程从其他进程所接收的数据内容;此处采集的信息,用于支持并行程序的任一单一的进程独立运行;
步骤2、在采集完支持单个进程运行的必要信息后,用户指定欲模拟的目标高性能计算机的配置,包括每个计算节点的硬件体系结构配置、操作系统、并行环境的软件版本,互连网络的配置、I/O系统的配置;
步骤3、用户选择部分欲模拟的进程,并指定进程--节点分布,将这些进程和节点信息输入配置,在本地宿主机集群启动并行系统模拟系统;并行系统模拟系统根据指定的进程—节点分布,在宿主机启动相应数量的单节点全系统模拟实例;在单节点全系统模拟实例启动的过程中,加载步骤2中指定的硬件体系结构配置、操作系统、并行环境软件版本,使节点的软硬件架构与目标节点完全一致;在启动单节点全系统模拟实例的同时,并行环境仿真模块、互连网络模拟功能模块以及I/O系统模拟模块根据步骤2输入的配置完成初始化建模,各单节点全系统模拟实例与互连网络模拟模块以及I/O系统模拟模块通过接口完成连接;
步骤4、用户在并行系统模拟系统中启动并行程序,被选中的部分进程按照步骤3中指定的进程—节点分布分别在各单节点全系统模拟实例中执行;在执行过程中,在同一个节点内执行的进程的计算过程、进程调度、进程对资源的竞争由单节点全系统模拟实例精确模拟;当进程执行步骤1中所记录的并行操作时,向并行环境仿真模块发起请求以完成相关的操作;并行环境仿真模块与互连网络模拟模块、I/O系统模拟模块根据步骤1中记录的数据,协同模拟并行操作,并将结果返回给进程;当进程执行步骤1中没有记录的数据时,则由原生并行环境来执行这些操作,在模拟系统运行的过程中,各单节点全系统模拟实例、互连网络模拟模块以及I/O系统模拟模块会通过全局逻辑时钟同步模块阶段性同步逻辑时钟;
其中,使用单节点全系统模拟实例模拟目标系统的某一个节点,单节点模拟实例的体系结构、软硬件配置与目标系统的节点一致,用户选择欲模拟的节点并运行程序的部分指定进程,在进程运行过程中,部分并行操作,包括获取进程标识、进程组相关信息的操作、通信操作、I/O操作由并行环境仿真模块模拟执行,其他并行操作由节点内的原生并行环境直接执行。
2.根据权利要求1中所述的一种基于单节点模拟的大规模并行系统模拟方法,其特征在于,所述步骤1具体包括以下步骤:
在已存在的高性能计算机系统或云平台中执行程序,并记录进程所有与其标识、进程组相关的信息数据,以及所有通信消息数据;在模拟系统中运行并行程序,当进程执行至通信函数时,由并行环境仿真模块判断通信目标,如果是同一节点的进程,则直接完成进程间通信,如果不是同一节点的进程,则向互连网络模拟模块请求模拟消息的发送与接收;互连网络模拟模块对目标系统的互连网络架构建模,并根据所记录的消息数据,向进程传输所期待的消息数据。
3.根据权利要求1中所述的一种基于单节点模拟的大规模并行系统模拟方法,其特征在于,所述步骤3中具体包括以下步骤:
当进程执行与获取进程标识、进程组信息的相关操作时,并行环境仿真模块通过步骤1中记录的数据,赋予进程所期待的数据;当进程执行通信相关操作时,并行环境仿真模块判断进程通信的对象,如果是同一节点内进程,则直接完成进程间通信完成消息收发;如果不是同一节点内进程,则将通信操作请求发送至互连网络模拟模块,等待互连网络模拟模块模拟消息传输后,通知进程通信操作完成;当进程执行I/O操作时,并行环境仿真模块将文件读写请求发送至I/O系统模拟模块,等待I/O系统模拟模块完成文件读写操作后,通知进程I/O操作完成。
4.根据权利要求1中所述的一种基于单节点模拟的大规模并行系统模拟方法,其特征在于,所述步骤4具体包括以下步骤:
当收到某个进程的通信操作请求时,首先记录收到通信操作的请求的全局时间T开始,然后启动一个任务,该任务根据通信双方的源、目的进程所在的节点,数据包的大小、以及互连网络的拓扑、速率参数,建模得出该数据在目标互连网络中传输时间T传输;如果该请求是数据发送操作,则查看通信目标进程是否正在模拟执行,如果正在执行,则等待传输时延T传输,即在T开始+T传输时刻将此数据转发至目标进程所位于的单节点全系统模拟实例,并向源进程所位于的单节点全系统模拟实例返回消息已成功发送的通知,如果目标进程并没有执行,则丢弃该数据,并在T开始+T传输时刻向源进程所位于的单节点全系统模拟实例返回该消息已成功发送的通知;如果该请求是数据接收操作,则查看发送数据的源进程是否正在执行,如果源进程正在执行,说明源进程也必然会发起一个数据发送请求,过程与上述发送过程一致;如果源进程并未执行,则通过数据采集模块记录的数据,检索得到接收操作所期待的正确数据,在T开始+T传输时刻将此数据发送至请求这次数据接收操作的单节点全系统模拟实例。
5.根据权利要求1中所述的一种基于单节点模拟的大规模并行系统模拟方法,其特征在于,I/O系统模拟模块执行以下步骤:
当收到单节点模拟实例的I/O操作请求时,记录收到通信操作的请求的全局时间T开始,然后启动一个任务,该任务通过分析必要信息采集模块记录的所有进程的I/O操作序列信息,仿真其他进程同时并行读写I/O系统的效果,计算出由于大规模进程同时读写对目标进程的读写操作带来的延迟T延迟;模拟目标进程对文件的读写,计算读写时间T读写,如果是读操作,先将读入的数据放入缓存;在文件读写结束后,在T开始+T读写+T延迟时刻将读写结果返回给单节点模拟实例;如果是读操作,将缓存中的数据拷贝至单节点模拟实例虚拟文件驱动。
6.根据权利要求1中所述的一种基于单节点模拟的大规模并行系统模拟方法,其特征在于,步骤4中全局逻辑时钟同步具体包括以下步骤:
在并行系统模拟系统运行过程中,各单节点全系统模拟实例、互连网络模拟模块、以及I/O系统模拟模块,每隔一定时间间隔进行全局逻辑时钟同步,记时间间隔为T同步;每个单节点模拟实例、互连网络模拟模块、I/O系统模拟模块各自维护其内部的逻辑时钟,当内部时钟运行T同步时间,停下当前模拟过程,向全局逻辑时钟同步模块发送请求同步信号;全局逻辑时钟同步模块收到所有单节点模拟实例、以及互连网络模拟模块和I/O系统模拟模块发送的请求同步信号后,向各模拟实例和模块发送同步完成信号,各模拟实例收到同步完成信号之后,重新恢复模拟过程,直到下一次同步。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010926701.3A CN112068942B (zh) | 2020-09-07 | 2020-09-07 | 一种基于单节点模拟的大规模并行系统模拟方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010926701.3A CN112068942B (zh) | 2020-09-07 | 2020-09-07 | 一种基于单节点模拟的大规模并行系统模拟方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112068942A CN112068942A (zh) | 2020-12-11 |
CN112068942B true CN112068942B (zh) | 2023-04-07 |
Family
ID=73662946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010926701.3A Active CN112068942B (zh) | 2020-09-07 | 2020-09-07 | 一种基于单节点模拟的大规模并行系统模拟方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112068942B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113239522B (zh) * | 2021-04-20 | 2022-06-28 | 四川大学 | 一种基于计算机集群的大气污染物扩散模拟方法 |
CN114024986B (zh) * | 2021-11-04 | 2023-07-11 | 南京邮电大学 | 一种使用节点代理的轻量级网络模拟办法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101980166A (zh) * | 2010-10-09 | 2011-02-23 | 北京航空航天大学 | 一种用于机群系统并行模拟的时间序列控制方法 |
WO2018187487A1 (en) * | 2017-04-06 | 2018-10-11 | Goldman Sachs & Co. LLC | General-purpose parallel computing architecture |
CN111324445A (zh) * | 2018-12-14 | 2020-06-23 | 中国科学院深圳先进技术研究院 | 一种任务调度模拟系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11449452B2 (en) * | 2015-05-21 | 2022-09-20 | Goldman Sachs & Co. LLC | General-purpose parallel computing architecture |
-
2020
- 2020-09-07 CN CN202010926701.3A patent/CN112068942B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101980166A (zh) * | 2010-10-09 | 2011-02-23 | 北京航空航天大学 | 一种用于机群系统并行模拟的时间序列控制方法 |
WO2018187487A1 (en) * | 2017-04-06 | 2018-10-11 | Goldman Sachs & Co. LLC | General-purpose parallel computing architecture |
CN111324445A (zh) * | 2018-12-14 | 2020-06-23 | 中国科学院深圳先进技术研究院 | 一种任务调度模拟系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112068942A (zh) | 2020-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3754496B1 (en) | Data processing method and related products | |
CN112433819A (zh) | 异构集群调度的模拟方法、装置、计算机设备及存储介质 | |
EP3021224B1 (en) | Method and apparatus for producing a benchmark application for performance testing | |
CN112068942B (zh) | 一种基于单节点模拟的大规模并行系统模拟方法 | |
US8681166B1 (en) | System and method for efficient resource management of a signal flow programmed digital signal processor code | |
TW202236089A (zh) | 用於異質soc設計之使用者空間仿真框架 | |
RU2678717C1 (ru) | Способ построения программного комплекса автоматизации и визуализации тестирования встроенного программного обеспечения электронных устройств | |
JPH1196130A (ja) | マルチプロセッシングシステムの性能評価方法および装置並びにマルチプロセッシングシステムの性能評価プログラムを格納した記憶媒体 | |
RU2729210C1 (ru) | Комплекс тестирования программного обеспечения электронных устройств | |
US9262141B1 (en) | Distributed computations of graphical programs having a pattern | |
George et al. | An Integrated Simulation Environment for Parallel and Distributed System Prototying | |
Uddin et al. | Analytical-based high-level simulation of the microthreaded many-core architectures | |
Lantreibecq et al. | Model checking and co-simulation of a dynamic task dispatcher circuit using CADP | |
JP5056493B2 (ja) | 仮想ソフトウェア生成装置 | |
CN114692382B (zh) | 核电仿真模型开发数据的管理方法、装置及计算机设备 | |
Duenha et al. | Mpsocbench: A benchmark suite for evaluating multiprocessor system-on-chip tools and methodologies | |
Wu et al. | Simulation-based analysis of performance dynamics of distributed applications in heterogeneous network environments | |
Zhang et al. | Boosting U ppaal for OSEK/VDX Applications with a Sequentialization Approach | |
CN116360848A (zh) | 一种Serverless架构下的代码执行回放装置 | |
Hermanns | Trace-based performance simulation of large-scale applications | |
Hanna et al. | HPC performance analysis of a distributed information enterprise simulation | |
Janssen | Macroscale simulation of million core systems with the Structural Simulation Toolkit. | |
Zhang | Performance Evaluation of Occam2 Program Instrumentation | |
Segall et al. | Real Time Status Monitoring for Distributed Systems. | |
Grebe | CENTRE DE PROGRAMMATION DE LA MARINE |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |