CN110287014A - 一种计算机系统内存带宽调度方法、系统及存储介质 - Google Patents

一种计算机系统内存带宽调度方法、系统及存储介质 Download PDF

Info

Publication number
CN110287014A
CN110287014A CN201910566072.5A CN201910566072A CN110287014A CN 110287014 A CN110287014 A CN 110287014A CN 201910566072 A CN201910566072 A CN 201910566072A CN 110287014 A CN110287014 A CN 110287014A
Authority
CN
China
Prior art keywords
current limliting
bandwidth
program
parameter
programs
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
Application number
CN201910566072.5A
Other languages
English (en)
Other versions
CN110287014B (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.)
Peking University Shenzhen Graduate School
Peng Cheng Laboratory
Original Assignee
Peking University Shenzhen Graduate School
Peng Cheng Laboratory
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 Peking University Shenzhen Graduate School, Peng Cheng Laboratory filed Critical Peking University Shenzhen Graduate School
Priority to CN201910566072.5A priority Critical patent/CN110287014B/zh
Publication of CN110287014A publication Critical patent/CN110287014A/zh
Application granted granted Critical
Publication of CN110287014B publication Critical patent/CN110287014B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • 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
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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/5016Allocation 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及数据处理技术领域,具体涉及一种计算机系统内存带宽调度方法、系统及存储介质,其中方法包括:获取当前系统物理核上运行的每个程序的性能信息和其所占用的初始带宽;对所有程序按照其所占用的初始带宽的大小进行聚类处理,将其分成带宽污染型和带宽敏感型,对带宽污染型中的至少部分程序进行限流处理,判断限流处理后系统整体的性能是否提高,若否则结束调度;若限流处理后系统整体的性能有提高,则对带宽敏感型中所有程序重新进行聚类处理,重复上述步骤,直到结束调度。本申请的内存带宽调度方法优先对占用内存带宽较大的程序进行限流,保证了多核计算机系统可以同时部署多个程序,且提高了系统整体的性能。

Description

