CN115934309A - 用于核心特定度量收集的技术 - Google Patents

用于核心特定度量收集的技术 Download PDF

Info

Publication number
CN115934309A
CN115934309A CN202211083345.9A CN202211083345A CN115934309A CN 115934309 A CN115934309 A CN 115934309A CN 202211083345 A CN202211083345 A CN 202211083345A CN 115934309 A CN115934309 A CN 115934309A
Authority
CN
China
Prior art keywords
core
metric
specific
memory
workload
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.)
Pending
Application number
CN202211083345.9A
Other languages
English (en)
Inventor
P·维索基
伯纳特 F·圭姆
J·J·布劳恩
P·扎克
R·什特纳
P·佩里茨
T·维拉尔
S·科内法尔
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN115934309A publication Critical patent/CN115934309A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • 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
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/835Timestamp
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/608Details relating to cache mapping
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

用于核心特定度量收集的技术。示例包括用于核心特定度量收集的技术。示例包括响应于事件的调度,从一个或多个寄存器取回多核处理器的核心的度量。取回的度量被推送到对用户空间应用可访问并且对多核处理器的其他核心可访问的存储器的共享存储器空间。用户空间应用访问共享存储器空间以聚集与多核处理器的至少一个核心相关联的核心特定度量,并且然后发布聚集的核心特定度量。

Description

