CN109388486B - 一种针对异构内存与多类型应用混合部署场景的数据放置与迁移方法 - Google Patents

一种针对异构内存与多类型应用混合部署场景的数据放置与迁移方法 Download PDF

Info

Publication number
CN109388486B
CN109388486B CN201811170532.4A CN201811170532A CN109388486B CN 109388486 B CN109388486 B CN 109388486B CN 201811170532 A CN201811170532 A CN 201811170532A CN 109388486 B CN109388486 B CN 109388486B
Authority
CN
China
Prior art keywords
delay
application
data object
data
logic
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.)
Expired - Fee Related
Application number
CN201811170532.4A
Other languages
English (en)
Other versions
CN109388486A (zh
Inventor
白跃彬
王春阳
杨海龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN201811170532.4A priority Critical patent/CN109388486B/zh
Publication of CN109388486A publication Critical patent/CN109388486A/zh
Application granted granted Critical
Publication of CN109388486B publication Critical patent/CN109388486B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一种针对异构内存与多类型应用混合部署场景的数据放置与迁移方法,由应用静态分析方法、数据静态放置方法和运行时动态迁移机制三部分组成。该方法针对由高带宽内存与双倍速率存储器组成的异构内存系统以及单个延迟攸关应用与多个批处理应用的混合部署场景,从静态数据放置工具和动态迁移运行时系统两种角度设计,利用数据对象之间的依赖关系将应用程序拆分为相应的逻辑数据对象集合;基于两种存储器的不同特性,为不同类型的逻辑数据对象制定不同数据放置策略,同时在应用运行过程中进行动态监控与实时迁移,从而全面、充分地利用异构内存系统的多种内存资源,满足延迟攸关应用与批处理应用各自的性能需求。

Description

一种针对异构内存与多类型应用混合部署场景的数据放置与 迁移方法
技术领域
本发明涉及内存管理与应用性能优化领域,特别是涉及一种针对异构内存与多类型应用混合部署场景的数据放置与迁移方法。
背景技术
随着以高带宽内存(High Bandwidth Memory,HBM)为代表的3D堆叠内存技术的出现,由多种种类、性能各不相同的存储器组成的异构内存系统得到愈发广泛的应用。因为其与传统同构内存系统的不同,研究针对异构内存且能够充分发挥不同存储器特性的高效内存管理机制已成为业界的研发热点。另一方面,两种典型应用:延迟攸关应用与批处理应用对内存特性的敏感度以及自身性能评价指标存在巨大差异,具体体现为延迟攸关延迟攸关应用对客户端请求的处理时间,即服务质量(Quality of Service,QoS)有较高要求,而批处理应用则更多考虑到程序吞吐量,对系统提供的内存带宽有较高要求。因此,研究如何利用异构内存系统提供的多种内存资源,来优化延迟攸关延迟攸关应用与批处理应用混合部署时的系统整体性能具有重要意义。
已有的研究工作通过分析应用数据对象的访存特性,获取单个数据对象的带宽敏感度以及延迟敏感度作为评估其内存放置位置的依据,以此来提高应用的性能。然而这类方法均忽略了延迟攸关应用与批处理应用访存特性以及对性能指标要求的巨大差异,不支持在应用运行过程中依据应用的相关性能数据对数据对象进行动态迁移。也有一些研究工作针对运行时系统,从高速缓存(以下简称cache)以及处理器资源的角度,通过实验分析延迟攸关应用,获取其阶段性行为特征来作为系统资源分配的依据;在分配资源时仅分配适当的资源给延迟攸关应用以保证其服务质量,并将剩余的资源分配给批处理应用以提高系统整体资源利用率。但这类方法并没有涉及异构内存系统以及内存管理机制,而且忽视批处理应用内部存在的竞争问题以及隐藏的性能受损隐患。
目前关于异构内存管理机制优化以及多类应用混合部署场景下性能优化的相关研究已经不断深入,各种针对应用数据对象的放置与迁移机制已经在HBM、双倍速率(Double Data Rate,DDR)存储器、非易失性存储器(Non-volatile Memory,NVM)等多种内存组成的各种异构内存系统上得到了验证。但现有的研究仍存在以下几个主要问题:
(1)在延迟攸关应用与批处理应用混合部署场景下,缺少相关内存管理机制可以充分利用异构内存系统提供的多种不同特性的内存资源,以同时满足延迟攸关应用与批处理应用各自不同的性能需求。
(2)在制定数据对象放置与迁移策略时,均采用启发式思想:基于事先分析得到的单个数据对象的敏感度特性规定数据对象对应的放置位置,即放置策略;默认按照制定的放置策略放置所有数据对象便可取得应用整体的最优性能。然而该启发式算法无法保证解最优,因为将应用的数据划分为单个数据对象意味着忽视应用的整体特性,而应用中的所有单个数据对象性能最优不等同于应用整体性能最优。
(3)仅从静态的数据放置工具或者动态迁移运行时系统的角度去进行内存管理优化,并未考虑将两者进行结合可以更全面地优化应用性能。
发明内容
为了克服当前研究存在的问题,本发明针对单个延迟攸关应用与多个批处理应用的混合部署场景以及由HBM与DDR组成的异构内存系统,设计一种数据放置与迁移方法,不仅在静态分析阶段从数据对象角度出发对应用进行拆分时考虑到应用的整体性,还可以在应用运行过程中从运行时的角度对应用进行动态监控与数据迁移调整,从而达到充分利用异构内存系统提供的多种内存资源,满足延迟攸关应用与批处理应用各自的性能需求以及提升系统整体性能的目的。
本发明的技术方案:一种针对异构内存与多类型应用混合部署场景的数据放置与迁移方法,其特征包括三部分:应用静态分析方法、数据静态放置方法和运行时动态迁移机制,其中:
应用静态分析方法:用于实现应用数据对象的提取、分析以及逻辑划分;分析应用程序源代码,提取出所有数据对象;基于各个函数之间通过各种数据对象进行信息传递这一前提,以函数作为评估数据对象之间依赖关系的媒介,以数据对象是否是该函数的输入或输出以及数据量的大小作为二者是否存在依赖关系的依据,生成对应的数据对象流图;基于数据对象流图,量化函数与相关的数据对象之间的依赖度;将依赖紧密的部分数据对象划分为一个逻辑数据对象(logic data object,ldo),作为后续进行数据放置与动态迁移的基本单位;而针对延迟攸关应用以及批处理应用,基于各自在应用输入上的不同特性,设计不同的逻辑数据对象划分机制;应用静态分析方法最终会生成与目标应用程序对应的一个逻辑数据对象集合。
数据静态放置方法:用于实现对逻辑数据对象的敏感度分析以及数据对象静态放置策略的生成;以应用静态分析方法提供的逻辑数据对象集合作为输入,定义带宽敏感度以及延迟敏感度,分别代表逻辑数据对象对内存带宽以及内存延迟的敏感程度;对逻辑数据对象集合中的所有逻辑数据对象分别进行带宽敏感度和延迟敏感度分析,得出单个逻辑数据对象的敏感类型,并确定单个逻辑数据对象对应的放置策略;针对HBM高带宽、高访问延迟以及DDR低带宽、低访问延迟的特性,规定带宽敏感型数据对象优先放置于HBM,延迟敏感型数据对象优先放置于DDR;基于延迟攸关应用与批处理应用的不同性能需求与特性,提供两种不同的敏感度分析策略;待全部逻辑数据对象分析完毕后,基于所有敏感度数据,进行全局分析,生成目标应用最终的数据对象静态放置策略表。
运行时动态迁移机制:用于在应用运行过程中,利用硬件性能取样工具提供的数据实时分析应用性能状况,并及时动态地对相关应用的逻辑数据对象进行迁移;在应用部署完成开始运行时,根据数据静态放置方法提供的放置策略表进行数据对象的初始放置;基于硬件性能取样工具提供的关于cache的相关数据,分析延迟攸关应用的行为特征并评估其处于空闲(以下简称idle)阶段或者处于活跃(以下简称active)阶段;依据延迟攸关应用所处的阶段,以优先保证延迟攸关应用的QoS为首要原则,制定相应的数据对象迁移策略;当延迟攸关应用由active阶段转变为idle阶段时,需要根据上一个active阶段延迟攸关应用的性能数据对延迟攸关应用相关数据对象的放置策略进行调整;同时,针对应用间的公平性问题,通过对比数据静态放置方法提供的各个逻辑数据对象的初始放置策略与实际放置位置,评估所有批处理应用中性能受损最严重的应用,对与该应用相关的逻辑数据对象进行动态迁移;而当延迟攸关应用由idle阶段转变为active阶段时,需要根据前一个idle阶段调整的放置策略对延迟攸关应用的逻辑数据对象进行动态迁移。
本发明与现有技术相比的创新之处在于:本发明实现了一种针对异构内存与多类型应用混合部署场景的数据放置与迁移方法,基于数据对象对应于进行拆分的同时考虑到应用的整体性,充分利用异构内存系统提供的多种内存资源以满足延迟攸关应用与批处理应用不同的性能需求。具体体现在:
(1)针对HBM高带宽、高访问延迟、小容量与DDR低带宽、低访问延迟、大容量的特性,为带宽敏感型数据对象与延迟敏感型数据对象分别制定不同的放置策略,以全面、充分地利用异构内存资源。
(2)不以单个数据对象作为数据放置、迁移的单位,而是基于对应用整体性的考虑,以数据对象与函数之间存在的输入输出关系作为媒介,评估各个数据对象间的依赖度;并以该依赖度为依据,将依赖紧密的部分数据对象划分为一个逻辑数据对象,作为放置与迁移操作的基本单位,从而最大程度上保持其与应用整体行为特征的一致性。
(3)本发明从静态的数据放置工具以及动态迁移运行时系统两种角度设计,可以更全面地覆盖应用的执行流程,从而更有效地优化应用性能。
附图说明
图1为本发明的系统整体架构图;
图2为本发明中的应用静态分析方法的实现过程;
图3为本发明中的应用静态分析方法中定义的数据对象流图示例;
图4为本发明中的数据静态放置方法的实现原理;
图5为本发明中的运行时动态迁移机制的实现原理。
具体实施方式
如图1所示的系统构架图可知,本发明提出一种针对异构内存与多类型应用混合部署场景的数据放置与迁移方法,由应用静态分析方法、数据静态放置方法以及运行时动态迁移机制组成。整体实现过程如下:
(一)应用静态分析方法:用于实现应用数据对象的提取、分析以及逻辑划分;分析应用程序源代码,提取出所有数据对象;基于各个函数之间通过各种数据对象进行信息传递这一前提,以函数作为评估数据对象之间依赖关系的媒介,以数据对象是否是该函数的输入或输出以及数据量的大小作为二者是否存在依赖关系的依据,生成对应的数据对象流图;基于数据对象流图,量化函数与相关的数据对象之间的依赖度;将依赖紧密的部分数据对象划分为一个逻辑数据对象,作为后续进行数据放置与动态迁移的基本单位;而针对延迟攸关应用以及批处理应用,基于各自在应用输入上的不同特性,设计不同的逻辑数据对象划分机制;应用静态分析方法最终会生成与目标应用程序对应的一个逻辑数据对象集合。
(二)数据静态放置方法:用于实现对逻辑数据对象的敏感度分析以及数据对象静态放置策略的生成;以应用静态分析方法提供的逻辑数据对象集合作为输入,定义带宽敏感度以及延迟敏感度,分别代表逻辑数据对象对内存带宽以及内存延迟的敏感程度;对逻辑数据对象集合中的所有逻辑数据对象分别进行带宽敏感度和延迟敏感度分析,得出单个逻辑数据对象的敏感类型,并确定单个逻辑数据对象对应的放置策略;针对HBM高带宽、高访问延迟以及DDR低带宽、低访问延迟的特性,规定带宽敏感型数据对象优先放置于HBM,延迟敏感型数据对象优先放置于DDR;基于延迟攸关应用与批处理应用的不同性能需求与特性,提供两种不同的敏感度分析策略;待全部逻辑数据对象分析完毕后,基于所有敏感度数据,进行全局分析,生成目标应用最终的数据对象静态放置策略表。
(三)运行时动态迁移机制:用于在应用运行过程中,利用硬件性能取样工具提供的数据实时分析应用性能状况,并及时动态地对相关应用的逻辑数据对象进行迁移;在应用部署完成开始运行时,根据数据静态放置方法提供的放置策略表进行数据对象的初始放置;基于硬件性能取样工具提供的关于cache的相关数据,分析延迟攸关应用的行为特征并评估其处于idle阶段或者处于active阶段;依据延迟攸关应用所处的阶段,以优先保证延迟攸关应用的QoS为首要原则,制定相应的数据对象迁移策略;当延迟攸关应用由active阶段转变为idle阶段时,需要根据上一个active阶段延迟攸关应用的性能数据对延迟攸关应用相关数据对象的放置策略进行调整;同时,针对应用间的公平性问题,通过对比数据静态放置方法提供的各个逻辑数据对象的初始放置策略与实际放置位置,评估所有批处理应用中性能受损最严重的应用,对与该应用相关的逻辑数据对象进行动态迁移;而当延迟攸关应用由idle阶段转变为active阶段时,需要根据前一个idle阶段调整的放置策略对延迟攸关应用的逻辑数据对象进行动态迁移。
上述各组成部分的实现原理及过程如下:
1.应用静态分析方法的实现
该方法的实现过程如图2所示:
(1)扫描应用程序源代码,提取数据对象,并生成数据对象流图。
(2)数据对象流图是整个静态分析的基础。其定义示例如图3所示。本发明基于各个函数之间通过各种数据对象进行信息传递这一前提,以函数作为评估数据对象之间依赖关系的媒介。数据对象流图以函数为中心,以数据对象是否是该函数的输入或输出以及数据量的大小作为是否存在依赖关系的依据,生成对应的数据对象流图。其中从数据对象出发,指向函数的单项箭头表明该数据对象为该函数的输入;反之则表明该数据对象为该函数的输出。对于批处理应用,因为其应用总输入已知,所以对应各个数据对象的数据量大小也随之确定;而延迟攸关应用的输入则一般不确定,所以数据对象流图无法确定其各个数据对象的数据量大小。
(3)数据对象流图依据函数与相关的数据对象之间的依赖关系来划分子图,每个子图包含的所有数据对象构成一个逻辑数据对象。而延迟攸关应用与批处理应用的具体划分算法则各不相同。
批处理应用:
Figure BDA0001822275770000071
数据对象A只作为函数的输入:其数据量大小用SizeA表示,设定阈值Yinput,当SizeA>Yinput时,将A与对应的函数划分在一个子图内;若存在循环访问属性,循环次数为n,则当
Figure BDA0001822275770000072
时,将A与对应的函数划分在一个子图内。
Figure BDA0001822275770000073
数据对象A只作为函数的输出:其数据量大小用SizeA表示,设定阈值Youtput,当SizeA>Youtput时,将A与对应的函数划分在一个子图内;若存在循环访问属性,循环次数为n,则当
Figure BDA0001822275770000074
时,将A与对应的函数划分在一个子图内。
Figure BDA0001822275770000075
数据对象A既为函数的输入又为函数的输出:直接将A与该函数划分在一个子图内。
Figure BDA0001822275770000076
设划分出的子图包含的总数据量大小为Sizedata_object_sum,并规定阈值Sizemax,若Sizedata_object_sum>Sizemax,则需要进行进一步的拆分,直至子图对应的Sizedata_object_sum≤Sizemax
Figure BDA0001822275770000077
若一个数据对象同时包含在了多个子图内,则优先将其划分在与核心函数相关的数据量大小较大的子图内。
延迟攸关应用:
Figure BDA0001822275770000078
依据宏观的应用功能逻辑,将数据对象流图进行分组,生成初始子图集合。
Figure BDA0001822275770000081
在每组初始子图中,将函数和与其存在输出依赖的数据对象划分在一个子图内。
Figure BDA0001822275770000082
设一个子图内数据对象的总个数为Numbersum,并规定数据对象个数上限Numbermax,若Numbersum>Numbermax,则需要进一步拆分,直至该子图对应的Numbersum≤Numbermax
Figure BDA0001822275770000083
若一个数据对象同时包含在了多个子图内,则运用随机算法决定其归属的子图。
2.数据静态放置方法的实现
本方法的实现原理如图4所示,具体实现原理如下:
(1)首先定义逻辑数据对象的延迟敏感度:通过改变实验部署环境下存储器的访问延迟而测试得到的目标逻辑数据对象单位大小下的访存延迟改变比例。其形式化定义如下:
Figure BDA0001822275770000084
Figure BDA0001822275770000085
其中Latency(s,A)表示访存指令s访问逻辑数据对象A所消耗的CPU周期数,C(A)为N次实验取平均值,即平均访存延迟。而Cremote(A),Clocal(A)分别代表在改变存储器访问延迟前后得到的平均访存延迟。LS(A)代表访存延迟改变比例,即延迟敏感度。
定义逻辑数据对象的带宽敏感度:通过改变处理访问该逻辑数据对象请求的处理器核心数目而测试得到的目标逻辑数据对象的访存延迟改变比例。其中考虑到数据移动产生的带宽开销以及HBM的容量,针对批处理应用,需要对访存延迟改变比例进行单位化,即除以目标数据逻辑对象的大小。对于延迟攸关应用,因为其对QoS的高要求性,则不需要单位化。带宽敏感度形式化定义如下:
Figure BDA0001822275770000091
其中Cmulti(A)代表多核处理访存请求时得到的目标逻辑数据对象的平均访存延迟,Cone(A)代表单核处理访存请求时得到的目标逻辑数据对象的平均访存延迟。BS(A)代表访存延迟改变比例,即带宽敏感度。
(2)对逻辑数据对象进行敏感度分析,之后依据敏感度类型判定策略进行敏感类型判定。这里延迟攸关应用与批处理应用的处理流程各不相同。
批处理应用:
Figure BDA0001822275770000092
针对应用静态分析方法提供的所有初始逻辑数据对象,分别进行带宽敏感度与延迟敏感度分析。
Figure BDA0001822275770000093
测试带宽敏感度时,考虑到数据移动产生的带宽开销以及HBM的容量,需要除以目标数据逻辑对象的大小进行单位化;延迟敏感度则不需要进行单位化。
Figure BDA0001822275770000094
规定带宽敏感型阈值BSbatch,目标逻辑数据对象A的带宽敏感度为BS(A),若BS(A)>BSbatch,则将A划定为带宽敏感型;规定延迟敏感型阈值LSbatch,目标逻辑数据对象A的延迟敏感度为LS(A),若LS(A)>LSbatch,则将A划定为延迟敏感型;若目标逻辑数据对象A既为带宽敏感型,又为延迟敏感型,则基于批处理应用对带宽的高需求,将A划定为带宽敏感型。
Figure BDA0001822275770000095
带宽敏感型的目标逻辑数据对象优先放置在HBM,延迟敏感型则优先放置在DDR。
延迟攸关应用:
Figure BDA0001822275770000096
针对应用静态分析方法提供的所有初始逻辑数据对象,分别进行带宽敏感度与延迟敏感度分析。
Figure BDA0001822275770000097
带宽敏感度与延迟敏感度均不需要进行单位化。
Figure BDA0001822275770000098
规定带宽敏感型阈值BSLC,目标逻辑数据对象A的带宽敏感度为BS(A),若BS(A)>BSLS,则将A划定为带宽敏感型;规定延迟敏感型阈值LSLC,目标逻辑数据对象A的延迟敏感度为LS(A),若LS(A)>LSLC,则将A划定为延迟敏感型;若目标逻辑数据对象A既为带宽敏感型,又为延迟敏感型,则基于延迟攸关应用对QoS的高需求,将A划定为延迟敏感型。
Figure BDA0001822275770000101
带宽敏感型的目标逻辑数据对象优先放置在HBM,延迟敏感型则优先放置在DDR。
Figure BDA0001822275770000102
因为延迟攸关应用的数据对象流图信息不完整,即缺少数据量信息,其子图划分的效果得不到保障,所以需要为运行时机制进行动态数据迁移调整时准备预备方案:针对每个目标逻辑数据对象,运用遗传算法,对随机拆分得到的部分子集组合进行敏感度计算,记录下所有的中间解以及最终的最优解作为备用方案。在运用遗传算法进行迭代时,采用的评价公式定义如下:
Figure BDA0001822275770000103
其中,
Figure BDA0001822275770000104
代表该子集组合下所有逻辑数据对象的延迟敏感度加和,
Figure BDA0001822275770000105
代表该子集组合下所有逻辑数据对象的带宽敏感度加和。记当前迭代对应的子集组合的评价为Judge(A),此前的最优解对应的评价为Judgebest。若Judge(A)>Judgebest,则标记当前迭代对应的子集组合为最优解,并从该子集组合中随机挑选子集作为下一轮迭代的目标;否则,则从上一轮迭代的子集组合中再随机挑选其他子集组合进行新一轮迭代。
Figure BDA0001822275770000106
因为延迟攸关应用总体输入的不确定性,即用户操作的随机性,在不同输入负载下,延迟攸关应用中各个数据对象表现出的敏感类型可能是不同的。所以需要在低、高两种负载类型下进行测试与敏感度分析。
(3)针对所有敏感度数据,计算生成全局放置策略:
Figure BDA0001822275770000111
所有带宽敏感型的逻辑数据对象要优先放置在HBM。但因为HBM容量有限,所以采用背包问题的处理思想解决针对带宽敏感型逻辑数据对象的放置问题:将HBM视为容量为Weight的背包,逻辑数据对象A视为物品,其带宽敏感度为物品的价值Value(A),其数据量大小为物品容量Weight(A)。寻求的目标为在满足
Figure BDA0001822275770000112
的前提下,使得
Figure BDA0001822275770000113
最大。最终求得的集合即为应放置在HBM中的所有逻辑数据对象。
Figure BDA0001822275770000114
将剩余的逻辑数据对象全部放入DDR。
Figure BDA0001822275770000115
对内存系统进行逻辑划分,每个逻辑内存区域由一部分HBM以及一部分DDR组成。进行数据对象放置时,规定每个逻辑内存区域放置一个延迟攸关应用以及若干个批处理应用对应的逻辑数据对象。
(4)数据静态放置方法最终生成一份数据对象静态放置策略表,包括逻辑数据对象的编号、类型(即属于延迟攸关应用或批处理应用以及为带宽敏感型或延迟敏感型)、初始放置位置以及实际的放置位置等信息。
(5)同时生成一份延迟攸关应用放置策略备用方案表,记录所有初始逻辑数据对象通过遗传算法得出的部分子集组合的放置策略。该备用方案表为后续的运行时动态迁移机制进行放置策略调整时提供查询依据。
3.运行时动态迁移机制的实现
运行时动态迁移机制的实现原理如图5所示,本机制用于在应用运行过程中保证延迟攸关应用的服务质量以及批处理应用之间的公平性。具体实现过程如下:
(1)利用硬件性能采样工具提供的最后一级cache(Last Level Cache,LLC)未命中数量等相关性能数据,判定延迟攸关应用的状态,即延迟攸关应用处于idle阶段或者处于active阶段;处于idle阶段说明延迟攸关应用此时处于低负载状态,active阶段则说明延迟攸关应用处于高负载状态;以这一状态信息驱动整个运行时动态迁移机制的运行。
(2)定义LC-change原则:当应用的整体负载量变化时,若一个逻辑数据对象由带宽敏感型变为了延迟敏感型,则需要将其由HBM移动至DDR。此时可以将该逻辑数据对象与和其同处一个逻辑内存区域的批处理应用的相关逻辑数据对象进行位置交换。
(3)当延迟攸关应用由active转为idle阶段时:
Figure BDA0001822275770000121
当判定延迟攸关应用变为idle阶段时,首先依据LC-change原则进行调整。
Figure BDA0001822275770000122
若前一active阶段,延迟攸关应用的QoS未达到标准,则需要对高负载下的放置策略进行调整:选取产生LLC未命中数最多的内存区域中的逻辑数据对象,选取该逻辑数据对象对应的备用方案表中的当前最优解,作为新的放置策略应用在下一active阶段,同时将该最优解标记为已使用。
Figure BDA0001822275770000123
针对批处理应用间的公平性问题(即系统中如果某个或多个应用的性能需求长时间得不到满足,整个系统的性能评价会因此大幅下降),制定相应策略以尽可能均衡地满足所有批处理应用的需求:评估处于同一逻辑内存单元的各个批处理应用的性能受损程度,即各个批处理应用包含的逻辑数据对象的初始放置位置与当前实际放置位置的匹配程度;对匹配程度最差的批处理应用包含的逻辑数据对象进行动态迁移,具体操作是将未放入初始放置位置的逻辑数据对象迁移至初始位置;同时为避免额外的占用内存空间,可将这些逻辑数据对象与性能受损最小的批处理应用包含的逻辑数据对象进行位置交换。
(4)延迟攸关应用由idle转为active阶段时:
Figure BDA0001822275770000124
首先依据LC-change原则以及在前一idle阶段进行调整后的延迟攸关应用放置策略,即参照放置策略表以及备用方案表,对延迟攸关应用的相关逻辑数据对象进行相应拆分,并实时迁移至应放置的内存位置。
Figure BDA0001822275770000125
当通过硬件性能取样工具监测到延迟攸关应用对应的逻辑内存区域存在严重的争用现象时,具体体现为该逻辑内存区域内的LLC未命中数明显高于其他逻辑内存区域,则立刻查找出当前逻辑内存区域内延迟攸关应用中未按照初始放置策略放置的逻辑数据对象,将其动态迁移至应放置的内存位置。此时为减少额外占用内存空间,可将该逻辑数据对象与同处一个逻辑内存区域内的批处理应用中未按照初始放置策略放置的逻辑数据对象进行位置交换。
本发明未详细阐述部分属于本领域公知技术。
以上所述,仅为本发明部分具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域的人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

Claims (4)

1.一种针对异构内存与多类型应用混合部署场景的数据放置与迁移方法,其特征包括三部分:应用静态分析方法、数据静态放置方法和运行时动态迁移机制:
应用静态分析方法:用于实现应用数据对象的提取、分析以及逻辑划分;分析应用程序源代码,提取出所有数据对象;基于各个函数之间通过各种数据对象进行信息传递这一前提,以函数作为评估数据对象之间依赖关系的媒介,以数据对象是否是该函数的输入或输出以及数据量的大小作为二者是否存在依赖关系的依据,生成对应的数据对象流图;基于数据对象流图,量化函数与相关的数据对象之间的依赖度;将依赖紧密的部分数据对象划分为一个逻辑数据对象,作为后续进行数据放置与动态迁移的基本单位;而针对延迟攸关应用以及批处理应用,基于各自在应用输入上的不同特性,设计不同的逻辑数据对象划分机制;应用静态分析方法最终会生成与目标应用程序对应的一个逻辑数据对象集合;
数据静态放置方法:用于实现对逻辑数据对象的敏感度分析以及数据对象静态放置策略的生成;以应用静态分析方法提供的逻辑数据对象集合作为输入,定义带宽敏感度以及延迟敏感度,分别代表逻辑数据对象对内存带宽以及内存延迟的敏感程度;对逻辑数据对象集合中的所有逻辑数据对象分别进行带宽敏感度和延迟敏感度分析,得出单个逻辑数据对象的敏感类型,并确定单个逻辑数据对象对应的放置策略;针对高带宽内存(HighBandwidth Memory,HBM)高带宽、高访问延迟以及双倍速率(Double Data Rate,DDR)存储器低带宽、低访问延迟的特性,规定带宽敏感型数据对象优先放置于HBM,延迟敏感型数据对象优先放置于DDR;基于延迟攸关应用与批处理应用的不同性能需求与特性,提供两种不同的敏感度分析策略;待全部逻辑数据对象分析完毕后,基于所有敏感度数据,进行全局分析,生成目标应用最终的数据对象静态放置策略表;
运行时动态迁移机制:用于在应用运行过程中,利用硬件性能取样工具提供的数据实时分析应用性能状况,并及时动态地对相关应用的逻辑数据对象进行迁移;在应用部署完成开始运行时,根据数据静态放置方法提供的放置策略表进行数据对象的初始放置;基于硬件性能取样工具提供的关于高速缓存(以下简称cache)的相关数据,分析延迟攸关应用的行为特征并评估其处于空闲(以下简称idle)阶段或者处于活跃(以下简称active)阶段;依据延迟攸关应用所处的阶段,以优先保证延迟攸关应用的服务质量(Quality ofService,QoS)为首要原则,制定相应的数据对象迁移策略;当延迟攸关应用由active阶段转变为idle阶段时,需要根据上一个active阶段延迟攸关应用的性能数据对延迟攸关应用相关数据对象的放置策略进行调整;同时,针对应用间的公平性问题,通过对比数据静态放置方法提供的各个逻辑数据对象的初始放置策略与实际放置位置,评估所有批处理应用中性能受损最严重的应用,对与该应用相关的逻辑数据对象进行动态迁移;而当延迟攸关应用由idle阶段转变为active阶段时,需要根据前一个idle阶段调整的放置策略对延迟攸关应用的逻辑数据对象进行动态迁移。
2.根据权利要求1所述的一种针对异构内存与多类型应用混合部署场景的数据放置与迁移方法,其特征在于:所述应用静态分析方法实现过程:
(1)扫描应用程序源代码,提取数据对象,并生成数据对象流图;
(2)数据对象流图是整个应用静态分析的基础;基于各个函数之间通过各种数据对象进行信息传递这一前提,以函数作为评估数据对象之间依赖关系的媒介,以数据对象是否是该函数的输入或输出以及数据量的大小作为二者是否存在依赖关系的依据,生成对应的数据对象流图;其中从数据对象出发,指向函数的单项箭头表明该数据对象为该函数的输入;反之则表明该数据对象为该函数的输出;而针对批处理应用,输入与输出关系还具有数据量大小属性,可用于后续的逻辑数据对象划分;
(3)数据对象流图依据函数与相关的数据对象之间的依赖关系来划分子图,每个子图包含的所有数据对象构成一个逻辑数据对象;而针对延迟攸关应用以及批处理应用,基于各自在应用总输入上的不同特性,设计不同的逻辑数据对象划分机制;其中批处理应用依据函数与数据对象间的输入、输出关系以及涉及的数据量大小进行划分,而延迟攸关应用则依据宏观的功能逻辑进行划分。
3.根据权利要求1中所述的一种针对异构内存与多类型应用混合部署场景的数据放置与迁移方法,其特征在于:所述数据静态放置方法实现过程:
(1)首先定义逻辑数据对象的延迟敏感度:改变实验部署环境下存储器的访问延迟,测试得到的目标逻辑数据对象单位大小下的访存延迟改变比例;定义逻辑数据对象的带宽敏感度:改变处理访问该逻辑数据对象的处理器核心数目,测试得到的目标逻辑数据对象的访存延迟改变比例;其中批处理应用需要对访存延迟改变比例进行单位化,即除以目标数据逻辑对象的大小;延迟攸关应用则不需要单位化;
(2)对逻辑数据对象进行敏感度分析,之后依据敏感度类型判定策略进行敏感类型判定;首先针对HBM高带宽、高访问延迟以及DDR低带宽、低访问延迟的特性,规定带宽敏感型数据对象优先放置于HBM,延迟敏感型数据对象优先放置于DDR;而基于延迟攸关应用与批处理应用的不同性能需求与特性,提供两种不同的敏感度分析策略;其中,对于延迟攸关应用,需要针对每个目标逻辑数据对象,运用遗传算法,对随机拆分得到的部分子集组合进行敏感度计算,记录下所有的中间解以及最终的最优解作为备用方案;同时,在低应用负载以及高应用负载两种环境下,对延迟攸关应用的逻辑数据对象进行敏感度分析;
(3)针对所有敏感度数据,计算生成全局放置策略;首先利用背包问题的解决思想为优先放置于HBM中的逻辑数据对象生成放置策略,并将剩余的逻辑数据对象全部放入DDR;对内存系统进行逻辑划分,每个逻辑内存区域由一部分HBM以及一部分DDR组成;进行数据对象放置时,规定每个逻辑内存区域放置一个延迟攸关应用以及若干个批处理应用对应的逻辑数据对象;
(4)数据静态放置方法最终生成一份数据对象静态放置策略表,包括逻辑数据对象的编号、属于延迟攸关应用或批处理应用以及是带宽敏感型或延迟敏感型、初始放置位置以及实际的放置位置信息;
(5)同时生成一份延迟攸关应用放置策略备用方案表,记录所有初始逻辑数据对象通过遗传算法得出的部分子集组合的放置策略;该备用方案表为后续的运行时动态迁移机制进行放置策略调整时提供查询依据。
4.根据权利要求1所述的一种针对异构内存与多类型应用混合部署场景的数据放置与迁移方法,其特征在于:所述运行时动态迁移机制实现过程:
(1)利用硬件性能采样工具提供的最后一级cache(Last Level Cache,LLC)未命中数量这一性能数据,判定延迟攸关应用的状态,即延迟攸关应用处于idle阶段或者处于active阶段;处于idle阶段说明延迟攸关应用此时处于低负载状态,active阶段则说明延迟攸关应用处于高负载状态;以这一状态信息驱动整个运行时动态迁移机制的运行;
(2)定义LC-change原则:当应用的整体负载量变化时,若一个逻辑数据对象由带宽敏感型变为了延迟敏感型,则需要将其由HBM移动至DDR;
(3)当延迟攸关应用由active转为idle阶段时,首先依据LC-change原则进行调整;若前一active阶段,延迟攸关应用的QoS未达到标准,则需要选取产生LLC未命中数最多的内存区域中的逻辑数据对象,并基于该逻辑数据对象对应的备用方案表,对高负载下的放置策略进行调整以应用于下一active阶段;针对批处理应用间的公平性问题,通过对比数据静态放置方法提供的各个逻辑数据对象的初始放置策略与实际放置位置,依据其匹配程度评估各个批处理应用的性能受损程度,并对性能受损最严重的批处理应用对应的逻辑数据对象进行动态迁移;
(4)延迟攸关应用由idle转为active阶段时,首先依据LC-change原则以及在前一idle阶段进行调整后的延迟攸关应用放置策略,对延迟攸关应用的相关逻辑数据对象进行相应拆分,并实时迁移至应放置的内存位置;同时,当通过硬件性能取样工具监测到延迟攸关应用对应的逻辑内存区域存在严重的争用现象时,立即对延迟攸关应用的相关逻辑数据对象进行动态迁移。
CN201811170532.4A 2018-10-09 2018-10-09 一种针对异构内存与多类型应用混合部署场景的数据放置与迁移方法 Expired - Fee Related CN109388486B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811170532.4A CN109388486B (zh) 2018-10-09 2018-10-09 一种针对异构内存与多类型应用混合部署场景的数据放置与迁移方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811170532.4A CN109388486B (zh) 2018-10-09 2018-10-09 一种针对异构内存与多类型应用混合部署场景的数据放置与迁移方法

Publications (2)

Publication Number Publication Date
CN109388486A CN109388486A (zh) 2019-02-26
CN109388486B true CN109388486B (zh) 2021-08-24

Family

ID=65426690

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811170532.4A Expired - Fee Related CN109388486B (zh) 2018-10-09 2018-10-09 一种针对异构内存与多类型应用混合部署场景的数据放置与迁移方法

Country Status (1)

Country Link
CN (1) CN109388486B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112217940B (zh) * 2020-08-28 2021-12-24 波克科技股份有限公司 一种内存释放方法及相关装置
CN112346818B (zh) * 2020-11-02 2024-08-23 北京新媒传信科技有限公司 一种容器应用部署方法、装置、电子设备和存储介质
WO2022099446A1 (zh) * 2020-11-10 2022-05-19 华为技术有限公司 一种内存管理的方法以及相关装置
CN113238853B (zh) * 2021-06-15 2021-11-12 上海交通大学 基于函数中间表达的无服务器计算调度系统及方法
CN114782030B (zh) * 2022-06-24 2022-08-26 硕广达微电子(深圳)有限公司 一种基于大数据项目智能管理系统及方法
CN115080251B (zh) * 2022-08-23 2022-11-15 广州市宏方网络科技有限公司 一种基于云迁移平台的档案数据安全管理方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105739929A (zh) * 2016-01-29 2016-07-06 哈尔滨工业大学深圳研究生院 大数据向云端迁移时的数据中心的选择方法
CN106250240A (zh) * 2016-08-02 2016-12-21 北京科技大学 一种任务优化调度方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6732241B2 (en) * 2001-09-07 2004-05-04 Hewlett-Packard Development Company, L.P. Technique for migrating data between storage devices for reduced power consumption
US10437800B2 (en) * 2016-12-02 2019-10-08 International Business Machines Corporation Data migration using a migration data placement tool between storage systems based on data access

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105739929A (zh) * 2016-01-29 2016-07-06 哈尔滨工业大学深圳研究生院 大数据向云端迁移时的数据中心的选择方法
CN106250240A (zh) * 2016-08-02 2016-12-21 北京科技大学 一种任务优化调度方法

Also Published As

Publication number Publication date
CN109388486A (zh) 2019-02-26

Similar Documents

Publication Publication Date Title
CN109388486B (zh) 一种针对异构内存与多类型应用混合部署场景的数据放置与迁移方法
Viswanathan et al. {CLARINET}:{WAN-Aware} Optimization for Analytics Queries
US12130811B2 (en) Task-execution planning using machine learning
Ansel et al. Siblingrivalry: online autotuning through local competitions
CN108108245B (zh) 一种云平台宽节点科学工作流的混合型调度方法及系统
CN104050042B (zh) Etl作业的资源分配方法及装置
US20070143759A1 (en) Scheduling and partitioning tasks via architecture-aware feedback information
CN113821311A (zh) 任务执行方法及存储设备
Liu et al. Preemptive hadoop jobs scheduling under a deadline
Pathania et al. Defragmentation of tasks in many-core architecture
US11789902B2 (en) Incrementally improving clustering of cross partition data in a distributed data system
Feljan et al. Task allocation optimization for multicore embedded systems
CN114510319A (zh) 一种基于Kubernetes集群GPU空间共享的方法
CN114217930A (zh) 一种基于混合任务调度的加速器系统资源优化管理方法
Neuwirth et al. Using balanced data placement to address i/o contention in production environments
Yuan et al. Everest: GPU-Accelerated System For Mining Temporal Motifs
Zhu et al. A thread-oriented memory resource management framework for mobile edge computing
US9298505B2 (en) Time and space-deterministic task scheduling apparatus and method using multi-dimensional scheme
CN110415162B (zh) 大数据中面向异构融合处理器的自适应图划分方法
Simhadri Program-centric cost models for locality and parallelism
Li et al. Topology-aware scheduling on blue waters with proactive queue scanning and migration-based job placement
CN108009074B (zh) 一种基于模型和动态分析的多核系统实时性评估方法
Li et al. Reducing fragmentation on 3d torus-based hpc systems using packing-based job scheduling and job placement reconfiguration
Zhang et al. Task scheduling algorithm based-on QoS constrains in cloud computing
CN109815249A (zh) 基于内存映射的大数据文件快速并行提取方法

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20210824

CF01 Termination of patent right due to non-payment of annual fee