一种计算机系统内存带宽调度方法、系统及存储介质
技术领域
本发明涉及数据处理技术领域,具体涉及一种计算机系统内存带宽调度方法、系统及存储介质。
背景技术
在数据处理时,为了提高计算和存储资源的利用率,一台多核处理器上往往部署着多种同时运行的应用程序。它们在提高资源利用率的同时也在共享资源上产生了严重的资源竞争,其中内存带宽上的竞争与系统的整体性能密切相关。然而真实机器对内存带宽的竞争问题一直都缺乏直接有效的硬件支持,导致一些占用内存带宽较大的程序往往无法与其他高优先级程序同时部署,如果能实现对物理核上运行的占用内存较大的程序进行有效的限流,这样就能保证其他高优先级程序也能同时运行,因此如何能实现对多核上运行的应用程序进行内带宽调节,以保证同时优先级高的应用程序能同时部署,同时保证计算机系统的整体性能是计算机领域急需解决的技术问题。
发明内容
本申请提供一种计算机系统内存带宽调度方法和系统,目的在于当系统的物理核上同时运行多个程序时,通过对其中至少部分程序所占用的内存带宽进行优化,以提高系统整体的性能。
一种计算机系统内存带宽调度方法,包括:
步骤1:获取当前系统物理核上运行的每个程序的性能信息和其所占用的初始带宽;
步骤2:对所有程序按照其所占用的初始带宽的大小进行聚类处理,将其分成带宽污染型和带宽敏感型,所述带宽污染型中所有应用程序所占用的带宽的平均值大于所述带宽敏感型中的所有应用程序所占用的带宽的平均值;
步骤3:对所述带宽污染型中的至少部分程序进行限流处理,使所述至少部分程序在限流处理后所占用的带宽均小于其初始带宽;
步骤4:获取限流处理后物理核上运行的每个程序的性能信息,根据限流处理前后每个程序的性能信息,判断限流处理后系统整体的性能是否提高,若否则结束调度;
步骤5:若限流处理后系统整体的性能有提高,则对所述带宽敏感型中所有程序重新进行聚类处理,形成新的带宽污染型和带宽敏感型,并返回所述步骤3,直到结束调度。
进一步的,所述对所述带宽敏感型中所有程序重新进行聚类处理之前还包括:
判断形成的带宽敏感型中程序个数是否小于或等于两个,若是则结束调度。
其中,所述对所述带宽污染型中的至少部分程序进行限流处理,使所述至少部分程序在限流处理后所占用的带宽均小于其初始带宽包括:
采用一个预设限流参数对所述带宽污染型中至少部分程序进行限流,使得所述带宽污染型中至少部分程序所占用的带宽为其初始带宽的一定比例;
获取限流后物理核上运行的所有程序的性能信息,判断限流后系统整体的性能是否提高,若是则减小当前的限流参数,否则增大当前的限流参数,并采用减少或增大后的限流参数对所述带宽污染型中至少部分程序进行限流;
其中,所述限流参数越大表示所述程序所占用的带宽越大。
其中,所述对所述带宽污染型中的至少部分程序进行限流处理,使所述至少部分程序在限流处理后所占用的带宽均小于其初始带宽包括:
采用预设第一限流参数对所述带宽污染型中所有程序进行限流;
获取限流后物理核上运行的所有程序的性能信息,判断限流后系统整体的性能是否提高,若是则采用第二限流参数对带宽污染型中所有程序进行限流,否则采用的第三限流参数对带宽污染型中所有程序进行限流;
其中,所述第一限流参数大于第二限流参数并小于第三限流参数,所述限流参数越大表示所述程序所占用的带宽越大。
进一步的,在采用第二限流参数对带宽污染型中所有程序进行限流后还包括:
获取采用第二限流参数进行限流后物理核上运行的所有程序的性能信息,判断限流后系统整体的性能是否提高,若是则采用第四限流参数对带宽污染型中所有程序进行限流,否则采用第五限流参数对带宽污染型中所有程序进行限流;
在采用第三限流参数对带宽污染型中所有程序进行限流后还包括:
获取采用第三限流参数进行限流后物理核上运行的所有程序的性能信息,判断限流后系统整体的性能是否提高,若是则采用第六限流参数对带宽污染型中所有程序进行限流,否则采用第七限流参数对带宽污染型中所有程序进行限流;
其中,所述第二限流参数大于第四限流参数并小于第五限流参数,所述第三限流参数大于第六限流参数并小于第七限流参数。
其中,所述判断限流后系统整体的性能是否提高包括:
求取系统的物理核上运行的每个程序限流后和限流前性能的比值,将所有比值累加并求取平均比值,若所述平均比值大于1则认为所述系统整体的性能有提高;
所述每个程序的性能为该程序在每个时钟周期运行的指令数。
其中,所述聚类处理时采用标准的k-means聚类算法,其中k=2。
其中,所述第一限流参数为40%、第二限流参数为20%、第三限流参数为60%、第四限流参数为10%、第五限流参数为30%、第六限流参数为50%、第七限流参数为90%;
所述采用限流参数对带宽污染型中所有程序进行限流包括:将限流参数和每个程序的初始带宽的乘积作为新的限流参数,将每个程序所占用的带宽设置为新的限流参数。
一种计算机系统内存带宽调度系统,包括:
存储器,用于存储程序;
处理器,用于通过执行所述存储器存储的程序以实现如上所述的方法。
一种计算机可读存储介质,包括程序,所述程序能够被处理器执行以实现如上所述的方法。
依据上述实施例的计算机系统内存带宽调度方法,首先获取物理核上每个程序的性能信息和所占用的初始带宽,然后采用聚类算法根据所占用带宽的大小将所有程序分成带宽污染型和带宽敏感型,然后对带宽污染型中的所有程序优先进行限流处理,限流处理完成后判断限流后系统整体的性能是否有所提高,若是则继续将聚类形成的带宽敏感型中所有程序重新进行聚类处理,形成新的带宽污染型和带宽敏感型,继续对带宽污染型中的程序进行限流,这样优先对占用内存带宽较大的程序进行限流,保证了多核计算机系统可以同时部署多个程序,且提高了系统整体的性能。
附图说明
图1为本申请实施例内存带宽调度方法流程图;
图2为本申请实施例限流处理方法流程图;
图3为本申请实施例限流处理的二分搜索状态图;
图4为本申请实施例动态内存调度系统流程图;
图5为本申请实施例系统的性能优化效果图。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或者描述,这是为了避免本申请的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。
另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。
本文中为部件所编序号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。
在本发明实施例中,首先采用聚类算法根据计算机系统的物理核上运行的每个程序所占用的带宽进行聚类处理,将所有的程序分为带宽污染型和带宽敏感型,并对平均占用带宽比较大的带宽污染型中的程序进行限流处理,限流后判断系统整体的性能是否有提高,若有提高则继续对带宽敏感型中的所有程序进行聚类处理和限流处理,直到调度结束。这样通过优先占用带宽比较大的程序进行限流处理,保证了物理核上可以同时运行多个程序,且使得系统的整体性能得到提高。
另外,本发明实施例还提供了一种限流处理方法,每次限流后通过计算系统的整体性能是否提高来决定下一步的限流方向,直到确认使得系统性能最优的限流参数,这样和盲目或者试探性的限流处理方法相比,该限流处理方法使得系统计算量更小,优化速度更快,且保证了系统整体性能的提高。
实施例一:
请参考图1,本实施例提供一种计算机系统内存带宽调度方法,该方法包括:
S101:获取当前系统物理核上运行的每个程序的性能信息和其所占用的初始带宽;初始时刻获取当前计算系统的物理核上运行的总程序的个数N以及每个程序的性能信息,同时获取当前每个程序所占用的初始带宽,将这些信息作为用于计算系统整体性能的初始基准。本实施例中用IPC(程序每个时钟周期运行的指令数)来表示程序的性能信息,例如,初始时刻检测到系统物理核上运行的所有程序的性能IPC′={IPC′1,IPC′2,…,IPC′N}其中,IPC′i表示第i个程序初始时刻的性能信息。其中,每个程序的性能信息和所占用的带宽通过Intel的MBM(内存带宽监控)技术获取。
S102:对所有程序按照其所占用的初始带宽的大小进行聚类处理,将其分成带宽污染型和带宽敏感型;其中,带宽污染型中所有应用程序所占用的带宽的平均值大于带宽敏感型中的所有应用程序所占用的带宽的平均值。本实施例通过Intel的内存带宽监控技术测量每个物理核上应用程序的性能IPC和它所占用的带宽BW,然后用标准的k-means算法对所有程序的组成的一维数据进行聚类处理,这里k=2。该过程将当前所有目标程序根据其所占内存带宽的相对差异聚为两类:带宽污染型和带宽敏感型。
S103:对带宽污染型中的至少部分程序进行限流处理,使至少部分程序在限流处理后所占用的带宽均小于其初始带宽。本实施例中为了减少系统的计算量,更快的进行限流处理,在一次限流处理过程中统一对带宽污染型中所有程序进行限流,采用同一限流参数对带宽污染型中每个程序进行限流,限流后带宽污染型中每个程序所占用的带宽均小于其初始带宽。当采用某一限流参数对带宽污染型中每个程序进行限流后系统整体的性能相比限流前有提高,则降低该限流参数继续限流,若限流后系统整体的性能相比限流前有降低,则增大限流参数,限流参数越大表示程序所占用的带宽越大。其中,在一次限流处理中,如图2,具体包括以下步骤:
S301:采用预设第一限流参数对带宽污染型中的所有程序进行限流;
S302:判断限流后系统整体的性能是否提高,若是则执行S303,若否则跳转至步骤307;
S303:采用预设第二限流参数对带宽污染型中的所有程序进行限流;
S304:判断限流后系统整体的性能是否提高;若是则执行步骤S305,否则跳转至步骤S306;
S305:采用预设第四限流参数对带宽污染型中的所有程序进行限流;
S306:采用预设第五限流参数对带宽污染型中的所有程序进行限流;
S307:采用预设第三限流参数对带宽污染型中的所有程序进行限流;
S308:判断限流后系统整体的性能是否提高;若是则执行步骤S3010,否则跳转至步骤S309;
S309:采用预设第七限流参数对带宽污染型中的所有程序进行限流;
S3010:采用预设第六限流参数对带宽污染型中的所有程序进行限流。
其中,限流参数越大表示程序所占用的带宽越大,第一限流参数大于第二限流参数并小于第三限流参数,第二限流参数大于第四限流参数并小于第五限流参数,第三限流参数大于第六限流参数并小于第七限流参数。具体的,本实施例中,第一限流参数为40%、第二限流参数为20%、第三限流参数为60%、第四限流参数为10%、第五限流参数为30%、第六限流参数为50%、第七限流参数为90%。
其中,采用限流参数对带宽污染型中所有程序进行限流包括:将限流参数和每个程序的初始带宽的乘积作为新的限流参数,将每个程序所占用的带宽设置为新的限流参数,例如采用第二限流参数20%,则将带宽污染型中所有程序的初始带宽乘以20%,得到新的限流参数,即新的带宽,然后将每个程序的带宽设置为新的带宽。
其中,判断限流后系统整体的性能是否提高包括:求取系统的物理核上运行的每个程序限流后和限流前性能的比值,将所有比值累加并求取平均比值,若平均比值大于1则认为系统整体的性能有提高,每个程序的性能为该程序在每个时钟周期运行的指令数。例如,初始时刻检测到系统物理核上运行的所有程序的性能IPC′={IPC′1,IPC′2,…,IPC′N},限流后系统物理核上运行的所有程序的性能为IPC={IPC1,IPC2,…,IPCN},通过下述公式(1)计算出用于评价系统总体性能的指标Weighted Speedup(加权加速比),即上述的平均比值,Weighted Speedup的值越大说明优化效果越好。
在没有实施任何内存带宽限流操作时,对于系统中的每个程序i来说,IPC′i=IPCi所以初始状态下Weighted Speedup=1,当系统的性能提高后Weighted Speedup>1,否则Weighted Speedup<1。我们将两次性能优化后的加权加速比之差定义为系统的Progress:
Progress=Weighted Speedup-Weighted Speedup′
其中,Weighted Speedup表示限流后系统的加权加速比,Weighted Speedup′表示限流前系统的加权加速比,若Progress>0则说明限流后系统整体的性能得到提高,则保留当前次限流操作,否则取消本次限流操作。例如,当前带宽污染型中包括M个程序,组成一个待限流的目标程序组W′={w′1,w′2,...,w′M},在实际限流过程,我们把M个目标程序当成整体,对它们中的每一个程序都采用相同的限流参数。请参照图3中的状态转移图,按照该图进行二分搜索寻找最大化系统性能的最优限流参数:首先将带宽污染型中每个程序的内存带宽限制为原带宽的40%,然后测量当前系统物理核上每个程序的性能IPC={IPC1,IPC2,…,IPCN},并与初始状态下系统中每个程序的性能IPC′进行比较计算出WeightedSpeedup和当前的Progress。若Progress<0,则再将带宽污染型中每个程序的带宽限制为原带宽的60%;否则将带宽污染型中每个程序的带宽限制为原来的20%。设置好新的限流参数后,继续测量当前每个程序的性能IPC并最终计算出新的Progress。最终根据新的Progress大小按照图三中的状态转移图选择新的限流参数。当限流参数为10%、30%、50%、90%时算法达到状态转移终点,对当前带宽污染型的限流参数搜索过程结束。在每次限流过程中,比较搜索路径上所有限流参数带来的性能收益,选择最优的一组参数作为该带宽污染型的最终限流参数。若存在一个参数使得系统整体性能提升则返回一个正信号,表示系统目前可能还有提升空间;若搜索路径上的所有限流参数都不能为系统带来性能提升则返回一个负信号,表示系统目前已无提升空间,则结束调度过程。
其中,在其他实施例中,在对带宽污染型中程序进行限流处理时,也可以不采用统一的限流方式,还可以对带宽污染型中的部分程序进行限流处理,若限流处理后,系统整体的性能提升到预设的目标性能,则结束调度。例如,对带宽污染型中所有程序按照其占用带宽的大小进行排序,然后从占用带宽最大的程序开始,依次进行限流处理,当对某个程序限流处理后,系统整体的性能提升到预定目标,则停止调度。其中对某个程序进行限流处理时方法和上述相同,限流参数设置也相同,此处不再赘述。
S104:判断限流处理后系统整体的性能是否提高,若是则说明系统整体性能还存在提高的空间,则继续进行下一步,若否则说明系统性能已经没有提高的可能,则结束调度。其中,判断系统整体的性能是否提高的方法和上述相同,此处不再赘述。
进一步的,还包括S105:判断形成的带宽敏感型中程序个数是否小于或等于两个,若是则结束调度;否则进行下一步。当带宽敏感型中程序个数只剩下两个或一个时则对这两个程序进行限流处理,对系统整体性能几乎没有影响,则结束调度。
S106:对带宽污染型中所有程序重新进行聚类处理,形成新的带宽污染型和带宽敏感型,返回步骤103。当对形成的带污染型程序进行限流处理后系统整体的性能有提高,表示系统整体的性能还有进一步提升的可能,则对剩下的带宽敏感型中的所有程序继续进行聚类处理和限流处理,直到系统性不再提高。
通过本实施例的内存带宽调度方法,如图4,实现了在线动态内存带宽调度系统。该系统在运行过程中每秒共经历4个阶段。第一阶段为监听阶段,负责监听并判断程序行为是否变化。具体操作为测量当前各程序的IPC并与上一秒的IPC做比较,若存在单个程序的IPC变化率超过50%则认为系统中程序的行为发生变化,需要重新对系统内存带宽进行调度。此时我们进入第二阶段。否则,等待至1秒结束后回到第一阶段。第二阶段为聚类阶段,负责根据上一阶段获得的各程序的带宽对所有程序进行聚类,将所有程序分为带宽污染型和带宽敏感型两类,具体过程见图1。完成聚类后进入第三阶段。第三阶段为限流阶段,利用图2所示的算法对第二阶段的带宽污染型程序实施限流,并在限流完成后计算当前系统的最优Progress。若最优Progress>0则说明系统内存带宽可能还有进一步优化的空间,此时我们回到第二阶段,对上一次聚类被标记为带宽敏感型的程序重新实施聚类。若最优Progress<0,则说明系统已经无法通过进一步调度内存带宽获得额外的性能提升,此时我们进入第四阶段。第四阶段为实施阶段,负责实施这一秒内找到的最优带宽调度方案。该阶段完成后,系统等待至1秒结束并重新回到第一阶段,准备开始下一秒的带宽调度过程。和现有的方法相比具有相比,具有以下优点:
1):通过采用聚类算法优先对占用内存较大的程序进行限流处理,同时处理时对带宽污染型程序统一进行限流处理,降低了带宽分配任务的复杂度,提高了调度效率。
2):在限流处理时,每次限流后根据系统整体性能的变化,可以确定下一步限流方向,提高了限流效率,同时限流方向都是向着系统整体性能更加优化的方向,保证了限流对系统性能的提高。
以下选取从SPEC CPU 2017中选择如下8个CPU Rate程序:
519.lbm_r,2×549.fotonik3d_r,527.cam4_r,531.deepsjeng_r,510.p arest_r,557.xz_r,520.omnetpp_r,将这8个分别依次绑定至8个物理核上同时运行。最初系统处于监听阶段,我们每隔1秒钟利用Intel MBM(内存带宽监控)技术测量一次每个程序的带宽占用值和它们的IPC(每个时钟周期运行的指令数)。如果存在单个程序的IPC在两次测量间隔内的变化率超过50%,我们则认为整个系统的访存模式变化需要重新分配带宽。首先我们将每个核上的带宽限流方案重新设置为默认的100%,即无限流控制。然后我们利用Intel MBM技术测量每个程序的初始带宽占用值和它们的IPC。然后采用聚类算法对8个程序进行聚类处理,对形成的带宽污染型中的程序按照上述方法进行限流处理,直到系统找到最优带宽限流方案,最后系统重新回到监听阶段。
本实施例以第一秒的限流处理过程为为例,先利用Intel MBM测出每个物理核上程序的带宽和性能依次为BW={3404,2391,2397,449,80,507,307,451}(单位MB/s),IPC={0.90,0.63,0.63,1.29,1.39,1.41,0.38,0.20}。然后再根据BW的值对所有程序实施启发式层次聚类。所有程序首先被分为两类,带宽污染型的三个程序:519.lbm_r和2×549.fotonik3d_r。带宽敏感型的5个程序:527.cam4_r,531.deepsjeng_r,510.parest_r,557.xz_和520.omnetpp_r。我们将带宽污染型的程序设为限流目标,并将这3个程序当作一个整体进行限流。首先将它们的限流参数设为40%,然后测量优化后每个程序的IPC并计算系统的Progress,得到Progress>0,于是按图3的状态转移图继续将这3个程序的限流参数设为20%,依然发现Progress>0,于是最终将三者的限流参数设为10%。限制完带宽污染型的三个程序之后,我们将剩下的5个带宽敏感型程序设置为新的限流目标。我们根据它们占用的带宽大小重新运行启发式层次聚类算法,将这5个程序分为新的两类,带宽污染型的527.cam4_r,510.parest_r,557.xz_r,520.omnetpp_r和带宽敏感型的531.deepsjeng_r。我们对新的4个带宽污染型程序继续实施上述限流处理,发现系统的性能不再提高,因此也不再对其进行限流处理。至此系统在第1秒的运行过程中内存带宽的调度过程结束。如图5所示,我们的带宽调度系统最终提高了26.25%的系统性能。
实施例二:
本实施例提供一种计算机系统内存带宽调度系统,该系统包括:
存储器,用于存储程序;
处理器,用于通过执行存储器存储的程序以实现如实施例1提供的内存带宽调度方法。
实施例三:
本实施例提供一种计算机可读存储介质,该存储介质包括程序,该程序能够被处理器执行以实现实施例1所述内存带宽调度的方法。
以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属技术领域的技术人员,依据本发明的思想,还可以做出若干简单推演、变形或替换。