用于核心特定度量收集的技术
技术领域
本文描述的示例总体上涉及用于收集、处理或发布多核处理器的核心特定度量或度量信息的技术。
背景技术
在一些示例中,可能需要高采样率来获得用于计算系统或平台的操作度量或遥测数据,以便发起高效、准确且可能连续的动作,同时试图维持与在计算系统或平台上运行并置工作负载相关联的服务质量(QoS)要求。例如,并置的工作负载可以由单插槽或多插槽配置中维护的一个或多个多核处理器的核心来支持。核心被布置成单独执行与并置的工作负载相关联的工作负载线程。例如,经由使用Intel®资源管理器技术(RDT)或利用Intel®性能计数器监视器(PMU),可以暴露这些多核处理器的个体核心的核心特定度量。
附图说明
图1图示了示例系统。
图2图示了示例收集框架。
图3图示了示例过程。
图4图示了示例第一装置。
图5图示了示例第一逻辑流程。
图6图示了示例第一存储介质。
图7图示了示例第二装置。
图8图示了示例第二流程。
图9图示了示例第二存储介质。
图10图示了示例计算平台。
具体实施方式
如本公开设想的,为支持并置工作负载的多核处理器收集核心特定度量并且还最小化对满足与在计算系统或平台上运行并置工作负载相关联的QoS要求的影响是一项挑战。在一些示例中,计算系统或平台可以位于在边缘位置或在诸如电信核心数据中心的集中位置与通信网络耦合的服务器或机架内。收集核心特定度量的方法(例如,使用Intel®RDT或PMU)可能以某种非生产方式使用。非生产方式可能是由于缺乏具有用于收集核心特定度量的足够高的吞吐量而不对满足QoS要求产生不可接受的影响的能力而引起的。因此,性能计数器以非生产方式部署,以理解生成或请求并置工作负载的应用的潜在性能“瓶颈(glass-jaw)”并且找出其根本原因。然而,以非生产方式获得的该信息可能仅在实验室环境中有意义。
根据一些示例,在实时现场部署的许多情况下,需要的是收集受动态效应(诸如负载改变、有噪声的邻居或平台配置的改变)影响的核心特定度量的能力,所述动态效应可能创建需要被捕获的应用的不同性能瓶颈。在典型的实时现场部署中,(例如,使用诸如 collectd的Intel®PMU工具或类似工具)收集相对小的核心特定度量子集。相对小的子集可能不足以确定指示可能的性能瓶颈的许多类型的动态或极端情况效应的根本原因。
当前,用于收集核心特定度量的现有解决方案(“收集器”)可能相对资源密集或繁重,从而需要在用户空间/应用侧或在操作系统(OS)内核空间侧的代码执行。主要由于资源密集性,当前的收集器可能被限制为用于收集核心特定度量的相对低的采样频率。该频率可以被限制为每几秒钟的频率。同时,至少每100毫秒(ms)或更少的有用采样频率可能是生成关注于满足与使用计算系统或平台的多核处理器的核心来运行并置工作负载相关联的一个或多个QoS要求的可行动洞察所需要的。迫使这些当前的收集器具有至少100ms的采样频率可能引起高资源消耗(例如,退役的中央处理单元(CPU)周期、末级高速缓存(LLC)垃圾化等)。该高资源消耗可能导致对满足与运行并置工作负载相关联的QoS要求的不可接受的影响。在当前类型的收集器遵循采样事件之间的固定间隔的假设时,对满足QoS要求的该不可接受的影响可能被放大,这可能导致这些收集器成为计算系统或平台中的主要工作负载之一,而不是仅当需要时和/或当收集的核心特定度量更可能提供可行动的采样结果时收集核心特定度量。此外,许多核心特定度量可以仅由与特定度量相关的核心读取。出于从单独的核心特定寄存器(例如,特定型号的寄存器(MSR))读取值的目的,当前的收集器可能必需使用核心间通信链路,所述单独的核心特定寄存器(例如,特定型号的寄存器(MSR))仅可由与特定度量相关的相应核心访问。使用核心间通信链路可能添加检索核心特定度量的等待时间,并且还可能对总体计算系统性能产生负面影响。
图1图示了示例系统100。如图1中所示,系统100包括耦合到网络170的计算平台101。在一些示例中,如图1中所示,计算平台101可以经由网络通信(comm.)信道175并通过具有连接或耦合到网络通信信道175的一个或多个端口的网络输入/输出(I/O)设备110(例如,网络接口控制器(NIC))耦合到网络170。
根据一些示例,如图1中所示,计算平台101可以包括处理器120、存储器130、操作系统150、一个或多个工作负载(WL)应用160、收集器应用105、QoS管理器180或电路190。在一些示例中,如图1中所示,处理器120可以经由通信链路155通信地耦合到存储器130和网络I/O设备110。尽管图1中未示出,但是在一些示例中,操作系统150、NW I/O设备驱动程序140或(一个或多个)应用160可以至少部分地经由存储器130中包括的一个或多个存储器设备(例如,易失性或非易失性存储器设备)与处理器120的元件(诸如,核心122-1至122-m)之间的协作来实现,其中“ m”是大于2的任何正整数。在一些示例中,(一个或多个)WL应用160可以利用来自核心122-1至122-m之中的一个或多个核心来在计算平台101上运行并置的工作负载。
在一些示例中,如下文更多描述的,OS内核121-1至121-m可以由相应核心122-1至122-m执行。对于这些示例,在每个核心的相应内核空间内,调度器123-1至123-m可以被布置为事件调度器,以管理或控制与(一个或多个)WL应用160请求的一个或多个工作负载线程的交互,以由核心122-1至122-m执行。此外,在每个核心的相应内核空间内,收集器125-1至125-m可以被布置成从(一个或多个)寄存器126-1至126-m取回核心特定度量。(一个或多个)寄存器126-1至126-m可以被布置成至少临时存储来自相应核心122-1至122-m的核心特定度量数据(例如,在执行相应工作负载线程时与每个核心的度量相关的数据)。 例如,(一个或多个)寄存器126-1可以被布置成存储用于核心122-1的核心特定度量数据,(一个或多个)寄存器126-2可以被布置成存储用于核心122-2的核心特定度量数据,等等。如下文更多描述的,收集器125-1至125-m可以响应于由调度器123-1至123-m基于与执行工作负载线程的核心122-1至122-m相关联或相关的任务请求而调度的事件来取回核心特定度量。任务请求可以从操作系统150或(一个或多个)WL应用160被接收。在其他示例中,收集器125-1至125-m可以被限制或约束到比响应于每个任务请求或与任务请求相关联的事件调度更低的频率来取回核心特定度量,只要该更低的频率仍然是以生成对采取必要动作以满足QoS要求有用的可行动结果的速率。任务请求可以包括但不限于线程调度/取消调度、系统调用或异常。收集器125-1至125-m然后可以将收集的核心特定度量数据推送到存储器130中维护的共享存储器空间。例如,如图1中所示,收集器125-1至125-m可以将收集的核心特定度量数据推送到位于存储器130中或在存储器130中维护的(一个或多个)共享存储器页面132。
此外,如下文更多描述的,收集器应用105可以取回被推送到(一个或多个)共享存储器页面132的收集的度量数据,并在用户空间中处理收集的度量数据。收集器应用105可以以规则的时间间隔(例如,每1秒)发布或打包处理的结果。发布或打包的结果可以经由网络通信信道175通过网络I/O设备110发送到耦合到网络170的编排器(未示出)用于远程QoS管理,或者可以本地发送到负责计算平台101的本地QoS管理的计算平台101的逻辑或特征,该计算平台101诸如是QoS管理器180和/或由操作系统150执行的QoS代理(未示出)。根据一些示例,收集器应用105可以能够使用各种类型的数据平面框架来发布或打包处理的结果,以包括但不限于数据平面开发工具包(DPDK)框架或开放数据平面(ODP)应用编程接口(API)框架。
根据一些示例,收集器应用105可以由来自核心122-1至122-m之中的专用核心执行。在第二示例中,在网络I/O设备处的电路112可以被布置成执行收集器应用105。在第三示例中,电路190可以被布置成执行收集器应用105。对于第二或第三示例,电路112或190可以具有对(一个或多个)共享存储器页面132的访问,以使得由电路112或190执行的收集器应用105能够取回核心特定度量。电路112或190可以包括但不限于处理器电路、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其任何组合。
在一些示例中,计算平台101可以包括但不限于服务器、服务器阵列或服务器群、web服务器、网络服务器、互联网服务器、工作站、小型计算机、主机架计算机、超级计算机、网络设备、web设备、分布式计算系统、多处理器系统、基于处理器的系统或其组合。此外,具有核心122-1至122-m的处理器120可以包括各种商业上可获得的处理器,在没有限制的情况下包括来自Intel® AMD®、Nvidia®、Qualcomm®、ARM®、IBM®、Samsung®或其他处理器设计者或制造商的处理器。
根据一些示例,存储器130可以由一个或多个存储器设备或管芯组成,其可以包括各种类型的易失性和/或非易失性存储器。易失性类型的存储器可以包括但不限于动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、晶闸管RAM(TRAM)或零电容器RAM(ZRAM)。非易失性类型的存储器可以包括下文称为“3-D交叉点存储器”的具有3维(3-D)交叉点存储器结构的字节或块可寻址类型的非易失性存储器,该3维(3-D)交叉点存储器结构包括硫族化物相变材料(例如,硫族化物玻璃)。非易失性类型的存储器还可以包括其他类型的字节或块可寻址非易失性存储器,诸如但不限于多阈值级NAND闪存、NOR闪存、单级或多级相变存储器(PCM)、电阻式存储器、纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、并入忆阻器技术的磁阻随机存取存储器(MRAM)、自旋转移矩MRAM(STT-MRAM)或上述任何的组合。
图2图示了示例收集框架200。在一些示例中,如图2中所示,核心122-1和122-2可以被布置成执行(一个或多个)相应的应用工作负载210和220。一个或多个应用工作负载线程210可以由来自(一个或多个)WL应用160之中的第一应用发起,并且一个或多个应用工作负载线程220可以由来自(一个或多个)WL应用160之中的第二应用发起。对于这些示例,(一个或多个)应用工作负载线程210和220的发起以及收集器应用105的操作可以发生在用户空间(例如,供软件应用使用的存储器空间或区域)中。此外,如图2中所示,包括相应的调度器123-1/2和收集器125-1/2的OS内核121-1和121-2可以在内核空间(被限制于由OS内核或核心使用的存储器空间)中操作。此外,根据示例收集框架200,(一个或多个)寄存器126-1/2和网络I/O设备110被指示为在硬件中操作,以将这些硬件元件与内核和用户空间操作元件区分。
根据一些示例,收集器125-1/2对相应核心122-1/2进行的核心特定度量采样可以与调度器123-1/2调度的事件整合和/或关联。对于这些示例,调度事件可以基于与执行(一个或多个)应用工作负载线程210/220的核心122-1/2相关联或相关的任务请求。当调度器123-1/2调度事件时,可以存在多个情形。例如,启动新的工作负载线程,将工作负载任务的控制让给OS内核121-1/2,任务抢占,异常处理(例如,页面错误),系统调用处理(例如,I/O读取/写入完成),或者接收信号以给处于睡眠或低功率状态的工作负载线程加电/唤醒。每个调度的事件可以被用作一种类型的上下文切换,经由该上下文切换,OS内核121-1/2可以被布置来执行附加的轻量级代码段以执行相应的收集器125-1/2。收集器125-1/2可以被布置或配置成从(一个或多个)相应的寄存器126-1/2读取核心特定度量,并用附加信息或元数据(例如,时间戳或(一个或多个)线程标识符)来扩充所收集的核心特定度量。收集器125-1/2还可以被布置或配置成从存储器的系统物理地址空间(例如,存储器130的(一个或多个)共享存储器页面132)中的给定位置读取核心特定度量。
在一些示例中,收集器125-1/2可以以无锁方式将收集的核心特定度量和相关联信息/元数据推送到(一个或多个)共享存储器页面132中包括的相应无锁缓冲区227-1/2。根据一些示例,(一个或多个)共享存储器页面132可以被配置成不可分页的存储器,以支持无锁缓冲区227-1/2。收集器应用105然后可以从无锁缓冲区227-1/2取回所收集的核心特定度量和相关联信息/元数据,以执行进一步处理,并最终将已经处理的内容发布给远程QoS管理实体(例如,不同计算平台处的编排器)或本地QoS管理实体(例如,QoS管理器180)。对于这些示例,无锁缓冲区227-1/2可以是单个生产者、单个消费者缓冲区。
根据一些示例,收集器125-1/2可以具有向核心122-1/2处的控制逻辑写入命令的能力,以对(一个或多个)寄存器126-1/2进行编程,从而指示在(一个或多个)应用工作负载线程210的执行期间将哪些特定的核心特定度量至少临时存储到(一个或多个)寄存器126-1/2,使得收集器125-1/2可以取回那些核心特定度量。在一些示例中,对(一个或多个)寄存器126-1/2的写入命令还可以启用或重置与一个或多个核心特定度量相关联的计数器。在一些示例中,(一个或多个)寄存器126-1/2可以以类似于包括在支持Intel® IA-64或IA-32处理器架构的性能监视单元(PMU)中的特定型号的寄存器(MSR)的方式运转,该性能监视单元可以包括但不限于计数器寄存器、事件编程寄存器或全局事件控制寄存器。核心特定度量可以包括但不限于执行的指令、2级(L2)高速缓存未命中、L2高速缓存命中、L3高速缓存未命中、L3高速缓存命中、分支误预测、经过的核心时钟节拍、核心操作频率或核心存储器带宽使用。
在一些示例中,不以固定的时间间隔收集核心特定度量。相反,响应于(一个或多个)应用工作负载线程210/220对调度器123-1/2的任务请求,在收集器125-1处发生一种类型的上下文切换。在一些示例中,这些类型的任务请求交互可能每秒发生数百到数千次,或甚至更频繁。对于这些示例,收集器应用105可以执行度量处理,该度量处理包括产生多个聚集。聚集的数量可以表示从无锁缓冲区227收集或取回的多个核心特定度量,以生成核心特定度量信息。例如,生成核心特定度量信息的聚集的数量可以包括但不限于核心特定度量的最小值、核心特定度量的最大值、核心特定度量的平均值或核心特定度量的90百分位数值。收集器应用105然后可以发布所产生的聚集,该聚集表示根据固定的时间间隔(例如,每1秒)收集的多个核心特定度量。与在相同的固定、配置的时间间隔(例如,每1秒)内收集单个核心特定度量相比,收集并且然后聚集相对大量的核心特定度量对于生成集中于管理或控制与执行或运行(一个或多个)应用工作负载线程210/220相关联的QoS需求的可行动的洞察可以是更有用的。
图3图示了示例过程300。根据一些示例,过程300可以被实现为在内核空间中基于与支持并置工作负载的多核处理器的核心相关联的任务请求所触发或响应的上下文切换来收集核心特定度量,并且然后在用户空间取回并处理所收集的核心特定度量,以发布或生成信息。例如,发布或生成的信息可以用于满足与支持并置工作负载相关联的QoS要求。对于这些示例,如图3中所示,调度器123、收集器125、无锁缓冲区227和收集器应用105如图1-2中所示和如上所述用于描述过程300。用于收集、处理和发布核心特定度量的示例不仅限于图1-3中所示的这些元件。
从3.1开始,调度器123可以调度事件。在一些示例中,多个任务请求可以由请求执行工作负载线程的应用发起,这导致来自内核121-1至121-m之中的一个内核执行代码以使得调度器123调度与来自核心120-1至120-m之中的一个核心执行工作负载线程相关的事件。对于这些示例,图3中示出了用于调度器123的环0,以指示调度器123在与内核空间相关的系统存储器的受保护部分内执行。
移至3.2,收集器125可以取回度量。根据一些示例,响应于调度器123调度与工作负载线程的执行相关的每个事件,收集器125从与执行工作负载线程的核心相关联的(一个或多个)寄存器126取回核心特定度量。对于这些示例,在图3中为收集器125示出了环0,以指示收集器125在与内核空间相关的系统存储器的受保护部分内执行。
移至3.3,收集器125扩充了度量。在一些示例中,收集器125用附加信息来扩充所收集或取回的核心特定度量,所述附加信息诸如是指示从(一个或多个)寄存器126取回每个核心特定度量的时间的时间戳,或者与发起任务请求的工作负载线程相关联的(一个或多个)线程标识符,所述任务请求引起一个或多个事件被调度以及一个或多个核心特定度量被取回。
移至3.4,收集器125可以将度量信息推送到无锁缓冲区227。在一些示例中,收集器125将包括核心特定度量和扩充时间戳或线程标识符信息的度量信息推送到在存储器130的(一个或多个)共享存储器页面132中维护的无锁缓冲区227。
移至3.5,收集器应用105可以从无锁缓冲区227取回度量信息。根据一些示例,收集器应用105可以以每1秒的固定时间间隔取回度量信息。对于这些示例,收集器125可能已经在1秒的时间段(例如,时间段阈值)内将相对大量的收集或取回的核心特定度量和相关联信息推送到无锁缓冲区227。例如,如果大约每隔20ms从(一个或多个)寄存器126取回核心特定度量,则大约50个核心特定度量和相关联信息可能已经在1秒的时间段内被推送到无锁缓冲区227。对于这些示例,在图3中示出了用于收集器应用105的环3,以指示收集器应用105在与用户空间相关的系统存储器的一部分内执行。因此,收集器应用105可以被称为“用户空间应用”。
移至3.6,收集器应用105执行度量处理。在一些示例中,度量处理可以包括产生用于在1秒时间间隔内从无锁缓冲区227取回的度量信息的多个聚集(例如,最小值、最大值、平均值、90百分位数等)。
移至3.7,收集器应用105可以发布经处理的度量。根据一些示例,收集器应用105可以将经处理的度量发送到经由网络170耦合到计算平台101的编排器,用于远程QoS管理,或者可以将经处理的度量发送到计算平台101处的QoS管理器180,用于本地QoS管理。远程或本地QoS管理例如使用经处理的度量来管理或控制与运行并置工作负载的计算平台101相关联的QoS要求,所述并置工作负载诸如是由核心122-1至122-m中包括的一个或多个核心执行的应用工作负载线程。过程300可以在示例1秒时间间隔之后结束,或者可以在随后的1秒时间间隔开始时在3.1重新开始。示例不限于用于处理和/或发布度量的1秒间隔。
图4图示了示例装置400。尽管图4中所示的装置400在某种拓扑结构中具有有限数量的元件,但是可以领会,按照给定实现的期望,装置400可以在替代拓扑结构中包括更多或更少的元件。
根据一些示例,装置400可以由电路420支持,并且装置400可以是多核处理器的多个核心之中包括的一个核心。例如,来自诸如上述和图1-2中示出的核心122-1至122-m之中的一个核心。电路420可以被布置成执行类似于也在图1-2中示出的OS内核121-1至122-m的OS内核421。OS内核421可以被布置成执行一个或多个软件或固件实现的逻辑、部件或模块422- a。例如,OS内核421可以被布置成执行类似于也在图1-2中示出的调度器123-1至123-m和收集器125-1至125-m的调度器422-1和收集器422-2。
在一些示例中,装置400可以包括一个或多个寄存器410。对于这些示例,当核心执行工作负载线程时,(一个或多个)寄存器410可以存储核心的至少一个度量。该至少一个度量可以被包括在(一个或多个)度量405中。
根据一些示例,调度器422-1可以由电路420和/或OS内核421执行,以调度与核心执行工作负载线程相关的事件。对于这些示例,事件可以包括在事件430中,并且可以基于与工作负载线程的执行相关联或相关的任务请求。
在一些示例中,收集器422-2可以由电路420和/或OS内核421执行,以响应于调度事件,从一个或多个寄存器取回第一度量,该第一度量指示在核心执行工作负载线程时第一时间间隔内核心的第一性能特性。
根据一些示例,收集器422-2也可以由电路420和/或OS内核421执行,以将第一度量推送到对用户空间应用可访问并且对多核处理器的其它核心可访问的存储器的共享存储器空间。例如,推送的第一度量可以包括在度量信息435中,并且可以用分配给正由核心执行的工作负载线程的时间戳或工作负载线程ID来扩充。
本文包括逻辑流程集,其代表用于执行所公开架构的新奇方面的示例方法。虽然出于简化解释的目的,本文所示的一种或多种方法被示出和描述为一系列动作,但是本领域技术人员将理解和领会,所述方法不受动作次序限制。据此,一些动作可以以不同的次序发生和/或与来自本文所示和所述动作的其它动作同时发生。例如,本领域的技术人员将理解和领会,方法可以替代地表示为诸如在状态图中的一系列互相关的状态或事件。此外,并非方法中说明的所有动作都可以被新奇实现所需要。
逻辑流程可以在软件、固件和/或硬件中实现。在软件和固件实施例中,逻辑流程可以由存储在至少一个非暂时性计算机可读介质或机器可读介质(诸如光、磁或半导体存储装置)上的计算机可执行指令来实现。实施例不限于该上下文。
图5图示了逻辑流程500的示例。逻辑流程500可以代表由本文描述的一个或多个逻辑、特征或设备(诸如包括在装置400中的逻辑和/或特征)执行的一些或所有操作。更特别地,逻辑流程500可以由电路420、OS内核421、(一个或多个)寄存器410、调度器422-1或收集器422-2中的一个或多个来实现。
根据一些示例,如图5中所示,当多核处理器的核心执行工作负载线程时,逻辑流程500可以在框502处将该核心的至少一个度量存储到一个或多个寄存器。对于这些示例,电路420和/或OS内核421可以使得核心的至少一个度量被存储到(一个或多个)寄存器410。
在一些示例中,逻辑流程500在框504处可以调度与核心执行工作负载线程相关的事件。对于这些示例,调度器422-1可以调度事件。
根据一些示例,逻辑流程500可以在框506处响应于调度事件,从一个或多个寄存器取回第一度量,该第一度量指示在第一核心执行工作负载线程时核心在第一时间间隔内的第一性能特性。对于这些示例,收集器422-2可以从(一个或多个)寄存器410取回第一度量。
在一些示例中,逻辑流程500在框508处可以将第一度量推送到对用户空间应用可访问并且对多核处理器的其它核心可访问的存储器的共享存储器空间。对于这些示例,收集器422-2可以将第一度量推送到存储器的共享存储器空间。
图6图示了第一存储介质的示例。如图6中所示,第一存储介质包括存储介质600。存储介质600可以包括制造品。在一些示例中,存储介质600可以包括任何非暂时性计算机可读介质或机器可读介质,诸如光、磁或半导体存储装置。存储介质600可以存储各种类型的计算机可执行指令,诸如用于实现逻辑流程500的指令。计算机可读或机器可读存储介质的示例可以包括能够存储电子数据的任何有形介质,其包括易失性存储器或非易失性存储器、可移动或不可移动存储器、可擦除或不可擦除存储器、可写或可重写存储器等。计算机可执行指令的示例可以包括任何合适类型的代码,诸如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、面向对象的代码、可视代码等。示例不限于该上下文。
图7图示了示例装置700。尽管图7中所示的装置700在某种拓扑结构中具有有限数量的元件,但是可以领会,按照给定实现的期望,装置700可以在替代的拓扑结构中包括更多或更少的元件。
根据一些示例,装置700可以由电路720支持。装置700可以是多核处理器,并且电路720可以是来自多核处理器的多个核心之中的一个或多个专用核心。例如,来自诸如图1-2中示出的核心122-1至122-m之中的一个核心。替代地,装置700可以是与计算平台(例如,计算平台101)耦合的网络接口控制器或卡(NIC),并且电路720可以位于或驻留在NIC上。在又一替代方案中,装置700可以是ASIC或FPGA(例如,作为多核处理器或计算平台的加速器运转),并且电路720可以是ASIC或FPGA的电路。电路720可以被布置成执行类似于如上所述并在图1-3中示出的收集器应用105的用户空间应用721。用户空间应用721可以被布置成实现一个或多个特征或逻辑722- a。值得注意的是,如本文使用的“ a”和“ b”和“ c”以及类似的指示符旨在是表示任何正整数的变量。因此,例如,如果实现设置a = 3的值,则完整的特征或逻辑722- a集可以包括特征或逻辑722-1、722-2或722-3。此外,至少一部分“逻辑”可以存储在计算机可读介质中,或者可以至少部分地在硬件中实现,并且尽管该逻辑在图7中被示出为离散的框,但是这并不将逻辑或特征限制于存储在不同的计算机可读介质部件(例如,单独的存储器等)中或由不同的硬件部件(例如,单独的核心、ASIC或FPGA)实现。
在一些示例中,如图7中所示,装置700可以包括存储器接口710,以访问对多核处理器的核心可访问的存储器的共享存储器空间。例如,存储器接口710可以访问共享存储器空间,该共享存储器空间诸如是如以上针对图1-3所述的存储器130的(一个或多个)共享存储器页面132,该共享存储器空间对处理器120的核心122-1至122-m可访问(例如,将核心特定度量推送到无锁缓冲区)。
根据一些示例,装置700可以包括取回逻辑722-1。取回逻辑722-1可以是用户空间应用721的逻辑,用于取回经由存储器接口存储到共享存储器空间的核心特定度量,该核心特定度量指示在多核处理器的一个或多个核心执行工作负载线程时该一个或多个核心的性能特性。对于这些示例,取回逻辑722-1可以从共享存储器空间取回核心特定度量705。
在一些示例中,装置700还可以包括聚集逻辑722-2。聚集逻辑722-2可以是用户空间应用721的逻辑,用于在一段时间间隔内聚集所取回的核心特定度量,以生成核心特定度量信息。根据一些示例,时间间隔可以是1秒。
根据一些示例,装置700还可以包括发布逻辑722-3。发布逻辑722-3可以是用户空间应用721的逻辑,用于发布核心特定度量信息。在一些示例中,核心特定度量信息包括在核心特定信息715中。
图8图示了逻辑流程800的示例。逻辑流程800可以代表由本文描述的一个或多个逻辑、特征或设备(诸如包括在装置700中的逻辑和/或特征)执行的一些或所有操作。更特别地,逻辑流程800可以由取回逻辑722-1、聚集逻辑722-2或发布逻辑722-3中的一个或多个来实现。
根据一些示例,如图8中所示,逻辑流程800在框802处可以取回被存储到对多核处理器的核心可访问的存储器的共享存储器空间的核心特定度量,该核心特定度量指示在多核处理器的一个或多个核心执行工作负载线程时该一个或多个核心的性能特性。对于这些示例,取回逻辑722-1可以从存储器的共享存储器空间中维护的多个无锁缓冲区取回核心特定度量。多核处理器的一个或多个核心中的每个核心可以被布置成推送度量以指示每个核心在执行一个或多个工作负载线程时在该时间间隔内的性能特性。每个核心的度量可以被推送到来自多个无锁缓冲区之中的不同的无锁缓冲区。
在一些示例中,逻辑流程800在框804处可以在一段时间间隔内将取回的核心特定度量聚集,以生成核心特定度量信息。对于这些示例,聚集逻辑722-2可以将取回的核心特定度量聚集以生成核心特定信息,该核心特定信息可以包括但不限于取回的核心特定度量的最小值、取回的核心特定度量的最大值、取回的核心特定度量的平均值或取回的核心特定度量的90百分位数值。
根据一些示例,逻辑流程800可以在框806处发布核心特定度量信息。对于这些示例,发布逻辑722-3可以向QoS管理应用发布核心特定度量信息,该QoS管理应用可以位于托管装置700的计算系统的本地或远程。
图9图示了第一存储介质的示例。如图9中所示,第一存储介质包括存储介质900。存储介质900可以包括制造品。在一些示例中,存储介质900可以包括任何非暂时性计算机可读介质或机器可读介质,诸如光、磁或半导体存储装置。存储介质900可以存储各种类型的计算机可执行指令,诸如用于实现逻辑流程800的指令。计算机可读或机器可读存储介质的示例可以包括能够存储电子数据的任何有形介质,其包括易失性存储器或非易失性存储器、可移动或不可移动存储器、可擦除或不可擦除存储器、可写或可重写存储器等。计算机可执行指令的示例可以包括任何合适类型的代码,诸如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、面向对象的代码、可视代码等。示例不限于该上下文。
图10图示了示例计算平台1000。在一些示例中,如图10中所示,计算平台1000可以包括处理部件1040、其他平台部件1050或通信接口1060。根据一些示例,计算平台1000可以在计算设备中实现。
根据一些示例,处理部件1040可以基于包括在存储介质中的指令执行用于装置400和/或700的至少一些处理操作或逻辑,所述存储介质包括相应的存储介质600和/或900。处理部件1040可以包括各种硬件元件、软件元件或两者的组合。对于这些示例,硬件元件的示例可以包括设备、逻辑设备、部件、处理器、微处理器、管理控制器、伙伴管芯(companion dice)、电路、处理器电路、电路元件(例如,晶体管、电阻器、电容器、电感器等等)、集成电路ASIC、可编程逻辑器件(PLD)、数字信号处理器(DSP)、FPGA、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等等。软件元件的示例可以包括软件部件、程序、应用、计算机程序、应用程序、设备驱动程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、功能、方法、过程、软件接口、应用编程接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。确定是否使用硬件元件和/或软件元件来实现一个示例可以根据任何数量的因素而变化,任何数量的因素诸如是如给定示例期望的期望计算速率、功率水平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其他设计或性能约束。
根据一些示例,处理部件1040可以包括基础设施处理单元(IPU)或数据处理单元(DPU),或者可以由IPU或DPU使用。xPU至少可以指代IPU、DPU、图形处理单元(GPU)、通用GPU(GPGPU)。IPU或DPU可以包括具有一个或多个可编程或固定功能处理器的网络接口,以执行本来可以由中央处理单元(CPU)执行的操作的卸载。IPU或DPU可以包括一个或多个存储器设备(未示出)。在一些示例中,IPU或DPU可以执行虚拟切换操作、管理存储事务(例如,压缩、加密、虚拟化)以及管理在其他IPU、DPU、服务器或设备上执行的操作。
在一些示例中,其他平台部件1050可以包括通用计算元件、存储器单元(其包括系统存储器)、芯片组、控制器、外围设备、接口、振荡器、计时设备、视频卡、声卡、多媒体输入/输出(I/O)部件(例如数字显示器)、电源等。包括在其他平台部件1050中的存储器单元或存储器设备的示例可以在没有限制的情况下包括以一个或多个更高速存储器单元形式的各种类型的计算机可读和机器可读存储介质,诸如只读存储器(ROM)、随机存取存储器(RAM)、动态RAM (DRAM)、双数据速率DRAM(DDRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、诸如铁电聚合物存储器的聚合物存储器、奥氏存储器(ovonic memory)、相变或铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、磁卡或光卡、诸如独立磁盘冗余阵列(RAID)驱动器之类的设备阵列、固态存储器设备(例如USB存储器)、固态驱动器(SSD)以及适合于存储信息的任何其他类型的存储介质。
在一些示例中,通信接口1060可以包括支持通信接口的逻辑和/或特征。对于这些示例,通信接口1060可以包括根据各种通信协议或标准操作的一个或多个通信接口,以通过直接或网络通信链路进行通信。直接通信可以经由使用在一个或多个行业标准(包括后代和变体)中描述的通信协议或标准来发生,所述通信协议或标准诸如是与PCIe规范、NVMe规范或I3C规范相关联的通信协议或标准。网络通信可以经由使用通信协议或标准来发生,所述通信协议或标准诸如是在电气和电子工程师协会(IEEE)颁布的一个或多个以太网标准中描述的那些通信协议或标准。例如,由IEEE颁布的一个这样的以太网标准可以包括但不限于在2018年8月发布的IEEE 802.3-2018,具有冲突检测的载波侦听多路访问(CSMA/CD)访问方法和物理层规范(Carrier sense Multiple access with CollisionDetection(CSMA/CD)Access Method and Physical Layer Specifications)(下文称为“IEEE 802.3规范”)。网络通信也可以根据诸如OpenFlow硬件抽象API规范的一个或多个OpenFlow规范来发生。网络通信也可以根据一个或多个Infiniband架构规范来发生。在一些示例中,通信接口1060可以是网络接口控制器或卡(NIC)的一部分,该网络接口控制器或卡包括用于基于包括在包括相应存储介质900的存储介质中的指令来执行用于装置700的至少一些处理操作或逻辑的电路。
计算平台1000可以是计算设备的一部分,所述计算设备可以例如是用户设备、计算机、个人计算机(PC)、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板设备、智能电话、嵌入式电子器件、游戏控制台、服务器、服务器阵列或服务器群、web服务器、网络服务器、互联网服务器、工作站、微型计算机、主机计算机、超级计算机、网络设备、web设备、分布式计算系统、多处理器系统、基于处理器的系统或其组合。因此,按照适当的期望,本文描述的计算平台1000的功能和/或特定配置可以被包括在计算平台1000的各种实施例中或者被省略。
可以使用分立电路、ASIC、逻辑门和/或单芯片架构的任何组合实现计算平台1000的部件和特征。此外,计算平台1000的特征可以使用微控制器、可编程逻辑阵列和/或微处理器或者在合适适当情况下前述的任何组合来实现。注意,硬件、固件和/或软件元件在本文中可以被统称为或单独称为“逻辑”、“电路”或“电路元件”。
应当领会,图10的框图中所示的示例性计算平台1000可以表示许多潜在实现的一个功能性描述示例。因此,附图中描绘的块功能的划分、省略或包括并不推断出用于实现这些功能的硬件部件、电路、软件和/或元件将必须被划分、省略或包括在实施例中。
尽管未被描绘,但是任何系统可以包括并使用电源,诸如但不限于电池、至少接收交流电并供应直流电的AC-DC转换器、可再生能源(例如,太阳能动力或基于运动的动力)等。
至少一个示例的一个或多个方面可以通过存储在至少一个机器可读介质上的代表性指令实现,所述代表性指令表示处理器内的各种逻辑,所述代表性指令当由机器、计算设备或系统读取时,使得机器、计算设备或系统制造逻辑以执行本文所述的技术。这样的表示可以存储在有形的机器可读介质上,并且供应到各种客户或制造设施,以加载到实际制造逻辑或处理器的制造机器中。
可以使用硬件元件、软件元件或两者的组合实现各种示例。在一些示例中,硬件元件可以包括设备、部件、处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等等)、集成电路ASIC、PLD、DSP、FPGA、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等等。在一些示例中,软件元件可以包括软件部件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、功能、方法、过程、软件接口、API、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。确定是否使用硬件元件和/或软件元件来实现一个示例可以根据任何数量的因素而变化,任何数量的因素诸如是如给定示例期望的期望计算速率、功率水平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其他设计或性能约束。
一些示例可以包括制造品或至少一个计算机可读介质。计算机可读介质可以包括存储逻辑的非暂时性存储介质。在一些示例中,非暂时性存储介质可以包括能够存储电子数据的一种或多种类型的计算机可读存储介质,其包括易失性存储器或非易失性存储器、可移动或不可移动存储器、可擦除或不可擦除存储器、可写或可重写存储器等。在一些示例中,逻辑可以包括各种软件元件,诸如软件部件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、功能、方法、过程、软件接口、API、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。
根据一些示例,计算机可读介质可以包括用于存储或维护指令的非暂时性存储介质,所述指令当由机器、计算设备或系统执行时,使得机器、计算设备或系统执行根据所期望示例的方法和/或操作。指令可以包括任何合适类型的代码,诸如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码等。指令可以根据预定义的计算机语言、方式或语法来实现,用于指令机器、计算设备或系统执行特定功能。可以使用任何合适的高级、低级、面向对象、可视化、编译和/或解释编程语言来实现指令。
可以使用“在一个示例中”或“一个示例”连同其派生词来描述一些示例。这些术语意味着结合示例描述的特定特征、结构或特性包括在至少一个示例中。在说明书中的不同地方出现的短语“在一个示例中”不一定全部指代同一个示例。
可以使用“耦合”和“连接”连同其派生词来描述一些示例。这些术语不一定意图作为彼此的同义词。例如,使用术语“连接”和/或“耦合”的描述可以指示两个或更多个元件彼此直接物理或电接触。然而,术语“耦合”也可以意味着两个或更多个元件彼此不直接接触,但又仍然彼此协作或交互。
以下示例与本文公开的技术的附加示例相关。
示例1。示例装置可以包括一个或多个寄存器,用于存储在多核处理器的核心执行工作负载线程时该核心的至少一个度量。该装置还可以在核心处包括执行代码的电路。执行的代码可以调度与核心执行工作负载线程相关的事件。执行的代码还可以响应于调度事件,从一个或多个寄存器取回第一度量,该第一度量指示在核心执行工作负载线程时核心在第一时间间隔内的第一性能特性。执行的代码还可以将第一度量推送到对用户空间应用可访问并且对多核处理器的其他核心可访问的存储器的共享存储器空间。
示例2。示例1的装置,存储器的共享存储器空间可以包括由核心和用户空间应用使用的无锁缓冲区。对于该示例,将第一度量推送到存储器的共享存储器空间包括将第一度量推送到无锁缓冲区。
示例3。示例1的装置,执行的代码还可以在将第一度量推送到存储器的共享存储器空间之前将时间戳添加到第一度量,该时间戳指示从一个或多个寄存器取回第一度量的时间。
示例4。示例1的装置,执行的代码还可以在将取回的至少一个度量推送到存储器的共享存储器空间之前,将时间戳和线程标识符添加到所述至少一个度量。时间戳可以指示从一个或多个寄存器取回至少一个度量的时间。线程标识符可以标识工作负载线程。
示例5。示例1的装置,执行的代码还可以调度与核心执行工作负载线程相关的第二事件。执行的代码还可以从一个或多个寄存器取回第二度量。第二度量可以指示在核心执行工作负载线程时该核心在第二时间间隔内的第二性能特性。对于该示例,响应于调度第二事件并且基于调度事件和调度第二事件之间的时间段低于时间段阈值,取回第二度量。执行的代码还可以将第二度量推送到存储器的共享存储器空间。
示例6。示例1的装置,事件可以包括新工作负载线程的启动、将工作负载任务的控制让给由核心执行的操作系统内核、任务抢占、异常处理、系统调用或从低功率状态给工作负载线程加电的信号。
示例7。示例1的装置,所述至少一个度量可以包括执行的指令、2级(L2)高速缓存未命中、L2高速缓存命中、3级(L3)高速缓存未命中、L3高速缓存命中、分支误预测、经过的核心时钟节拍、核心操作频率或核心存储器带宽使用。
示例8。示例1的装置,一个或多个寄存器可以是型号特定的寄存器。
示例9。一种示例方法可以包括在多核处理器的核心执行工作负载线程时,将该核心的至少一个度量存储到一个或多个寄存器。该方法还可以包括调度与核心执行工作负载线程相关的事件。该方法还可以包括响应于调度事件,从一个或多个寄存器取回第一度量,该第一度量指示在核心执行工作负载线程时该核心在第一时间间隔内的第一性能特性。该方法还可以包括将第一度量推送到对用户空间应用可访问并且对多核处理器的其他核心可访问的存储器的共享存储器空间。
示例10。示例9的方法,存储器的共享存储器空间可以包括由核心和用户空间应用使用的无锁缓冲区。对于该示例,将第一度量推送到存储器的共享存储器空间包括将第一度量推送到无锁缓冲区。
示例11。示例9的方法还可以包括在将第一度量推送到存储器的共享存储器空间之前,将时间戳添加到第一度量。时间戳可以指示从一个或多个寄存器取回第一度量的时间。
示例12。示例9的方法还可以包括在将取回的至少一个度量推送到存储器的共享存储器空间之前,将时间戳和线程标识符添加到所述至少一个度量。时间戳可以指示从一个或多个寄存器取回至少一个度量的时间。线程标识符可以标识工作负载线程。
示例13。示例9的方法还可以包括调度与核心执行工作负载线程相关的第二事件。该方法还可以包括从一个或多个寄存器取回第二度量,该第二度量指示在核心执行工作负载线程时该核心在第二时间间隔内的第二性能特性。对于该示例,响应于调度第二事件并且基于调度事件和调度第二事件之间的时间段低于时间段阈值,取回第二度量。该方法还可以包括将第二度量推送到存储器的共享存储器空间。
示例14。示例9的方法,事件可以是新工作负载线程的启动、将工作负载任务的控制让给由核心执行的操作系统内核、任务抢占、异常处理、系统调用或从低功率状态给工作负载线程加电的信号。
示例15。示例9的方法,所述至少一个度量可以是执行的指令、2级(L2)高速缓存未命中、L2高速缓存命中、3级(L3)高速缓存未命中、L3高速缓存命中、分支误预测、经过的核心时钟节拍、核心操作频率或核心存储器带宽使用。
示例16。示例9的方法,一个或多个寄存器可以是特定型号的寄存器。
示例17。至少一个机器可读介质的示例可以包括多个指令,所述多个指令响应于被系统执行,可以使得系统实行根据示例9至16中任一个的方法。
示例18。示例装置可以包括用于执行示例9至16中任一个的方法的构件。
示例19。至少一种机器可读介质的示例可以包括多个指令,所述多个指令响应于被系统执行,可以使得系统在多核处理器的核心执行工作负载线程时,将该核心的至少一个度量存储到一个或多个寄存器。指令还可以使得系统调度与核心执行工作负载线程相关的事件。指令还可以使得系统响应于调度事件,从一个或多个寄存器取回第一度量,该第一度量指示在核心执行工作负载线程时核心在第一时间间隔内的第一性能特性。指令还可以使得系统将第一度量推送到对用户空间应用可访问并且对多核处理器的其他核心可访问的存储器的共享存储器空间。
示例20。示例19的至少一个机器可读介质,存储器的共享存储器空间可以包括由核心和用户空间应用使用的无锁缓冲区。对于该示例,将第一度量推送到存储器的共享存储器空间包括将第一度量推送到无锁缓冲区。
示例21。示例19的至少一个机器可读介质,指令还可以使得系统在将第一度量推送到存储器的共享存储器空间之前,将时间戳添加到第一度量。时间戳可以指示从一个或多个寄存器取回第一度量的时间。
示例22。示例19的至少一个机器可读介质,指令还可以使得系统在将至少一个度量推送到存储器的共享存储器空间之前,将时间戳和线程标识符添加到取出的至少一个度量。时间戳可以指示从一个或多个寄存器取回至少一个度量的时间。线程标识符可以标识工作负载线程。
示例23。示例19的至少一种机器可读介质,指令还可以使得系统调度与核心执行工作负载线程相关的第二事件。指令还可以使得系统从一个或多个寄存器取回第二度量,该第二度量指示在核心执行工作负载线程时核心在第二时间间隔内的第二性能特性。对于该示例,响应于调度第二事件并且基于调度事件和调度第二事件之间的时间段低于时间段阈值,取回第二度量。指令还可以使得系统将第二度量推送到存储器的共享存储器空间。
示例24。示例19的至少一个机器可读介质,所述事件可以是新工作负载线程的启动、将工作负载任务的控制让给由核心执行的操作系统内核、任务抢占、异常处理、系统调用或从低功率状态给工作负载线程加电的信号。
示例25。示例19的至少一个机器可读介质,所述至少一个度量可以是执行的指令、2级(L2)高速缓存未命中、L2高速缓存命中、3级(L3)高速缓存未命中、L3高速缓存命中、分支误预测、经过的核心时钟节拍、核心操作频率或核心存储器带宽使用。
示例26。示例19的至少一个机器可读介质,一个或多个寄存器可以是特定型号的寄存器。
示例27。一种示例装置可以包括存储器接口,用于访问对多核处理器的核心可访问的存储器的共享存储器空间。该装置还可以包括用于执行用户空间应用的电路。用户空间应用可以经由存储器接口取回被存储到共享存储器空间的核心特定度量,该核心特定度量指示在多核处理器的一个或多个核心执行工作负载线程时该一个或多个核心的性能特性。用户空间应用还可以在一段时间间隔内聚集所取回的核心特定度量,以生成核心特定度量信息。用户空间应用还可以发布核心特定度量信息。
示例28。示例27的装置,发布核心特定度量信息可以包括用户空间应用将核心特定度量信息发送给QoS管理应用。
示例29。示例28的装置,QoS管理应用可以是由托管执行用户空间应用的电路的同一计算平台托管的本地QoS管理应用,或者可以是由托管执行用户空间应用的电路的不同计算平台托管的远程QoS管理应用。
示例30。示例27的装置,从在存储器的共享存储器空间中维护的多个无锁缓冲区取回核心特定度量。多核处理器的一个或多个核心中的每个核心可以被布置成推送度量以指示每个核心在执行一个或多个工作负载线程时在该时间间隔内的性能特性。每个核心的度量可以被推送到来自多个无锁缓冲区之中的不同无锁缓冲区。
示例31。示例27的装置,用于聚合所取回的核心特定度量以生成核心特定度量信息的用户空间应用包括该核心特定度量信息,以包括取回的核心特定度量的最小值、取回的核心特定度量的最大值、取回的核心特定度量的平均值或取回的核心特定度量的90百分位数值。
示例32。示例27的装置,用于执行用户空间应用的电路可以是多核处理器的专用核心处的电路,可以是网络接口处的电路,或者可以是现场可编程门阵列的电路。
示例33。一种示例方法可以包括取回被存储到对多核处理器的核心可访问的存储器的共享存储器空间的核心特定度量,该核心特定度量指示在多核处理器的一个或多个核心执行工作负载线程时该一个或多个核心的性能特性。该方法还可以包括在一段时间间隔内聚集所取回的核心特定度量,以生成核心特定度量信息。该方法还可以包括发布核心特定度量信息。
示例34。示例33的方法,发布核心特定度量信息进一步可以包括向QoS管理应用发送核心特定度量信息。
示例35。示例34的方法,QoS管理应用可以是本地QoS管理应用或者可以是远程QoS管理应用。
示例36。示例33的方法,可以从在存储器的共享存储器空间中维护的多个无锁缓冲区取回核心特定度量。多核处理器的一个或多个核心中的每个核心可以被布置成推送度量以指示每个核心在执行一个或多个工作负载线程时在该时间间隔内的性能特性。每个核心的度量可以被推送到来自多个无锁缓冲区之中的不同无锁缓冲区。
示例37。示例33用于聚集所取回的核心特定度量以生成核心特定度量信息的方法可以包括核心特定度量信息,以包括取回的核心特定度量的最小值、取回的核心特定度量的最大值、取回的核心特定度量的平均值或取回的核心特定度量的90百分位数值。
示例38。至少一个机器可读介质的示例可以包括多个指令,所述多个指令响应于被系统执行,可以使得系统实行根据示例33至37中任一个的方法。
示例39。示例装置可以包括用于执行示例33至37中任一个的方法的构件。
示例40。至少一个机器可读介质的示例可以包括多个指令,所述多个指令响应于被系统执行,可以使得系统取回被存储到对多核处理器的核心可访问的存储器的共享存储器空间的核心特定度量。核心特定度量可以指示在多核处理器的一个或多个核心执行工作负载线程时该一个或多个核心的性能特性。指令还可以使得系统在一段时间间隔内聚集所取回的核心特定度量,以生成核心特定度量信息。指令还可以使得系统发布核心特定度量信息。
示例41。示例40的至少一个机器可读介质,用于发布核心特定度量信息,进一步可以包括使得系统向QoS管理应用发送核心特定度量信息的指令。
示例42。示例41的至少一个机器可读介质,QoS管理应用可以是本地QoS管理应用或者可以是远程QoS管理应用。
示例43。示例40的至少一个机器可读介质,可以从在存储器的共享存储器空间中维护的多个无锁缓冲区取回核心特定度量。多核处理器的一个或多个核心中的每个核心可以被布置成推送度量以指示每个核心在执行一个或多个工作负载线程时在该时间间隔内的性能特性。每个核心的度量可以被推送到来自多个无锁缓冲区之中的不同无锁缓冲区。
示例44。示例40的至少一个机器可读介质,用于聚集所取回的核心特定度量以生成核心特定度量信息可以包括核心特定度量信息,以包括取回的核心特定度量的最小值、取回的核心特定度量的最大值、取回的核心特定度量的平均值或取回的核心特定度量的90百分位数值。
要强调的是,提供本公开的摘要以符合37 C.F.R.第1.72(b)节,要求摘要将允许读者快速明确技术公开的性质。在具有如下理解的情况下提交摘要:它将不被用来解释或限制权利要求的范围或含义。此外,在前面的具体实施方式中,可以看出,出于简化本公开的目的,在单个示例中将各种特征分组在一起。这种公开方法不应被解释为反映如下意图:要求保护的示例需要比每个权利要求中明确记载的更多特征。相反,如以下权利要求反映的,发明主题在于少于单个公开示例的所有特征。因此,以下权利要求特此并入具体实施方式,其中每个权利要求以其本身存在作为单独的示例。在所附权利要求书中,术语“包括”和“其中”分别用作相应术语“包括着”和“在其中”的简明英文等价物。此外,术语“第一”、“第二”、“第三”等仅用作标记,并且不旨在对它们的对象强加数字要求。
尽管以结构特征和/或方法动作专用的语言描述了主题,但应理解,所附权利要求书中限定的主题不一定被限制为上述的具体特征或动作。相反,上述的具体特征和动作是作为实现权利要求的示例形式公开的。

