一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

自动中央处理单元(CPU)使用优化的制作方法

2022-07-30 12:39:13 来源:中国专利 TAG:

自动中央处理单元(cpu)使用优化


背景技术:

1.当前的融合优选核心算法基于最坏情况工作负载期间的最大频率,但是对于轻线程应用或非最坏情况客户工作负载,这种排序可能并不相同。
附图说明
2.图1是根据一些实施方案的用于自动中央处理单元(cpu)使用优化的示例计算机的框图。
3.图2是根据一些实施方案的用于自动中央处理单元(cpu)使用优化的示例方法的流程图。
4.图3是根据一些实施方案的用于自动中央处理单元(cpu)使用优化的示例方法的流程图。
5.图4是根据一些实施方案的用于自动中央处理单元(cpu)使用优化的示例方法的流程图。
6.图5是根据一些实施方案的用于自动中央处理单元(cpu)使用优化的示例方法的流程图。
7.图6是根据一些实施方案的用于自动中央处理单元(cpu)使用优化的示例方法的流程图。
具体实施方式
8.在一些实施方案中,一种自动中央处理单元(cpu)使用优化的方法包括:监控包括多个线程的工作负载的性能活动;并且基于性能活动修改用于多个线程的多个核心的资源分配。
9.在一些实施方案中,所述方法还包括:基于性能活动识别多个线程中的第一线程和多个线程中与第一线程相关的第二线程;并且其中修改资源分配包括修改核心指派以减小多个核心中指派有第一线程的第一核心与多个核心中指派有第二线程的第二核心之间的物理距离。在一些实施方案中,第一核心和第二核心位于同一计算核心复合体(ccx)、同一核心复合体裸片(ccd)、同一插槽、同一非均匀存储器存取(numa)域和/或同一计算节点内。在一些实施方案中,所述方法还包括:基于在性能活动中指示的高速缓存未命中程度,识别指派给多个核心中的同一核心的多个线程中的第一线程和多个线程中的第二线程;并且其中修改资源分配包括将第一线程和第二线程中的一个或多个指派给多个核心中的不同核心。在一些实施方案中,所述方法还包括:在修改资源分配之后监控额外性能活动;并且基于额外性能活动,确定是否撤消对资源分配的修改。在一些实施方案中,所述方法还包括:存储指示与工作负载相关联的资源分配的数据;并且基于工作负载的执行加载指示资源分配的数据。在一些实施方案中,修改资源分配包括修改多个核心中的一个或多个核心的一个或多个阈值,其中一个或多个阈值包括封装功率跟踪(ppt)阈值、热设计电流(tdc)阈值、电气设计电流(edc)阈值或可靠性限制,包括核心可以安全地在电压/温度对上花费
的阈值时间量。
10.在一些实施方案中,一种用于自动中央处理单元(cpu)使用优化的设备执行包括以下各项的步骤:监控包括多个线程的工作负载的性能活动;并且基于性能活动修改用于多个线程的多个核心的资源分配。
11.在一些实施方案中,步骤还包括:基于性能活动,识别多个线程中的第一线程和多个线程中与第一线程相关的第二线程;并且其中修改资源分配包括修改核心指派以减小多个核心中指派有第一线程的第一核心与多个核心中指派有第二线程的第二核心之间的物理距离。在一些实施方案中,第一核心和第二核心位于同一计算核心复合体(ccx)、同一核心复合体裸片(ccd)、同一插槽、同一非均匀存储器存取(numa)域和/或同一计算节点内。在一些实施方案中,步骤还包括:基于在性能活动中指示的高速缓存未命中程度,识别指派给多个核心中的同一核心的多个线程中的第一线程和多个线程中的第二线程;并且其中修改资源分配包括将第一线程和第二线程中的一个或多个指派给多个核心中的不同核心。在一些实施方案中,步骤还包括:在修改资源分配之后监控额外性能活动;并且基于额外性能活动,确定是否撤消对资源分配的修改。在一些实施方案中,步骤还包括:存储指示与工作负载相关联的资源分配的数据;并且基于工作负载的执行加载指示资源分配的数据。在一些实施方案中,修改资源分配包括修改多个核心中的一个或多个核心的一个或多个阈值,其中一个或多个阈值包括封装功率跟踪(ppt)阈值、热设计电流(tdc)阈值、电气设计电流(edc)阈值或可靠性限制,包括核心可以安全地在电压/温度对上花费的阈值时间量。
12.在一些实施方案中,一种设置于计算机可读介质上的用于自动中央处理单元(cpu)使用优化的计算机程序产品包括计算机程序指令,所述计算机程序指令当被执行时使计算机执行包括以下各项的步骤:监控包括多个线程的工作负载的性能活动;并且基于性能活动修改用于多个线程的多个核心的资源分配。
13.在一些实施方案中,步骤还包括:基于性能活动,识别多个线程中的第一线程和多个线程中与第一线程相关的第二线程;并且其中修改资源分配包括修改核心指派以减小多个核心中指派有第一线程的第一核心与多个核心中指派有第二线程的第二核心之间的物理距离。在一些实施方案中,第一核心和第二核心位于同一计算核心复合体(ccx)、同一核心复合体裸片(ccd)、同一插槽、同一非均匀存储器存取(numa)域和/或同一计算节点内。在一些实施方案中,步骤还包括:基于在性能活动中指示的高速缓存未命中程度,识别指派给多个核心中的同一核心的多个线程中的第一线程和多个线程中的第二线程;并且其中修改资源分配包括将第一线程和第二线程中的一个或多个指派给多个核心中的不同核心。在一些实施方案中,步骤还包括:在修改资源分配之后监控额外性能活动;并且基于额外性能活动,确定是否撤消对资源分配的修改。在一些实施方案中,步骤还包括:存储指示与工作负载相关联的资源分配的数据;并且基于工作负载的执行加载指示资源分配的数据。
14.根据本公开的自动中央处理单元(cpu)使用优化通常用计算机来实现,即用自动化计算机器来实现。因此,为了进一步解释,图1阐述了根据某些实施方案的包括被配置用于自动中央处理单元(cpu)使用优化的示例性计算机100的自动化计算机器的框图。图1的计算机100包括至少一个计算机处理器102或