Claims (10)

1.一种计算机系统内存带宽调度方法,其特征在于,包括:
步骤1:获取当前系统物理核上运行的每个程序的性能信息和其所占用的初始带宽;
步骤2:对所有程序按照其所占用的初始带宽的大小进行聚类处理,将其分成带宽污染型和带宽敏感型,所述带宽污染型中所有应用程序所占用的带宽的平均值大于所述带宽敏感型中的所有应用程序所占用的带宽的平均值;
步骤3:对所述带宽污染型中的至少部分程序进行限流处理,使所述至少部分程序在限流处理后所占用的带宽均小于其初始带宽;
步骤4:获取限流处理后物理核上运行的每个程序的性能信息,根据限流处理前后每个程序的性能信息,判断限流处理后系统整体的性能是否提高,若否则结束调度;
步骤5:若限流处理后系统整体的性能有提高,则对所述带宽敏感型中所有程序重新进行聚类处理,形成新的带宽污染型和带宽敏感型,并返回所述步骤3,直到结束调度。
2.如权利要求1所述的调度方法,其特征在于,所述对所述带宽敏感型中所有程序重新进行聚类处理之前还包括:
判断形成的带宽敏感型中程序个数是否小于或等于两个,若是则结束调度。
3.如权利要求1所述的调度方法,其特征在于,所述对所述带宽污染型中的至少部分程序进行限流处理,使所述至少部分程序在限流处理后所占用的带宽均小于其初始带宽包括:
采用一个预设限流参数对所述带宽污染型中至少部分程序进行限流,使得所述带宽污染型中至少部分程序所占用的带宽为其初始带宽的一定比例;
获取限流后物理核上运行的所有程序的性能信息,判断限流后系统整体的性能是否提高,若是则减小当前的限流参数,否则增大当前的限流参数,并采用减少或增大后的限流参数对所述带宽污染型中至少部分程序进行限流;
其中,所述限流参数越大表示所述程序所占用的带宽越大。
4.如权利要求1所述的调度方法,其特征在于,所述对所述带宽污染型中的至少部分程序进行限流处理,使所述至少部分程序在限流处理后所占用的带宽均小于其初始带宽包括:
采用预设第一限流参数对所述带宽污染型中所有程序进行限流;
获取限流后物理核上运行的所有程序的性能信息,判断限流后系统整体的性能是否提高,若是则采用第二限流参数对带宽污染型中所有程序进行限流,否则采用的第三限流参数对带宽污染型中所有程序进行限流;
其中,所述第一限流参数大于第二限流参数并小于第三限流参数,所述限流参数越大表示所述程序所占用的带宽越大。
5.如权利要求4所述的调度方法,其特征在于,在采用第二限流参数对带宽污染型中所有程序进行限流后还包括:
获取采用第二限流参数进行限流后物理核上运行的所有程序的性能信息,判断限流后系统整体的性能是否提高,若是则采用第四限流参数对带宽污染型中所有程序进行限流,否则采用第五限流参数对带宽污染型中所有程序进行限流;
在采用第三限流参数对带宽污染型中所有程序进行限流后还包括:
获取采用第三限流参数进行限流后物理核上运行的所有程序的性能信息,判断限流后系统整体的性能是否提高,若是则采用第六限流参数对带宽污染型中所有程序进行限流,否则采用第七限流参数对带宽污染型中所有程序进行限流;
其中,所述第二限流参数大于第四限流参数并小于第五限流参数,所述第三限流参数大于第六限流参数并小于第七限流参数。
6.如权利要求1、3、4或5所述的调度方法,其特征在于,所述判断限流后系统整体的性能是否提高包括:
求取系统的物理核上运行的每个程序限流后和限流前性能的比值,将所有比值累加并求取平均比值,若所述平均比值大于1则认为所述系统整体的性能有提高;
所述每个程序的性能为该程序在每个时钟周期运行的指令数。
7.如权利要求1所述的调度方法,其特征在于,所述聚类处理时采用标准的k-means聚类算法,其中k=2。
8.如权利要求5所述的调度方法,其特征在于,所述第一限流参数为40%、第二限流参数为20%、第三限流参数为60%、第四限流参数为10%、第五限流参数为30%、第六限流参数为50%、第七限流参数为90%;
所述采用限流参数对带宽污染型中所有程序进行限流包括:将限流参数和每个程序的初始带宽的乘积作为新的限流参数,将每个程序所占用的带宽设置为新的限流参数。
9.一种计算机系统内存带宽调度系统,其特征在于,包括:
存储器,用于存储程序;
处理器,用于通过执行所述存储器存储的程序以实现如权利要求1-8中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,包括程序,所述程序能够被处理器执行以实现如权利要求1-8中任一项所述的方法。
CN201910566072.5A 2019-06-27 2019-06-27 一种计算机系统内存带宽调度方法、系统及存储介质 Active CN110287014B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910566072.5A CN110287014B (zh) 2019-06-27 2019-06-27 一种计算机系统内存带宽调度方法、系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910566072.5A CN110287014B (zh) 2019-06-27 2019-06-27 一种计算机系统内存带宽调度方法、系统及存储介质