Claims (25)

1.一种装置,包括:
一个或多个寄存器,用于存储在多核处理器的核心执行工作负载线程时所述核心的至少一个度量;和
在所述核心处的电路,执行代码用于:
调度与所述核心执行工作负载线程相关的事件;
响应于调度所述事件,从所述一个或多个寄存器取回第一度量,第一度量指示在所述核心执行工作负载线程时所述核心在第一时间间隔内的第一性能特性;和
将第一度量推送到对用户空间应用可访问并且对多核处理器的其他核心可访问的存储器的共享存储器空间。
2.根据权利要求1所述的装置,包括存储器的共享存储器空间,以包括由所述核心和用户空间应用使用的无锁缓冲区,其中将第一度量推送到存储器的共享存储器空间包括将第一度量推送到无锁缓冲区。
3.根据权利要求1所述的装置,进一步包括用于执行代码以用于以下各项的电路:
在将第一度量推送到存储器的共享存储器空间之前将时间戳添加到第一度量,所述时间戳指示从所述一个或多个寄存器取回第一度量的时间。
4.根据权利要求1所述的装置,进一步包括用于执行代码以用于以下各项的电路:
在将取回的至少一个度量推送到存储器的共享存储器空间之前,将时间戳和线程标识符添加到所述至少一个度量,所述时间戳指示从所述一个或多个寄存器取回所述至少一个度量的时间,所述线程标识符标识工作负载线程。
5.根据权利要求1所述的装置,进一步包括用于执行代码以用于以下各项的电路:
调度与所述核心执行工作负载线程相关的第二事件;
从所述一个或多个寄存器取回第二度量,第二度量指示在所述核心执行工作负载线程时所述核心在第二时间间隔内的第二性能特性,其中响应于调度第二事件并且基于调度事件和调度第二事件之间的时间段低于时间段阈值,取回第二度量;和
将第二度量推送到存储器的共享存储器空间。
6.根据权利要求1所述的装置,其中,所述事件包括新工作负载线程的启动、将工作负载任务的控制让给由所述核心执行的操作系统内核、任务抢占、异常处理、系统调用或从低功率状态给工作负载线程加电的信号。
7.根据权利要求1所述的装置,其中,所述至少一个度量包括执行的指令、2级(L2)高速缓存未命中、L2高速缓存命中、3级(L3)高速缓存未命中、L3高速缓存命中、分支误预测、经过的核心时钟节拍、核心操作频率或核心存储器带宽使用。
8.根据权利要求1所述的装置,其中,所述一个或多个寄存器包括型号特定的寄存器。
9.一种方法,包括:
在多核处理器的核心执行工作负载线程时,将所述核心的至少一个度量存储到一个或多个寄存器;
调度与所述核心执行工作负载线程相关的事件;
响应于调度所述事件,从所述一个或多个寄存器取回第一度量,第一度量指示在所述核心执行工作负载线程时所述核心在第一时间间隔内的第一性能特性;和
将第一度量推送到对用户空间应用可访问并且对多核处理器的其他核心可访问的存储器的共享存储器空间。
10.根据权利要求9所述的方法,包括存储器的共享存储器空间,以包括由所述核心和用户空间应用使用的无锁缓冲区,其中将第一度量推送到存储器的共享存储器空间包括将第一度量推送到无锁缓冲区。
11.根据权利要求9所述的方法,进一步包括:
在将第一度量推送到存储器的共享存储器空间之前,将时间戳添加到第一度量,所述时间戳指示从所述一个或多个寄存器取回第一度量的时间。
12.根据权利要求9所述的方法,进一步包括:
在将取回的至少一个度量推送到存储器的共享存储器空间之前,将时间戳和线程标识符添加到所述至少一个度量,所述时间戳指示从所述一个或多个寄存器取回所述至少一个度量的时间,所述线程标识符标识工作负载线程。
13.根据权利要求9所述的方法,进一步包括:
调度与所述核心执行工作负载线程相关的第二事件;
从所述一个或多个寄存器取回第二度量,第二度量指示在所述核心执行工作负载线程时所述核心在第二时间间隔内的第二性能特性,其中响应于调度第二事件并且基于调度事件和调度第二事件之间的时间段低于时间段阈值,取回第二度量;和
将第二度量推送到存储器的共享存储器空间。
14.根据权利要求9所述的方法,其中,所述事件包括新工作负载线程的启动、将工作负载任务的控制让给由所述核心执行的操作系统内核、任务抢占、异常处理、系统调用或从低功率状态给工作负载线程加电的信号。
15.根据权利要求9所述的方法,其中,所述至少一个度量包括执行的指令、2级(L2)高速缓存未命中、L2高速缓存命中、3级(L3)高速缓存未命中、L3高速缓存命中、分支误预测、经过的核心时钟节拍、核心操作频率或核心存储器带宽使用。
16.根据权利要求9所述的方法,其中,所述一个或多个寄存器包括特定型号的寄存器。
17.至少一个机器可读介质,包括多个指令,所述多个指令响应于被系统执行使得所述系统实行根据权利要求9至16中任一项的方法。
18.一种装置,包括:
存储器接口,用于访问对多核处理器的核心可访问的存储器的共享存储器空间;和
用于执行用户空间应用的电路,所述用户空间应用用于:
经由存储器接口取回被存储到共享存储器空间的核心特定度量,所述核心特定度量指示在多核处理器的一个或多个核心执行工作负载线程时所述一个或多个核心的性能特性;
在一段时间间隔内聚集所取回的核心特定度量,以生成核心特定度量信息;和
发布核心特定度量信息。
19.根据权利要求18所述的装置,发布核心特定度量信息进一步包括用户空间应用将核心特定度量信息发送给服务质量(QoS)管理应用,其中所述QoS管理应用是由托管执行用户空间应用的电路的同一计算平台托管的本地QoS管理应用,或者是由托管执行用户空间应用的电路的不同计算平台托管的远程QoS管理应用。
20.根据权利要求18所述的装置,其中,从在存储器的共享存储器空间中维护的多个无锁缓冲区取回核心特定度量,多核处理器的一个或多个核心中的每个核心被布置成推送度量以指示每个核心在执行一个或多个工作负载线程时在所述时间间隔内的性能特性,每个核心的度量将被推送到来自多个无锁缓冲区之中的不同无锁缓冲区。
21.根据权利要求18所述的装置,其中,聚合所取回的核心特定度量以生成核心特定度量信息包括核心特定度量信息,以包括取回的核心特定度量的最小值、取回的核心特定度量的最大值、取回的核心特定度量的平均值或取回的核心特定度量的90百分位数值。
22.根据权利要求18所述的装置,用于执行用户空间应用的电路包括多核处理器的专用核心处的电路、网络接口处的电路或者现场可编程门阵列的电路。
23.至少一个机器可读介质,包括多个指令,所述多个指令响应于被系统执行,使得所述系统:
取回被存储到对多核处理器的核心可访问的存储器的共享存储器空间的核心特定度量,所述核心特定度量指示在多核处理器的一个或多个核心执行工作负载线程时所述一个或多个核心的性能特性;
在一段时间间隔内聚集所取回的核心特定度量,以生成核心特定度量信息;和
发布核心特定度量信息。
24.根据权利要求23所述的至少一个机器可读介质,其中,发布核心特定度量信息进一步包括使得所述系统向服务质量(QoS)管理应用发送核心特定度量信息的指令,其中所述QoS管理应用是本地QoS管理应用或是远程QoS管理应用。
25.根据权利要求23所述的至少一个机器可读介质,其中,从在存储器的共享存储器空间中维护的多个无锁缓冲区取回核心特定度量,多核处理器的一个或多个核心中的每个核心被布置成推送度量以指示每个核心在执行一个或多个工作负载线程时在所述时间间隔内的性能特性,每个核心的度量将被推送到来自多个无锁缓冲区之中的不同无锁缓冲区。
CN202211083345.9A 2021-10-06 2022-09-06 用于核心特定度量收集的技术 Pending CN115934309A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/495454 2021-10-06
US17/495,454 US20220027278A1 (en) 2021-10-06 2021-10-06 Techniques for core-specific metrics collection

