动态分配计算机资源的方法和装置制造方法及图纸

技术编号:2870313 阅读:234 留言:0更新日期:2012-04-11 18:40
一种装置、程序代码和方法,根据与线程关联的特定“类型”把这些线程动态地指定到包括多个物理子系统的多线程计算机中的计算机资源。具体地说,按线程类型分配驻留在计算机的同一物理子系统内的资源,从而那些特定线程类型的新建线程和/或再激活线程动态地被指定到分配给它们各自线程类型的资源。这样,共享同一类型的那些线程通常被指定到驻留在计算机的同一物理子系统内的计算机资源,这往往减少驻留在一个计算机中的多个物理子系统之间的交叉通信量,从而改善系统总体性能。

【技术实现步骤摘要】

本专利技术涉及计算机和计算机软件,特别是涉及多线程计算机中的计算机资源分配。
技术介绍
由于当代社会中对计算机的依赖不断增长,计算机技术不得不在许多前沿取得进步,以跟上不断增长的需求。大量研究与开发工作的一个特别课题是并行化,即多个任务并行执行的性能。已开发出若干计算机软件和硬件技术,以有利于增强并行处理。从软件的角度看,已开发出多线程操作系统和内核,它们允许计算机程序以多“线程”并发执行,从而使多个任务基本上能同时进行。线程通常代表程序的一些独立的执行路径。例如,对于一个电子商务计算机应用,不同的线程可被指定到不同的客户,从而每个客户的指定电子商务事务可以在一单独的线程中得到处理。从硬件角度看,计算机越来越依赖于多个微处理器,以提供增强的工作负荷能力。再有,已开发出某些微处理器,它们支持并行执行多个线程的能力,在效果上提供了通过使用多个微处理器所能得到的许多同样的性能增益。然而,在多处理器计算机中出现的一个重要的瓶颈与进、出每个微处理器的数据传送相关联,这个瓶颈通常被称作通信成本。大多数计算机依靠主存储器,其作为该计算机的主要工作存储器。然而,从主存储器中检索数据和把数据存回主存储器往往被要求以明显低于微处理器内部数据传送速度的速度进行。当微处理器使用数据时,往往利用称作高速缓存的中间缓冲器来暂时存储来自主存储器的数据。这些高速缓存往往比主存储器尺寸小但速度显著较快。高速缓存往往利用数据的时间和空间的局部性,结果往往显著减少计算机中发生的比较慢的对主存储器的访问次数并减少了计算机承受的总通信成本。在一个计算机中的全部微处理器往往共享同一个主存储器,这种体系结构通常称作对称多处理(SMP)。然而,这类计算机的一个限制是由于通常要求在一个公共总线或互连上进行多个微处理器与主存储器之间的所有通信。随着计算机中微处理器个数的增加,到主存储器的通信量成为计算机性能的瓶颈,其与是否使用中间高速缓存无关。为克服这一潜在的瓶颈,许多计算机设计依靠非均衡存储器访问(NUMA),以此使多个主存储器基本上分布在一个计算机上并与各组微处理器和高速缓存组合成物理子系统或模块。一个NUMA计算机的每个物理子系统中的微处理器、高速缓存和存储器通常被安装在同一电路板或电路卡上,以提供物理子系统内的所有“本地”部件之间较高速的交互。这些物理子系统还通过网络(如一系统总线或一些点到点互连的集合)彼此连接,从而允许一个物理子系统中的微处理器访问存储在另一物理子系统中的数据,这样便能有效地扩展计算机的总体能力。然而,由于对存储在本地存储器(即与微处理器处在同一物理子系统中的存储器)中的数据的访问时间往往显著地短于对存储在远程存储器(即处在另一物理子系统中的存储器)中的数据的访问时间,所以这种存储器访问被称作“非均衡的”。所以,从通信成本的角度看,在NUMA系统中,通过使数据通信本地化于每个物理子系统内并最大限度地减少需在各物理子系统之间传送数据的次数,使NUMA系统中的性能达到最佳。有效地利用计算机中的硬件资源往往需要软件和硬件之间的协调努力。如前所指,从软件的角度看,由计算机进行的大部分工作由各线程处理。为保证最佳性能,线程通常被指定到各可用计算机资源子集,其指定方式是更使计算机的工作负荷在各可用计算机资源上均匀分布。例如,为了有效地利用微处理器,希望在可用微处理器当中均匀分布线程,以平衡每一单个微处理器的工作负荷,这一过程称作“对称”资源分配。然而,由于通信成本也能对系统性能造成显著影响,所以也希望逻辑上把一个线程与它将使用的数据绑在一起,于是,只要可能,便把线程对数据的访问本地化在一个高速缓存中,或者,如果是在一个NUMA计算机中,则至少本地化在同一物理子系统之内。否则,访问非本地化数据的通信成本可能超过线程对称分布所带来的好处。通常,数据与线程的捆绑需要由人决定把通用型线程与物理上本地化的存储器、处理器以及相关资源关联起来。在对称资源管理方案中,线程是在激活时,例如每当创建或再激活线程的时候,被分配的。被激活的线程通常被指定到最可能得到的或负荷最小的资源或资源组。然而,为解决通信成本问题进行的资源(如存储器资源)非均衡分布通常不是以这种自动和透明的方式实现的。而是,非均衡资源管理往往需要大量的用户分析和定制配置,包括例如计算机程序的定制编程以具体解决资源分配问题。资源管理更希望在计算机的操作系统级或内核级进行,从而不依赖于用到可能安装在计算机上的应用或其他计算机程序上的任何特定编程技术。具体地说,当把资源管理嵌入操作系统或内核中时,这样的资源管理将不需要在较高级计算机程序中进行特定的定制以支持计算机资源的最佳分配,从而对可能在给定计算机上执行的所有计算机程序提供性能上的好处。特别是在NUMA计算机中,那里通过把线程利用的资源本地化在单个物理子系统中而获得性能上的好处,将更加希望以更透明的方式实现有效的资源分配,而无需显著的定制。
技术实现思路
本专利技术通过提供一种装置、程序产品和方法来解决与现有技术有关的这些及其他问题,在这一装置、程序产品和方法中,根据与线程关联的特定“类型”把线程动态地指定到备计算机资源。具体地说,按线程类型分配驻留在计算机的同一物理子系统内的资源,从而那些特定类型的新建线程和/或再激活线程被动态地指定到分配给它们各自线程类型的资源。这样,共享同一类型的那些线程通常被指定到驻留在计算机的同一物理子系统内的计算机资源,而且往往是以基本上透明的方式,而无需对这些线程所关联的计算机程序进行任何显著的定制。如在下文中将清楚看到的那样,可以利用很多线程属性或特征把线程分类成各种线程类型。除了其他可能的区分外,可根据运行优先级、对缓冲区的指定、用户标识、用户简档、存储器子系统、父任务、父线程、父作业、父应用以及用户授权等属性中的一个或多个来定义线程类型。在许多实例中,这里描述的线程指定将显著减少一特定物理子系统内的资源与驻留在其他物理子系统中的其他资源交互的需求。而是,一个特定线程的通信量和处理开销更可能局限在单个物理子系统内,从而消除伴随子系统之间通信的开销并使系统性能达到最好。在一些实施例中,与给定线程类型相关联的资源可被限定在单一物理子系统内。然而,在其他一些实施例中,一个线程类型可被分配来自多个物理子系统的资源。然而,在后一些实施例中,可能仍然希望把具有给定线程类型的各个线程指定到驻留在已为该线程类型分配了资源的那些物理子系统中的只一个子系统上的那些资源。在这里所附的并构成本说明书又一部分的权利要求中列举了表征本专利技术的这些和其他特点和优点。然而,为了更好地理解本专利技术以及通过使用本专利技术所获得的好处和达到的目的,应参考附图以及相关的描述,其中描述了本专利技术的实施示例。附图说明图1是一多线程计算机中主要硬件组件的方框图,在该计算机中纳入了根据本专利技术的动态资源分配。图2是图1的多线程计算机中主要软件组件的方框图。图3是流程图,显示由图2中引用的线程调度程序执行的激活线程例程的程序流。图4是流程图,显示由图2中引用的线程调度程序执行的另一个激活线程例程的程序流。图5是流程图,显示由操作系统执行的启动应用/逻辑子系统例程的程序流,该例程与图4所示激活线程例程结合使用。图6A-6D是方框图,显示按本专利技术的方式在一多线程计算本文档来自技高网
...

【技术保护点】
一种在包括多个不同物理子系统的多线程计算机中动态分配计算机资源的方法,该方法包括:    (a)对于多个线程类型当中的每个线程类型,使物理上位于该多线程计算机中一个共同的物理子系统内的一组计算机资源与这一线程类型相关联;以及    (b)响应激活一个线程的请求,把该线程指定到与该线程的线程类型相关联的那组计算机资源。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:PJ海尔曼KR赫普勒HJ梅KC沃森
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1