Publications (2)

Publication Number Publication Date
CN110287014A true CN110287014A (zh) 2019-09-27
CN110287014B CN110287014B (zh) 2022-12-09

Family

ID=68007726

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910566072.5A Active CN110287014B (zh) 2019-06-27 2019-06-27 一种计算机系统内存带宽调度方法、系统及存储介质

Country Status (1)

Country Link
CN (1) CN110287014B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112965885A (zh) * 2019-12-12 2021-06-15 中科寒武纪科技股份有限公司 访存带宽的检测方法、装置、计算机设备及可读存储介质
WO2023125248A1 (zh) * 2021-12-30 2023-07-06 中兴通讯股份有限公司 内存带宽的控制方法、装置、电子设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5627995A (en) * 1990-12-14 1997-05-06 Alfred P. Gnadinger Data compression and decompression using memory spaces of more than one size
US6438141B1 (en) * 1998-04-20 2002-08-20 Sun Microsystems, Inc. Method and management of communications over media of finite bandwidth
CN103150216A (zh) * 2013-02-27 2013-06-12 东南大学 一种SoC集成的多端口DDR2/3调度器及调度方法
CN104484282A (zh) * 2014-12-31 2015-04-01 广东欧珀移动通信有限公司 一种内存回收方法和装置
US20170010907A1 (en) * 2015-07-07 2017-01-12 International Business Machines Corporation Hypervisor controlled redundancy for i/o paths using virtualized i/o adapters

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5627995A (en) * 1990-12-14 1997-05-06 Alfred P. Gnadinger Data compression and decompression using memory spaces of more than one size
US6438141B1 (en) * 1998-04-20 2002-08-20 Sun Microsystems, Inc. Method and management of communications over media of finite bandwidth
CN103150216A (zh) * 2013-02-27 2013-06-12 东南大学 一种SoC集成的多端口DDR2/3调度器及调度方法
CN104484282A (zh) * 2014-12-31 2015-04-01 广东欧珀移动通信有限公司 一种内存回收方法和装置
US20170010907A1 (en) * 2015-07-07 2017-01-12 International Business Machines Corporation Hypervisor controlled redundancy for i/o paths using virtualized i/o adapters

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘翔 等: "动态内存分配器研究综述", 《计算机学报》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112965885A (zh) * 2019-12-12 2021-06-15 中科寒武纪科技股份有限公司 访存带宽的检测方法、装置、计算机设备及可读存储介质
CN112965885B (zh) * 2019-12-12 2024-03-01 中科寒武纪科技股份有限公司 访存带宽的检测方法、装置、计算机设备及可读存储介质
WO2023125248A1 (zh) * 2021-12-30 2023-07-06 中兴通讯股份有限公司 内存带宽的控制方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
CN110287014B (zh) 2022-12-09