Publications (1)

Publication Number Publication Date
CN115934309A true CN115934309A (zh) 2023-04-07

Family

ID=79688235

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211083345.9A Pending CN115934309A (zh) 2021-10-06 2022-09-06 用于核心特定度量收集的技术

Country Status (3)

Country Link
US (1) US20220027278A1 (zh)
EP (1) EP4163795A1 (zh)
CN (1) CN115934309A (zh)

Also Published As

Publication number Publication date
US20220027278A1 (en) 2022-01-27
EP4163795A1 (en) 2023-04-12

Similar Documents

Publication Publication Date Title
US10331492B2 (en) Techniques to dynamically allocate resources of configurable computing resources
US8484495B2 (en) Power management in a multi-processor computer system
Cho et al. Natjam: Design and evaluation of eviction policies for supporting priorities and deadlines in mapreduce clusters
US10613957B2 (en) Achieving balanced execution through runtime detection of performance variation
US8219993B2 (en) Frequency scaling of processing unit based on aggregate thread CPI metric
EP3087503B1 (en) Cloud compute scheduling using a heuristic contention model
EP3361386B1 (en) Intelligent far memory bandwidth scaling
US20170279703A1 (en) Managing variations among nodes in parallel system frameworks
US20180129503A1 (en) Techniques for managing a distributed computing environment using event digests
CN111611125A (zh) 用于改善高性能计算应用的性能数据收集的方法与设备
US9916104B2 (en) Techniques for entry to a lower power state for a memory device
US20120297216A1 (en) Dynamically selecting active polling or timed waits
CN111190735B (zh) 一种基于Linux的片上CPU/GPU流水化计算方法及计算机系统
EP2972826B1 (en) Multi-core binary translation task processing
BR112015030433B1 (pt) Processo executado por um computador que inclui uma pluralidade de processadores, artigo de fabricação e computador
US11734067B2 (en) Multi-core system and controlling operation of the same
KR20240004361A (ko) 프로세싱-인-메모리 동시적 프로세싱 시스템 및 방법
CN115981833A (zh) 一种任务处理方法及装置
US8862786B2 (en) Program execution with improved power efficiency
US10127076B1 (en) Low latency thread context caching
EP4163795A1 (en) Techniques for core-specific metrics collection
Niemi et al. Memory-based scheduling of scientific computing clusters
US10452546B2 (en) Cache utility modeling for automated cache configuration
EP4160423B1 (en) Memory device, memory device operating method, and electronic device including memory device
Choi et al. A simulation-based study for DRAM power reduction strategies in GPGPUs

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination