一种用于非均衡存储器存取计算机系统的调度程序从不与任何CPU(201-204)关联的通用准备队列(305)中调度线程,但偏向于将线程调度到具有较短存储器存取时间的CPU。优选的,该系统包括多个分离节点(101-104),每一节点具有本地存储器(205)和一个或多个CPU。系统主存是包括本地存储器集合的分布式存储器。相应优选CPU和优选节点可与每一线程关联。当CPU变得可用时,该调度程序将至少相对的优先权(714-717;801-804)给予在与可用CPU相同的节点中具有优选CPU的线程,而不是在不同节点中具有优选CPU的线程。该优先级是相对的,并不防止该调度不考虑该优先级以避免资源不足或其他问题。(*该技术在2022年保护过期,可自由使用*)
【技术实现步骤摘要】
本专利技术涉及多任务计算机系统,并具体涉及在具有多中央处理器和非均衡存储器存取的系统中的任务或线程调度。
技术介绍
现代计算机系统典型地包括中央处理器(CPU)和存储、检索和传送信息所必须的支持硬件,例如通信总线和存储器。它也包括与外界通信所必须的硬件,例如输入/输出控制器或存储控制器,及其附属装置,例如键盘、监视器、磁带驱动器、磁盘驱动器、与网络耦接的通信线等。该CPU是该系统的核心。它执行包括计算机程序的指令并指导其他系统组件的操作。从计算机的硬件立场出发,大多数系统以基本相同的方式工作。处理器能执行一组有限的非常简单的运算,例如算术、逻辑比较和数据从一个位置移动到另一位置。但每一运算执行得非常快。指导计算机执行大量这些简单运算的程序给出了计算机能做复杂事情的错觉。通过本质上执行同组的非常简单的运算但更快地完成,用户能感觉到计算机系统具有新的或改善的能力。所以,持续改善计算机系统需要使这些系统更快。计算机系统的总速度(也称为吞吐量)可粗略测量为单位时间内执行的操作次数。概念上,系统速度的所有可能改善的最简单之处在于增加各种组件的时钟速度,尤其是处理器的时钟速度。例如,如果一切都运行快两倍,而其他方面以完全相同的方式工作,则系统将用一半时间执行给定任务。由许多分立组件构成的早期计算机处理器通过收缩组件尺寸、减少组件数目、并最终将整个处理器作为集成电路封装在单一芯片上,可得到显著的速度改善。该减少的尺寸可能增加处理器的时钟速度,并因此增加系统速度。尽管从集成电路获得的速度改善很大,但对更快计算机系统的需求一直持续着。硬件设计者通过进一步集成(即增加在单一芯片上封装的电路数目)、电路尺寸的进一步减小和各种其他技术已能够获得更大的速度改善。然而,设计者能看出物理尺寸的减小不能无限继续下去,并且他们继续增加处理器时钟速度的能力也有限。因此,注意力被指向进一步改善计算机系统的吞吐量的其他方案上。不改变时钟速度,利用多处理器可能改善系统吞吐量。在集成电路芯片上封装单个处理器的适度成本使得该方案可行。然而,不能简单地通过将一个处理器变为两个来加倍系统的吞吐量。将多处理器引入系统中产生很多结构问题。例如,多处理器典型地共享同一主存(尽管每一处理器可具有它自己的高速缓存)。所以必须设计一种机构,能避免存储器存取冲突,并保证以连贯方式跟踪高速缓存中的数据的额外拷贝。而且,每一处理器对例如内存、I/O、存储器、以及尤其连接各组件的通信总线的系统其他组件提出附加要求。随着更多处理器的引入,结构问题变得越来越复杂,可扩缩性变得更难,并且很可能处理器将花费很多时间来等待另一处理器正使用的某一资源。所有这些问题和其他更多问题被系统设计者得知,并以一种或另一种形式提出。尽管不可能得到完美的解决方案,但在该领域的改善一直在持续。近年来得到一些赞同的一个结构方案是具有处理器和关联存储器的分离节点的计算机系统设计,也称为分布式共享存储器计算机系统或非均衡存储器存取(NUMA)计算机系统。在传统的对称多处理器系统中,主存被设计为单一的大数据存储实体,能被系统中的所有CPU平等存取。随着CPU数目的增加,在总线以及存取该主存的机构中存在越来越大的瓶颈。NUMA系统通过将主存分为分离的子集而解决该问题,其中每一子集物理上与相应CPU关联,或更典型地,与相应CPU组关联。存储器和关联CPU以及其他硬件的子集有时称为“节点”。节点典型地具有内部存储器总线,在该节点内提供从CPU到本地存储器的直接存取。较慢的间接机构用于越过节点边界进行存取的存储器。因此,尽管任何CPU仍能存取任意存储器位置,但是CPU存取其自己节点内的地址比存取其节点外的地址快(因此,术语“非均衡存储器存取”)。通过限制一个节点内部存储器总线上的器件数目,即使在具有大量CPU的系统中,总线仲裁机构和总线业务量也能保持在可管理的水平,因为这些CPU中的大多数将在不同节点中。从硬件角度出发,这意味着NUMA系统结构具有增加可扩缩性的潜在优点。NUMA系统提供节点间存取以使其具有单一逻辑主存,每一位置具有唯一的地址。但是节点间存取相对慢,并难以承担某些系统资源。为了使NUMA系统有效工作,CPU需要的数据必须一般存储在同一节点的实存中。保证其总处于不施加过度严格限制的情况是不切实际的。可以期望减少节点间存储器存取的需求的存储器分配机构。在多任务系统计算机系统中,操作系统典型地管理某些系统资源的分配,并尤其是向CPU调度任务(或线程)以及存储器的分配。在这样的系统中,多线程是同时激活的。通常,激活线程的数目超出系统中CPU的数目。给定线程典型地在CPU中执行几个循环,然后尽管没有完成,但被暂时停下并置于队列中,以便稍后继续执行。线程可由于其达到了时限、由于其被更高优先权线程预先耗尽、由于其必须等待某一等待事件,例如内存存取或锁定释放、或其他一些原因而中断。通过允许第一个线程等待时执行另一个线程,可充分利用CPU资源。当由于这些或任何其他原因而可以利用CPU执行一个线程时,操作系统中的调度程序典型地判定多等待线程中的哪一个将调度到可用CPU用于执行。传统的调度程序通常为对称多处理器计算机系统而设计,其中存储器能被所有CPU平等存取,但不能最佳地考虑非均衡存储器存取对任务调度的影响。例如,在Microsoft Windows 2000TM操作系统使用的调度程序中,根据包括预先指定的优先权、队列中的时间长度、该线程是否在同一CPU中最后执行、该CPU是否指派为该线程的优选处理器、及其他因素的各种考虑而选择调度的线程。这些因素意欲优化CPU利用,这当然一般是理想的。然而,调度程序不考虑CPU的节点位置,并且尽管非常充分地利用CPU,但由于不必要的大量节点间存储器存取而可能使系统吞吐量不堪重负。一些调度程序能向CPU施加对线程或任务分配的严格限制,从而总是在同一CPU或同一节点执行特定的线程。在其中系统资源被分为分离的子集、而处理被指定给各子集的计算机系统中,系统的逻辑分区可获得类似效果。在一些情况下,这些效果是考虑周到的(例如一组处理保证有一定量的资源,而不干扰其他处理)。然而,这可导致一些CPU的利用不足和/或过度利用CPU中的瓶颈。为NUMA平台设计的一种公知操作系统是Sequent Computers(现在是IBM公司的一个部门)的PTX操作系统。PTX提供多个运行队列,每个CPU使用一个,并向用户提供为任意CPU组定义附加运行队列的能力。当初始化一个处理时,其被指定到运行队列之一,而且当等待执行时,由该处理产生(spawn)的所有线程位于该运行队列。此后,该操作系统优先调度该处理的线程到其指定的运行队列的一个CPU或多个CPU,并且在有些偏低的优先级,将该处理的线程调度到在与指定运行队列的一个CPU(或多个CPU)相同的系统节点内的多个CPU。该操作系统还包括在正在进行的基础上,监视每一CPU的CPU利用和每一节点的存储器利用的能力。如果在特定节点的CPU利用和/或存储器利用足够高,则该操作系统可调度线程到没有包含该优选CPU(或多个CPU)的节点。以这种方式,PTX利用该NUMA结构的优点,并避免可能导致资源利用的大差距的对线程调度的严格限制。尽管没有必然认识,但存在本文档来自技高网...
【技术保护点】
一种在计算机系统中将线程调度到中央处理器(CPU)的方法,所述计算机系统具有多个CPU(201-204)和分为多个分离子集的存储器(210),所述方法包括步骤:(a)确定目标CPU;(b)确定适于在所述目标CPU上执行的线程 集(701),所述线程集在与任何CPU或CPU组都不关联的通用准备队列(305)上等待;(c)为所述线程集的每一相应线程确定所述存储器的多个分离子集的至少一个目标子集,每一个目标子集具有由所述目标CPU存储器存取该目标子集内的位置的 相应等待时间周期,其中用于存储器存取的所述各相应等待时间周期不全相等;并且(d)从在所述目标CPU上执行的所述线程集中选择一个线程(710-725),所述选择步骤至少一部分基于每一目标子集的所述相应等待时间周期。
【技术特征摘要】
...
【专利技术属性】
技术研发人员:贾尔W麦克唐纳,
申请(专利权)人:国际商业机器公司,
类型:发明
国别省市:US[美国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。