Similar Documents

Publication Publication Date Title
CN103729248B (zh) 一种基于缓存感知的确定待迁移任务的方法和装置
Hu et al. Spear: Optimized dependency-aware task scheduling with deep reinforcement learning
Tang et al. A scalable application placement controller for enterprise data centers
CN102708011B (zh) 一种云计算平台自适应任务调度方法
CN104168318B (zh) 一种资源服务系统及其资源分配方法
EP2466460B1 (en) Compiling apparatus and method for a multicore device
CN112035251B (zh) 基于强化学习作业布局的深度学习训练系统及方法
CN110287014A (zh) 一种计算机系统内存带宽调度方法、系统及存储介质
US8356304B2 (en) Method and system for job scheduling
CN103473134A (zh) 一种异构多核处理器的依赖任务调度方法
CN106790529B (zh) 计算资源的调度方法、调度中心及调度系统
JP2006285350A (ja) Smtプロセッサ用課金処理装置,課金処理方法,および課金処理プログラム
CN109992366A (zh) 任务调度方法及调度装置
CN107533479A (zh) 功率知晓调度和功率管理器
CN116932198A (zh) 资源调度方法、装置、电子设备及可读存储介质
CN109508748A (zh) 一种聚类方法及装置
CN105071973B (zh) 一种报文接收方法及网络设备
CN113553103A (zh) 基于cpu+gpu异构处理平台的多核并行调度方法
CN115588983A (zh) 一种暂态电压稳定评估方法
CN104391735B (zh) 虚拟化一体机集群中虚拟机调度方法及系统
CN117251275A (zh) 多应用异步i/o请求的调度方法及系统、设备及介质
CN116048030A (zh) 多产线生产任务排序方法、装置、存储介质和电子设备
CN111506394B (zh) 一种Docker Swarm容器调度方法及调度系统
CN110580192B (zh) 一种基于服务特征的混部场景中容器i/o隔离性优化方法
Reza et al. Deep reinforcement learning with different rewards for scheduling in high-performance computing systems

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