CN112395079B - 异构众核架构下的运算核作业迁移方法 - Google Patents
异构众核架构下的运算核作业迁移方法 Download PDFInfo
- Publication number
- CN112395079B CN112395079B CN201910763777.6A CN201910763777A CN112395079B CN 112395079 B CN112395079 B CN 112395079B CN 201910763777 A CN201910763777 A CN 201910763777A CN 112395079 B CN112395079 B CN 112395079B
- Authority
- CN
- China
- Prior art keywords
- core
- migration
- operation core
- state
- data structure
- 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/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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种异构众核架构下的运算核作业迁移方法,基于异构众核架构,包括以下步骤:S1、在作业迁移前,在管理核上建立第一迁移数据结构;S2、通过管理核暂停运算核;S3、判断该运算核是否达到稳定状态;S4、如果运算核达到稳定状态,在管理核建立用于保存运算核上系统状态的结构的第二迁移数据结构,并转S6;S5、如果运算核未达到稳定状态,通过管理核重新启动运算核,等待一段设定的时间后,转S1;S6、启动运算核作业迁移。本发明解决了在异构众核环境下运算核上作业迁移面临的运算核启动停止、作业的保留恢复以及运算核状态的保留等问题,为异构众核架构下的作业迁移提供了切实可靠的基础。
Description
技术领域
本发明涉及一种异构众核架构下的运算核作业迁移方法,属于计算机技术领域。
背景技术
进程迁移和虚拟机迁移技术目前都比较的成熟,但传统上的进程迁移技术或虚拟机迁移技术作为支持负载平衡和高容错的有效手段,如果应用在异构众核的架构下,还面临着相关运算核的作业迁移问题,这涉及到运算核作业的启动、暂停以及状态的保留、恢复等难题,目前并没有类似的实现方案。类似的GPU或Intel的mac系统,也因为硬件体系结构的巨大差异,而不具有方案的参考性。因此,如何实现异构众核架构下运算核上的作业迁移,成为本领域技术人员努力的方向。
发明内容
本发明的目的是提供一种异构众核架构下的运算核作业迁移方法,该异构众核架构下的运算核作业迁移方法解决了在异构众核环境下运算核上作业迁移面临的运算核启动停止、作业的保留恢复以及运算核状态的保留等问题,为异构众核架构下的作业迁移提供了切实可靠的基础。
为达到上述目的,本发明采用的技术方案是:一种异构众核架构下的运算核作业迁移方法,基于异构众核架构,包括以下步骤:
S1、在作业迁移前,在管理核上建立第一迁移数据结构,用于记录运算核上使用到的各段物理内存空间,还用于在作业迁移过程中标记运算核用到的物理内存;
S2、通过管理核暂停运算核;
S3、管理核读取运算核的状态寄存器,并通过获得的状态寄存器的状态参数,判断该运算核是否达到稳定状态;
S4、如果运算核达到稳定状态,在管理核建立用于保存运算核上系统状态的结构的第二迁移数据结构,并转S6;
S5、如果运算核未达到稳定状态,通过管理核重新启动运算核,等待一段设定的时间后,转S1;
S6、启动运算核作业迁移;
S7、在运算核作业迁移过程中,根据S1中建立的第一迁移数据结构,在迁移的目标节点上申请出相应大小的物理内存空间,再对运算核使用的物理内存进行传输,当运算核使用的物理内存传输完成后,将第一迁移数据结构传输到迁移的目标节点上,并将第一迁移数据结构中记录的物理内存空间的起始和结束地址修改到最新的地址;
S8、在运算核作业迁移过程中,将S4中建立的第二迁移数据结构迁移到目标节点;
S9、通过目标节点上的管理核重新申请新的运算核资源,并将第二迁移数据结构上的数据恢复到新的运算核对应的寄存器上,并根据第一迁移数据结构,重新建立运算核上空间的虚实映射关系,恢复运算核内存结构,重新运行运算核。
上述技术方案中进一步改进的方案如下:
1. 上述方案中,在S1中,第一迁移数据结构包括空间的起始地址、结束地址和各自对应的虚地址。
2. 上述方案中,在S2中,管理核通过修改运算核上的启动/暂停寄存器,实现对运算核启动与暂停的控制。
3. 上述方案中,在S3中,所述状态寄存器的状态参数为寄存器的值、计数器的值、局部内存的值和虚实空间代换表的值。
4. 上述方案中,在S3中,当状态寄存器的状态参数不随时间变化而发生变化时,表示该运算核达到稳定状态,或者当状态寄存器的状态参数指示运算核上没有消息需要接收或发送时,表示该运算核达到稳定状态。
5. 上述方案中,在S4中,所述运算核上系统状态的结构包括运算核通用寄存器的值、运算核向量寄存器的值、性能计数器的值、局部内存的值和虚实空间代换表的值。
6. 上述方案中,在S5中,设定的时间为100μs。
由于上述技术方案的运用,本发明与现有技术相比具有下列优点:
本发明异构众核架构下的运算核作业迁移方法,其主要应用于异构众核的架构下,解决了在异构众核环境下运算核上作业迁移面临的运算核启动停止、作业的保留恢复以及运算核状态的保留等问题,为异构众核架构下的作业迁移提供了切实可靠的基础,众多的迁移技术或框架可以基于该方法在异构众核的架构下进行移植。
附图说明
附图1为异构众核架构下的运算核作业迁移方法流程图。
具体实施方式
实施例:一种异构众核架构下的运算核作业迁移方法,基于异构众核架构,包括以下步骤:
S1、在作业迁移前,在管理核上建立第一迁移数据结构,用于记录运算核上使用到的各段物理内存空间,还用于在作业迁移过程中标记运算核用到的物理内存;
S2、通过管理核暂停运算核;
S3、管理核读取运算核的状态寄存器,并通过获得的状态寄存器的状态参数,判断该运算核是否达到稳定状态;
S4、如果运算核达到稳定状态,在管理核建立用于保存运算核上系统状态的结构的第二迁移数据结构,并转S6;
S5、如果运算核未达到稳定状态,通过管理核重新启动运算核,等待一段设定的时间后,转S1;
S6、启动运算核作业迁移,即通过通信网络,如IBA网络或IP网络,与目标节点的管理核进行通信、交互,并通知上层迁移控制器启动迁移;
S7、在运算核作业迁移过程中,根据S1中建立的第一迁移数据结构,在迁移的目标节点上申请出相应大小的物理内存空间,再对运算核使用的物理内存进行传输,当运算核使用的物理内存传输完成后,将第一迁移数据结构传输到迁移的目标节点上,并将第一迁移数据结构中记录的物理内存空间的起始和结束地址修改到最新的地址;
S8、在运算核作业迁移过程中,将S4中建立的第二迁移数据结构迁移到目标节点;
S9、通过目标节点上的管理核重新申请新的运算核资源,并将第二迁移数据结构上的数据恢复到新的运算核对应的寄存器上,并根据第一迁移数据结构,重新建立运算核上空间的虚实映射关系,恢复运算核内存结构,重新运行运算核。
在S1中,第一迁移数据结构包括空间的起始地址、结束地址和各自对应的虚地址。
在S2中,管理核通过修改运算核上的启动/暂停寄存器,实现对运算核启动与暂停的控制。
在S3中,所述状态寄存器的状态参数为寄存器的值、计数器的值、局部内存的值和虚实空间代换表的值。
在S3中,当状态寄存器的状态参数不随时间变化而发生变化时,表示该运算核达到稳定状态,或者当状态寄存器的状态参数指示运算核上没有消息需要接收或发送时,表示该运算核达到稳定状态。
在S4中,所述运算核上系统状态的结构包括运算核通用寄存器的值、运算核向量寄存器的值、性能计数器的值、局部内存的值和虚实空间代换表的值。
在S5中,设定的时间为100μs。
实施例进一步解释如下:
本发明的技术方案主要针对异构众核架构,在这种架构下,运算核不是全功能的CPU,只承担作业的运算任务,不具有系统的管理功能。因此,运算核上的作业任务迁移主要还是通过管理核来完成的,其主要流程包括:1)运算核上作业的运行、停止;2)运算核上作业使用内存空间的迁移;3)运算核状态的保留、恢复。
运算核上作业的运行、停止:
在迁移过程中,往往涉及到作业的暂停与恢复运行。在本发明中,我们只讨论节点内运算核上任务的暂停与恢复,不涉及到运算核与运算核或节点之间的交互。在异构众核的架构下,运算核上运行的任务都是单一的,因此作业的运行、停止也就只涉及到运算核的运行、停止,其流程如下:
A)迁移之前运算核的暂停流程
1)通过管理核暂停运算核
2)在管理核上,通过判断运算核的寄存器状态,来判断运算核是否达到稳定的状态(主要判断运算上是否还有飞行中的消息等)
3)如果达到稳定状态,转5)
4)没有达到稳定状态,继续将运算核启动,等100us的时间后,转1)
5)完成运算核的暂停
B)迁移到目标节点后运算核的恢复运行流程
迁移完成后,由于运算核的状态以及空间都已经完全恢复,因此运算核的运行只需要管理启动即可。
运算核上作业使用内存空间的迁移:
无论是进程迁移还是虚拟机迁移,都需要将运算核使用的内存空间传输到目标节点并相应的恢复。本发明只讨论迁移过程中运算核使用的内存空间相关的管理结构的保留以及恢复,不讨论具体使用的内存迁移技术如使用TCP传输还是IBA网络传输等,其具体的流程如下:
1)迁移之前运算核内存结构的保留:管理核通过建立迁移数据结构记录运算核上使用到的各段物理内存空间,主要包括:空间的起始地址和结束地址以及各自对应的虚地址,该数据结构主要用于迁移过程中标记运算核用到的物理内存,便于迁移过程中传输;
2)迁移过程中:当开始传输运算核使用的物理空间时,根据1)中建立的数据结构中的起始和结束地址在目标节点上申请出相应大小的物理空间,然后再启动传输,并在传输结束后,再将该结构传输到目标节点上并将起始和结束地址修改到最新的地址;
3)迁移之后运算核内存结构的恢复:恢复时,管理核根据2)中传输过来的新数据结构,重新建立运算核上空间的虚实映射关系;
运算核状态的保留、恢复:
运算核状态主要包含运算核上GPR(通用GPR、浮点GPR等)、局存、性能计数器以及CSR等,其具体流程如下:
1)迁移之前的运算核状态的保留:在运算核达到稳态后,管理核通过建立相应的迁移数据结构保存运算核上关键的寄存器,主要包含GPR、局存、性能计数器以及关键的CSR,注意的是,这些都必须得保存在可迁移的内存上;
2)迁移之后的运算核状态的恢复:1)中保留的数据结构在迁移到目标节点后,目标节点上的管理核就可以重新申请新的运算核资源,并将该结构上的数据恢复到新的运算核对应的寄存器上。
为了便于更好的理解本发明,下面将对本文中使用的术语进行简要的解释:
异构众核:CPU拥有众多的处理核心,众多核心设计结构不同,分别承担了不同的系统功能。
进程:计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。
进程迁移:进程迁移就是将一个进程从当前位置移动到指定处理器上。
虚拟机:指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
虚拟机迁移:在不停机的情况下,将虚拟机从一台物理机迁移到另外一台物理机,迁移过程不影响虚拟机的正常运行,也就不会影响用户跑在虚拟机上的业务。
运算核:在异构众核架构下,CPU拥有的众多处理核心中专门负责运算功能的核心称为运算核,例如太湖之光超级计算机上的CPU就是由4个管理核和256个运算核组成的。
采用上述异构众核架构下的运算核作业迁移方法时,其主要应用于异构众核的架构下,解决了在异构众核环境下运算核上作业迁移面临的运算核启动停止、作业的保留恢复以及运算核状态的保留等问题,为异构众核架构下的作业迁移提供了切实可靠的基础,众多的迁移技术或框架可以基于该方法在异构众核的架构下进行移植。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。
Claims (7)
1.一种异构众核架构下的运算核作业迁移方法,其特征在于:基于异构众核架构,包括以下步骤:
S1、在作业迁移前,在管理核上建立第一迁移数据结构,用于记录运算核上使用到的各段物理内存空间,还用于在作业迁移过程中标记运算核用到的物理内存;
S2、通过管理核暂停运算核;
S3、管理核读取运算核的状态寄存器,并通过获得的状态寄存器的状态参数,判断该运算核是否达到稳定状态;
S4、如果运算核达到稳定状态,在管理核建立用于保存运算核上系统状态的结构的第二迁移数据结构,并转S6;
S5、如果运算核未达到稳定状态,通过管理核重新启动运算核,等待一段设定的时间后,转S1;
S6、启动运算核作业迁移;
S7、在运算核作业迁移过程中,根据S1中建立的第一迁移数据结构,在迁移的目标节点上申请出相应大小的物理内存空间,再对运算核使用的物理内存进行传输,当运算核使用的物理内存传输完成后,将第一迁移数据结构传输到迁移的目标节点上,并将第一迁移数据结构中记录的物理内存空间的起始和结束地址修改到最新的地址;
S8、在运算核作业迁移过程中,将S4中建立的第二迁移数据结构迁移到目标节点;
S9、通过目标节点上的管理核重新申请新的运算核资源,并将第二迁移数据结构上的数据恢复到新的运算核对应的寄存器上,并根据第一迁移数据结构,重新建立运算核上空间的虚实映射关系,恢复运算核内存结构,重新运行运算核。
2.根据权利要求1所述的异构众核架构下的运算核作业迁移方法,其特征在于:在S1中,第一迁移数据结构包括空间的起始地址、结束地址和各自对应的虚地址。
3.根据权利要求1所述的异构众核架构下的运算核作业迁移方法,其特征在于:在S2中,管理核通过修改运算核上的启动/暂停寄存器,实现对运算核启动与暂停的控制。
4.根据权利要求1所述的异构众核架构下的运算核作业迁移方法,其特征在于:在S3中,所述状态寄存器的状态参数为寄存器的值、计数器的值、局部内存的值和虚实空间代换表的值。
5.根据权利要求1或4所述的异构众核架构下的运算核作业迁移方法,其特征在于:在S3中,当状态寄存器的状态参数不随时间变化而发生变化时,表示该运算核达到稳定状态,或者当状态寄存器的状态参数指示运算核上没有消息需要接收或发送时,表示该运算核达到稳定状态。
6.根据权利要求1所述的异构众核架构下的运算核作业迁移方法,其特征在于:在S4中,所述运算核上系统状态的结构包括运算核通用寄存器的值、运算核向量寄存器的值、性能计数器的值、局部内存的值和虚实空间代换表的值。
7.根据权利要求1所述的异构众核架构下的运算核作业迁移方法,其特征在于:在S5中,设定的时间为100μs。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910763777.6A CN112395079B (zh) | 2019-08-19 | 2019-08-19 | 异构众核架构下的运算核作业迁移方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910763777.6A CN112395079B (zh) | 2019-08-19 | 2019-08-19 | 异构众核架构下的运算核作业迁移方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112395079A CN112395079A (zh) | 2021-02-23 |
CN112395079B true CN112395079B (zh) | 2022-10-04 |
Family
ID=74603317
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910763777.6A Active CN112395079B (zh) | 2019-08-19 | 2019-08-19 | 异构众核架构下的运算核作业迁移方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112395079B (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101504618B (zh) * | 2009-02-26 | 2011-04-27 | 浙江大学 | 面向多核处理器的实时线程迁移方法 |
CN104050137B (zh) * | 2013-03-13 | 2018-02-09 | 华为技术有限公司 | 一种异构操作系统中内核运行的方法及装置 |
CN104102535B (zh) * | 2013-04-01 | 2018-10-02 | 华为技术有限公司 | 进程迁移方法和可迁移操作系统 |
-
2019
- 2019-08-19 CN CN201910763777.6A patent/CN112395079B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112395079A (zh) | 2021-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10628273B2 (en) | Node system, server apparatus, scaling control method, and program | |
US9558005B2 (en) | Reliable and deterministic live migration of virtual machines | |
CN111796908B (zh) | 一种资源自动弹性伸缩的系统、方法及云平台 | |
EP3073373B1 (en) | Method for interruption affinity binding of virtual network interface card, and computer device | |
US8631403B2 (en) | Method and system for managing tasks by dynamically scaling centralized virtual center in virtual infrastructure | |
US9231892B2 (en) | Distributed virtual switch configuration and state management | |
US11210132B2 (en) | Virtual machine migration in virtualization environment having different virtualization systems | |
CN106874143B (zh) | 服务器备份方法及其备份系统 | |
US10860353B1 (en) | Migrating virtual machines between oversubscribed and undersubscribed compute devices | |
WO2020192448A1 (zh) | 虚拟机的迁移方法和系统 | |
CN110958311A (zh) | 一种基于yarn的共享集群弹性伸缩系统及方法 | |
CN109960579B (zh) | 一种调整业务容器的方法及装置 | |
CN115943365A (zh) | 用于实例化和透明地迁移执行中的容器化进程的方法和系统 | |
CN114691286A (zh) | 服务器系统、虚拟机创建方法及装置 | |
CN112395079B (zh) | 异构众核架构下的运算核作业迁移方法 | |
WO2015180111A1 (zh) | 一种管理系统资源的方法、装置及设备 | |
CN113742073B (zh) | 一种基于lsb接口的集群控制方法 | |
CN112291345B (zh) | 物理机间进行进程迁移过程中保持socket不中断状态的方法 | |
Lu et al. | Synchronous Dislocation Scheduling Quantum Algorithm Optimization in Virtual Private Cloud Computing Environment | |
US11516082B1 (en) | Configuration of a baseboard management controller (BMC) group leader responsive to load | |
US12072804B2 (en) | Memory coherency in application-level virtualization | |
Le et al. | An Approach to Live Migration of Virtual Machines in Cloud Computing Environment | |
EP3326062B1 (en) | Mitigation of the impact of intermittent unavailability of remote storage on virtual machines | |
CN115826857A (zh) | 一种NVMe指令处理方法、装置、设备及介质 | |
WO2024129077A1 (en) | Container emulator for kubernetes |
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 |