cpu’以及通过高速存储器总线106和总线适配器108连接到处理器102和计算机100的其他组件的随机存取存储器104(

ram’)。
15.存储在ram 104中的是操作系统110。在为自动中央处理单元(cpu)使用优化而配
置的计算机中有用的操作系统包括unix
tm
、linux
tm
、microsoft windows
tm
以及本领域技术人员将想到的其他操作系统。图1的示例中的操作系统108显示在ram 104中,但是这种软件的许多组件通常也存储在非易失性存储器中,例如存储在例如磁盘驱动器的数据存储装置112上。存储在ram中的还有配置模块114,所述配置模块是用于根据本发明实施方案的自动中央处理单元(cpu)使用优化的模块。
16.图1的计算机100包括通过扩展总线118和总线适配器108耦合到处理器102和计算机100的其他组件的磁盘驱动器适配器116。磁盘驱动器适配器116以数据存储装置112的形式将非易失性数据存储装置连接到计算机100。在为自动中央处理单元(cpu)使用优化而配置的计算机中有用的磁盘驱动器适配器包括集成驱动电子('ide')适配器、小型计算机系统接口('scsi')适配器以及本领域技术人员会想到的其他适配器。在一些实施方案中,如本领域技术人员将想到,非易失性计算机存储器被实现为光盘驱动器、电可擦除可编程只读存储器(所谓的

eeprom’或

闪存’存储器)、ram驱动器等。
17.图1的示例计算机100包括一个或多个输入/输出('i/o')适配器120。i/o适配器通过例如软件驱动器和计算机硬件来实现面向用户的输入/输出,以控制到例如计算机显示屏的显示装置的输出,以及来自例如键盘和鼠标的用户输入装置122的用户输入。图1的示例计算机100包括视频适配器124,所述视频适配器是专门设计用于将图形输出到例如显示屏或计算机监控器的显示装置126的i/o适配器的示例。视频适配器124通过高速视频总线128、总线适配器108和也是高速总线的前端总线130连接到处理器102。
18.图1的示例性计算机100包括用于与其他计算机进行数据通信以及用于与数据通信网络进行数据通信的通信适配器132。此类数据通信通过rs-232连接、通过例如通用串行总线('usb')的外部总线、通过例如ip数据通信网络的数据通信网络和/或通过对于本领域的技术人员将想到的其他方式串行执行。通信适配器实现数据通信的硬件级别,一台计算机通过它直接地或通过数据通信网络将数据通信发送到另一台计算机。在为自动中央处理单元(cpu)使用优化而配置的计算机中有用的通信适配器的示例包括用于有线拨号通信的调制解调器、用于有线数据通信的以太网(ieee 802.3)适配器和用于无线数据通信的802.11适配器。
19.为了进一步解释,图2阐述了示出用于自动中央处理单元(cpu)优化的示例性方法的流程图,所述方法包括监控202(例如,通过配置模块114)包括多个线程的工作负载的性能活动。工作负载包括执行的软件应用程序、进程、服务或其组合。多个线程促进了工作负载的执行。将每个线程指派给(例如,中央处理单元(cpu)的)多个核心中的特定核心,其中每个核心能够支持多个线程中的一个或多个线程。
20.监控202工作负载的性能活动包括识别与工作负载的执行相关联的行为或度量。对于给定线程,性能活动的示例包括跨数据结构的流量、延迟、活动时间(例如,线程处于活动状态与非活动状态的时间)、执行的功能或操作的数量(例如,每秒)、存储器或高速缓存访问的数量和类型、高速缓存命中或未命中的数量或频率等。在一些实施方案中,监控202性能活动包括监控跨特定时间窗口的性能活动(例如,采样)。在其他实施方案中,监控202性能活动包括持续地监控性能活动并随时间更新指示性能活动的数据。
21.图2的方法还包括修改204用于多个线程的多个核心的资源分配。在一些实施方案中,修改204资源分配包括修改一个或多个核心的一个或多个阈值。修改的阈值示例包括,
对于特定核心,封装功率跟踪(ppt)阈值(例如,跨越为插座供电的电压轨所允许的允许插座功耗的阈值)、热设计电流(tdc)阈值(例如,在受热限制的情况下,可以通过特定主板的电压调节器配置传递的以安培为单位的最大电流量)、电气设计电流(edc)阈值(例如,在短时间内的峰值(“尖峰”)条件下,可以通过特定主板的电压调节器配置传递的以安培为单位的最大电流量),或可靠性限制(例如,核心在被认为对芯片中的硅安全的电压/温度对上花费的时间量的最大阈值)。作为示例,在第一线程被识别为相对于第二线程高度活动的情况下,增大指派有第一线程的第一核心的一个或多个阈值并且减小指派有第二线程的第二核心的一个或多个阈值。因此,与指派有第二线程的第二核心相比,指派有第一线程的第一核心接收更多电流。
22.在一些实施方案中,修改204资源分配包括修改的一个或多个线程的核心指派。由于每个线程被指派给特定核心,因此一个或多个线程被重新指派给不同的核心。在一些实施方案中,修改核心指派包括修改核心指派以减小指派有特定线程的核心之间的物理距离。例如,父线程和子线程、英雄线程和辅助线程或其他高度相关的线程依赖于跨数据结构的广泛的线程间通信。通过将相关线程中的一个或多个重新指派给更接近的核心,减少了线程间通信中的延迟。
23.作为另一个示例,假设第一和第二线程在同一核心上执行。性能活动指示第一和第二线程在访问此同一核心的高速缓存时高度活动,并且第一和第二线程导致大量高速缓存未命中(例如,由于一个线程因高速缓存未命中而写入高速缓存,导致另一个线程然后具有高速缓存未命中)。然后重新指派第一和/或第二线程,使得第一和第二线程各自被指派给具有不同高速缓存的不同核心。通过将需要高速缓存的线程分离到不同的核心上,可以减少高速缓存未命中的总数并提高性能。
24.在现有解决方案中,通常为给定工作负载的多个线程分配相同的资源。此外,现有的优选核心算法通常基于最坏情况下的最大频率。对于不接近最坏情况的轻线程应用程序或工作负载,这些默认资源分配不会为工作负载带来最佳性能。通过监控202工作负载的性能活动并动态修改204资源分配,工作负载受益于最佳资源指派。
25.为了进一步解释,图3阐述了示出用于自动中央处理单元(cpu)优化的示例性方法的流程图,所述方法包括监控202(例如,通过配置模块114)包括多个线程的工作负载的性能活动;并且基于性能活动修改204用于多个线程的多个核心的资源分配。
26.图3的方法与图2的不同之处在于图3的方法还包括基于性能活动识别302(例如,通过配置模块114)多个线程中的第一线程和多个线程中与第一线程相关的第二线程。在一些实施方案中,识别302第一线程和第二线程包括将第二线程识别为由第一线程调用或访问。例如,第二线程被识别为响应于来自第一线程的上下文切换(例如,上下文切换的数量或频率超过阈值)而执行。作为另一示例,第二线程被识别为响应于来自第一线程的调用(例如,调用的数量或频率超过阈值)而执行。作为又一示例,第二线程被识别为经由数据结构与第一线程通信(例如,持续时间超过阈值或传递数据量超过阈值)。换言之,第二线程被识别为与第一线程具有一定程度的相互通信或相互关系。
27.图3的方法和图2的不同之处又在于基于性能活动修改204用于多个线程的多个核心的资源分配包括:修改304核心指派以减小多个核心中指派有第一线程的第一核心与多个核心中指派有第二线程的第二核心之间的物理距离。第一线程和/或第二线程被分配给
新的核心,以减小执行第一线程和第二线程的核心之间的数据路径的距离。例如,重新指派第一线程和/或第二线程被,使得第一核心和第二核心位于同一计算核心复合体(ccx)、同一核心复合体裸片(ccd)、同一插槽、同一非均匀存储器访问(numa)域和/或同一计算节点内。
28.为了进一步解释,图4阐述了示出用于自动中央处理单元(cpu)优化的示例性方法的流程图,所述方法包括监控202(例如,通过配置模块114)包括多个线程的工作负载的性能活动;并且基于性能活动修改204用于多个线程的多个核心的资源分配。
29.图4的方法与图2的不同之处在于图4的方法还包括基于性能活动中指示的高速缓存未命中程度识别402(例如,通过配置模块114)指派给多个核心中的同一核心的多个线程中的第一线程和多个线程中的第二线程。换言之,第一线程和第二线程都访问同一核心的同一高速缓存。第一线程和第二线程基于两个线程超过阈值的高速缓存未命中程度(例如,在某一时间窗口内)来识别。因此,第一线程和第二线程的每个线程都在经历高速缓存未命中,从而迫使每个线程将新数据写入共享高速缓存并促进另一个线程的高速缓存未命中。
30.图4的方法与图2的不同之处又在于基于性能活动修改204用于多个线程的多个核心的资源分配包括:将第一线程和第二线程中的一个或多个指派404给多个核心中的不同核心。换言之,代替指派给同一核心,第一线程和第二线程被指派给不同的核心。例如,将第一线程或第二线程重新指派给不同的核心。作为另一示例,将第一线程和第二线程两者指派给新的不同核心。因此,第一线程和第二线程不再共享同一高速缓存,并且高速缓存未命中程度降低,从而提高两个线程的性能。
31.为了进一步解释,图5阐述了示出用于自动中央处理单元(cpu)优化的示例性方法的流程图,所述方法包括监控202(例如,通过配置模块114)包括多个线程的工作负载的性能活动;并且基于性能活动修改204用于多个线程的多个核心的资源分配。
32.图5的方法与图2的不同之处在于图5的方法还包括监控502(例如,通过配置模块114)额外性能活动。换言之,在修改204资源分配之后监控502工作负载的性能活动。因此,额外性能活动反映了在修改204资源分配之后工作负载的性能。
33.图5的方法与图2的不同之处又在于,图5的方法还包括基于额外性能活动确定504是否撤消对资源分配的修改。例如,将在修改204资源分配之前监控202的性能活动与在修改204资源分配之后监控502的额外性能活动进行比较以确定性能是否已经得到改进。在额外性能活动指示性能已经降低、保持相同或提高到低于阈值的程度的情况下,确定对资源分配的修改被撤消。在额外性能活动指示性能已经提高或提高到高于阈值的程度的情况下,确定不撤消修改。
34.本领域技术人员将理解,在一些实施方案中,重复执行图5的方法,从而对资源分配进行多种修改。如果给定的修改使得性能改进,则保留修改。然后执行额外修改并确定是保留还是撤消修改。
35.为了进一步解释,图6阐述了示出用于自动中央处理单元(cpu)优化的示例性方法的流程图,所述方法包括监控202(例如,通过配置模块114)包括多个线程的工作负载的性能活动;并且基于性能活动修改204用于多个线程的多个核心的资源分配。
36.图6的方法与图2的不同之处在于图6的方法还包括存储602(例如,通过配置模块114)指示与工作负载相关联的资源分配的数据604。数据604存储在存储位置606中。在一些
实施方案中,存储位置606是本地存储装置(例如,例如磁盘存储装置的本地非易失性存储器)。在其他实施方案中,存储位置606是远程存储装置(例如,云存储系统或服务器)。数据604通过在数据604中识别为其优化资源分配的特定工作负载来指示与工作负载相关联的资源分配。例如,数据604指示与工作负载相关联的进程名称或标识符、应用程序名称或其他标识符。
37.图6的方法与图2的不同之处在于图6的方法还包括基于工作负载的执行加载608指示资源分配的数据604。例如,在一些实施方案中,响应于执行工作负载的请求或命令而加载608数据604。在其他实施方案中,配置模块114或另一模块监控执行的应用程序和服务以确定工作负载正被执行。在一些实施方案中,在加载608数据604之后,应用在数据604中指示的资源分配,以便为特定工作负载最佳地分配资源。
38.鉴于上述说明,读者将认识到,根据本公开的实施方案的自动中央处理单元(cpu)使用优化的益处包括:
39.通过优化特定工作负载的资源分配来提高计算系统的性能。
40.主要在用于自动中央处理单元(cpu)使用优化的全功能计算机系统的上下文中描述了本公开的示例性实施方案。然而,本领域的技术人员将认识到,本公开还可以体现在计算机程序产品中,所述计算机程序产品设置在计算机可读存储介质上,以与任何合适的数据处理系统一起使用。此类计算机可读存储介质可以是用于机器可读信息的任何存储介质,包括磁性介质、光学介质或其他合适的介质。此类介质的示例包括硬盘驱动器或软盘中的磁盘,用于光驱的光盘、磁带以及本领域的技术人员会想到的其他介质。本领域的技术人员将立即认识到,具有合适的编程装置的任何计算机系统将能够执行如在计算机程序产品中体现的本公开的方法的步骤。本领域的技术人员还将认识到,尽管本说明书中描述的一些示例性实施方案针对安装在计算机硬件上并且在计算机硬件上执行的软件,但是实现为固件或硬件的替代性实施方案也完全在本公开的范围内。
41.本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有用于使处理器执行本公开的各方面的计算机可读程序指令的一个或多个计算机可读存储介质。
42.计算机可读存储介质可以是可以保留和存储供指令执行装置使用的指令的有形装置。计算机可读存储介质可以为例如但不限于电子存储装置、磁性存储装置、光学存储装置、电磁存储装置、半导体存储装置或前述各项的任何合适的组合。计算机可读存储介质的更具体示例的非详尽列表包括以下项:便携式计算机软盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字多功能磁盘(dvd)、记忆棒、软盘、机械编码装置(例如穿孔卡或槽中的凸起结构,其上记录有指令),以及前述各项的任何合适的组合。如本文所使用的计算机可读存储介质不应被理解为本身是暂时性信号,例如无线电波或其他自由传播的电磁波,通过波导或其他传输介质传播的电磁波(例如,通过光纤电缆的光脉冲),或通过导线传输的电信号。
43.本文所述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理装置,或者经由网络(例如,互联网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储装置。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换
机、网关计算机和/或边缘服务器。每个计算/处理装置中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并且转发计算机可读程序指令以存储在相应的计算/处理装置内的计算机可读存储介质中。
44.用于执行本公开的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据或以一种或多种编程语言的任何组合编写的源代码或目标代码,所述一种或多种编程语言包括面向对象的编程语言,例如smalltalk、c 等,以及常规的过程编程语言,例如“c”编程语言或类似的编程语言。作为独立的软件包,计算机可读程序指令可全部在用户的计算机上执行、部分在用户的计算机上执行;部分在用户的计算机上并且部分在远程计算机上执行或全部在远程计算机或服务器上执行。在后一情形中,远程计算机可通过任何类型的网络连接到用户的计算机,包括局域网(lan)或广域网(wan),或该连接可以(例如,使用互联网服务供应商通过互联网)连接到外部计算机。在一些实施方案中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可通过利用计算机可读程序指令的状态信息来个性化电子电路来执行计算机可读程序指令,以便执行本公开的各个方面。
45.在本文中参照根据本公开的实施方案的方法、设备(系统)和计算机程序产品的流程图图解和/或框图来描述本公开的各方面。应理解,流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合可以由计算机可读程序指令来实施。
46.这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理设备的处理器以产生机器,使得经由计算机或其他可编程数据处理设备的处理器执行的指令建立用于实现在流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以被存储在计算机可读存储介质中,所述计算机可读存储介质可以指导计算机、可编程数据处理设备和/或其他装置以特定方式起作用,使得在其中存储有指令的计算机可读存储介质包括制品,所述制品包括实现在流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
47.计算机可读程序指令还可以被加载到计算机、其他可编程数据处理设备或其他装置上以使一系列操作步骤在计算机、其他可编程设备或其他装置上执行以产生计算机实现的过程,使得在计算机、其他可编程设备或其他装置上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
48.附图中的流程图和框图示出了根据本公开的各种实施方案的系统、方法和计算机程序产品的可能实现方式的体系结构、功能性和操作。在这个方面,流程图或框图中的每个框可以表示包括用于实现所指定的一个或多个逻辑功能的一个或多个可执行指令的指令的模块、区段或部分。在一些替代性实现方式中,框中提到的功能可以不按附图中提到的顺序发生。例如,连续示出的两个框实际上可以大体上同时执行,或者这些框有时可以按相反的顺序执行,这取决于所涉及的功能性。还应指出,框图和/或流程图图解的每个框以及框图和/或流程图图解中的框的组合可以由执行指定的功能或操作的基于专用硬件的系统或者执行专用硬件和计算机指令的组合来实施。
49.从前面的描述将理解,可以在本公开的各种实施方案中进行修改和改变。本说明书中的描述仅用于说明的目的,而不应被理解为是限制性的。本公开的范围仅由所附权利要求的语言限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献