CN101634953A - 搜索空间计算方法和装置及自适应线程调度方法和*** - Google Patents
搜索空间计算方法和装置及自适应线程调度方法和*** Download PDFInfo
- Publication number
- CN101634953A CN101634953A CN200810133251A CN200810133251A CN101634953A CN 101634953 A CN101634953 A CN 101634953A CN 200810133251 A CN200810133251 A CN 200810133251A CN 200810133251 A CN200810133251 A CN 200810133251A CN 101634953 A CN101634953 A CN 101634953A
- Authority
- CN
- China
- Prior art keywords
- thread
- binding
- thread scheduling
- bindings
- multithreading
- 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
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了用于计算可供在多核***上对多线程应用进行线程调度时使用的线程调度搜索空间的方法和装置,以及利用该方法和/或装置进行自适应线程调度的方法和***。所述计算搜索空间的方法包括:获取有关多线程应用和多核***的硬件结构的信息;通过参考所述有关信息,计算所有可能的、包含多个线程与多个核之间的映射关系的绑定选择;基于多核***的硬件结构,从所有可能的绑定选择中找出所有彼此相同或等效的绑定选择;以及在所有可能的绑定选择中,对于所有彼此相同或等效的绑定选择,保留其中之一,而除去其余彼此相同或等效的绑定选择,以得到可供线程调度时使用的搜索空间。
Description
技术领域
本发明总体上涉及多核计算机领域,并且尤其涉及如何在多核硬件平台上进行多个软件线程的调度的线程调度技术。
背景技术
自多核技术提出后,多核处理器已经成为大家公认的处理器设计趋势。而且,随着多核芯片市场的发展,出现了越来越多的基于多核的***(例如,服务器和个人计算机)。这些基于多核的***提供了多线程应用可以同时运行许多线程这样的能力。多线程应用总是创建多个线程,并且由于存在多个线程和多个核,因此需要将多个线程调度到不同的核上以便执行。线程在不同核上的运行方式将会在很大程度上影响到***的性能。
多线程应用和多核技术对于如何将软件线程调度到多个硬件核上提出了新的挑战。从软件的角度来说,多线程应用是更加高速缓存敏感的(即,在多个线程当中共享总的高速缓存大小)。而且,多线程应用的存储模型/编程模型决定了在不同线程之间有大量的共享资源(例如,全局变量、原子变量、锁机制等),其中所述线程通常是基于要共享的高速缓存、前端总线(FSB)或者计算单元的。而从硬件核的角度来说,多核服务器通常具有分级高速缓存结构,例如,L1高速缓存是专用的,L2高速缓存由同一处理器中的多个核共享,而L3高速缓存可由不同插座(socket)上的处理器共享,等等。而且,多核处理器技术还提出了许多新的硬件线程模型,例如,同步多线程(SMT)/片上多线程(CMT)/超线程(HT)模型,它们是逻辑硬件线程而不是物理核,并且共享FSB的硬件资源、计算单元等。由此,导致存在许多线程调度问题。例如,线程到核的不好的调度会由于存在快取置换(cache thrashing)、资源竞争等问题而导致***性能降低。而且,由于可能存在M个不同的软件线程和N个硬件线程(其中N和M为自然数),而且N个硬件线程与复杂的硬件结构有关,因此编程人员或者***性能分析人员难以确定最优的线程调度方法。此外,在某一多线程应用已经在某一特定硬件平台上适应得很好了的情况下,如果想要把这个应用移植到另一个与该特定平台具有不同的硬件线程类型/核/高速缓存结构的硬件平台上,那么将会是非常困难的。
目前已经提出了很多应用在多核环境下的线程调度方法和/或***,例如,可以参见美国专利US6779182B1和US4910660A,C.Severance和R.Enbody所著的、题为“Automatic Self-allocating Thread(ASAT)on anSGI Challenge”的文章(参见Proceedings of 1996 InternationalConference on Parallel Processing(ICPP′96),Vol.3,第III-132~III-139页,1996年8月),以及Bodhisattwa Mukherjee和Karsten Schwan所著的、题为“Implementation of Scalable Blocking Locks Using an AdaptiveThread Scheduler”(参见Proceedings of the 10th International ParallelProcessing Symposium(IPPS′96),第339~343页,1996年)的文章等。然而,这些已有的线程调度方法和/或***都没有充分考虑到不同线程之间的交互和/或资源共享问题,因此存在诸如费时、无法资源共享等问题。
将多个线程调度到多个核上的过程就像是数学上的球盒(ball-box)问题,因此,可以根据排列组合的原理计算所有可能的、包含多个线程与多个核之间的映射关系的线程调度选择。例如,在多线程应用可以生成M个软件线程且多核***具有N个硬件核的情况下,对于从M到N的映射关系,如果假设一个线程只能被调度给一个核,则总计可能存在NM种线程调度选择(在下文中将其称为绑定选择),其中包含M个线程与N个硬件的所有可能的映射关系,这时可以认为,包含所有从线程到核的绑定选择的、总的搜索空间大小为NM。在此,搜索空间表示应用程序(单线程应用或多线程应用)在多核硬件平台上的线程调度选择或方案(即,绑定选择或方案)的组合空间。在这种情况下,例如,如果在4个核上有6个软件线程,则总计可能存在46=4096种绑定选择。例如,如果针对每种绑定选择的性能测量需要1分钟,则总的测量时间要接近3天,即使使用比较好的、例如仅需要该时间的10%来得到搜索结果的搜索算法,也仍然需要大约7个小时。也就是说,即使采用目前已知的最佳搜索算法从这个搜索空间中查找最优的绑定选择,这个搜索空间也太大了,所需要的搜索时间也太长了。
因此,如何减小包含多个线程到多个核的所有绑定选择的巨大的搜索空间,以便从中快速地找到令人满意的绑定方案,是当前迫切要解决的一个重要问题。
此外,还迫切需要一种设计良好的、用于将多个线程调度到多个核上的线程调度方法,以确保多线程应用在多核硬件平台上具有令人满意的运行性能。
发明内容
在下文中给出了关于本发明的简要概述,以便提供关于本发明的某些方面的基本理解。应当理解,这个概述并不是关于本发明的穷举性概述。它并不是意图确定本发明的关键或重要部分,也不是意图限定本发明的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。
为了解决现有技术中的上述问题,本发明的一个目的是,提供一种用于计算可供在多核***上对多线程应用进行线程调度时使用的线程调度搜索空间的方法和/或装置,其能够基于多核***的硬件结构,从所有可能的绑定选择中找出所有彼此相同或等效的绑定选择,并且在所有可能的绑定选择中仅保留所有彼此相同或等效的绑定选择其中之一,而除去其余彼此相同或等效的绑定选择,以得到减小了的线程调度搜索空间。
在此,两个绑定选择等效,意味着多线程应用依据这两种绑定选择进行线程调度时“预期”会产生相同的效果,例如,程序运行的速度相同,CPU的利用率相同,内存占用空间相同等。
本发明的另一个目的是,提供一种利用上述计算线程调度搜索空间的方法和/或装置进行自适应线程调度的方法和/或***,其能够在减小了的线程调度搜索空间中模拟运行多线程应用,并且基于多核***的性能监视结果从所述线程调度搜索空间中搜索并确定优选绑定方案,据此产生调度执行计划,并在真实环境下实际应用该调度执行计划。
为了实现上述目的,根据本发明的一个方面,提供了一种用于计算可供在多核***上对多线程应用进行线程调度时使用的线程调度搜索空间的方法,包括以下步骤:获取有关多线程应用和多核***的硬件结构的信息;通过参考所述有关信息,计算所有可能的、包含多个线程与多个核之间的映射关系的绑定选择;基于多核***的硬件结构,从所有可能的绑定选择中找出所有彼此相同或等效的绑定选择;以及在所有可能的绑定选择中,对于所有彼此相同或等效的绑定选择,保留其中之一,而除去其余彼此相同或等效的绑定选择,以得到可供线程调度时使用的搜索空间。
根据本发明的另一个方面,还提供了一种用于计算可供在多核***上对多线程应用进行线程调度时使用的线程调度搜索空间的装置,包括:信息获取器,被配置用于获取有关多线程应用以及多核***的硬件结构的信息;绑定选择计算器,被配置用于通过参考所述有关信息,计算所有可能的、包含多个线程与多个核之间的映射关系的绑定选择;绑定选择检测器,被配置用于基于多核***的硬件结构,从所有可能的绑定选择中找出所有彼此相同或等效的绑定选择,并保留所有彼此相同或等效的绑定选择其中之一,而除去其余彼此相同或等效的绑定选择;以及绑定选择存储器,用于存储可供线程调度时使用的线程调度搜索空间,该线程调度搜索空间是在所有可能的绑定选择中保留所有彼此相同或等效的绑定选择其中之一而除去其余彼此相同或等效的绑定选择而得到的。
根据本发明的另一个方面,还提供了一种使用上述计算线程调度搜索空间的方法进行自适应线程调度的方法,包括以下步骤:根据作为线程调度优化目标的多线程应用和多核硬件平台的有关信息,利用上述方法计算可用的线程调度搜索空间;在所述多核硬件平台上在所述线程调度搜索空间中模拟运行所述多线程应用,并且基于模拟运行所述多线程应用时所述多核硬件平台的性能监视结果,从所述线程调度搜索空间中搜索并确定优选的绑定选择,作为优选绑定方案;以及根据所确定的优选绑定方案产生调度执行计划,并实际应用该调度执行计划。
根据本发明还有的另一个方面,还提供了一种自适应线程调度***,包括:作为优化目标对象的多线程应用和多核硬件平台;上述计算线程调度搜索空间的装置,被配置用于根据多线程应用和多核硬件平台的有关信息计算可用的线程调度搜索空间;模拟运行控制器,被配置用于在所述多核硬件平台上在所述线程调度搜索空间中模拟运行所述多线程应用;以及性能监视器,被配置用于记录模拟运行所述多线程应用时所述多核硬件平台的性能监视结果,其中,所述模拟运行控制器基于来自所述性能监视器的性能监视结果,从所述线程调度搜索空间中搜索并确定优选的绑定选择,作为优选绑定方案,并根据所确定的优选绑定方案产生调度执行计划,并实际应用该调度执行计划。
依据本发明的其它方面,还提供了相应的计算机可读存储介质和计算机程序产品。
本发明的一个优点在于,通过利用根据本发明实施例的计算搜索空间的方法和/或装置,可以较大程度地减小可供在多核***上对多线程应用进行线程调度时使用的线程调度搜索空间。
本发明的另一个优点在于,通过利用本发明实施例的自适应线程调度方法和/或***,不管有多少不同的工作负荷或者多么复杂的硬件平台,都可以自动地确定优选的绑定方案。
本发明的又一个优点在于,在根据本发明实施例的自适应线程调度方法和/或***中,由于利用了根据本发明实施例的计算搜索空间的方法和/或装置而使得线程调度搜索空间被大大地减小了,而且该搜索空间是通过保留所有彼此相同或等效的绑定选择其中之一而除去其余彼此相同或等效的绑定选择而得到的,因此不会与现有的任何优化的搜索方法相冲突,使得可以使用任何已有的优选搜索方法,所以,可以使用自适应技术,并且可以更快地找到优选的绑定方案。
本发明还有一个优点在于,在根据本发明实施例的自适应线程调度方法和/或***中,可以屏蔽不同硬件平台间的差异,从而应用自动适应平台特征。
通过以下结合附图对本发明的最佳实施例的详细说明,本发明的这些以及其他优点将更加明显。
附图说明
本发明可以通过参考下文中结合附图所给出的描述而得到更好的理解,其中在所有附图中使用了相同或相似的附图标记来表示相同或者相似的部件。所述附图连同下面的详细说明一起包含在本说明书中并且形成本说明书的一部分,而且用来进一步举例说明本发明的优选实施例和解释本发明的原理和优点。在附图中:
图1示出了现有Intel四核处理器的结构示意图;
图2示出了根据本发明的一个实施例的计算可用线程得到搜索空间的方法的流程图,其中该方法可以基于多核***的体系拓扑结构,在所有可能的绑定选择中仅保留所有彼此相同或等效的绑定选择其中之一,而除去其余彼此相同或等效的绑定选择,使得搜索空间得以大幅度减小;
图3示出了根据本发明的一个实施例的搜索空间计算装置的结构示意图,其中该装置可以基于多核***的体系拓扑结构,通过在所有可能的绑定选择中仅保留所有彼此相同或等效的绑定选择其中之一,而除去其余彼此相同或等效的绑定选择,来得到减小了的绑定选择搜索空间;
图4示出了根据本发明一个实施例的利用图2所示的方法进行自适应线程调度的方法的流程图;
图5示出了根据本发明另一个实施例的自适应线程调度***的方框图,其中在该自适应线程调度***中包括如图3所示的搜索空间计算装置,并且可以执行以上结合图4所描述的自适应线程调度方法;以及
图6示出了对根据本发明实施例的自适应线程调度方法和/或***进行测试的会话发起协议(SIP)应用服务器测试场景。
本领域技术人员应当理解,附图中的元件仅仅是为了简单和清楚起见而示出的,而且不一定是按比例绘制的。例如,附图中某些元件的尺寸可能相对于其他元件放大了,以便有助于提高对本发明实施例的理解。
具体实施方式
在下文中将结合附图对本发明的示范性实施例进行描述。为了清楚和简明起见,在说明书中并未描述实际实施方式的所有特征。然而,应该了解,在开发任何这种实际实施例的过程中必须做出很多特定于实施方式的决定,以便实现开发人员的具体目标,例如,符合与***及业务相关的那些限制条件,并且这些限制条件可能会随着实施方式的不同而有所改变。此外,还应该了解,虽然开发工作有可能是非常复杂和费时的,但对得益于本公开内容的本领域技术人员来说,这种开发工作仅仅是例行的任务。
在此,还需要说明的一点是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的装置结构和/或处理步骤,而省略了与本发明关系不大的其他细节。
为了更好地描述多核***的体系拓扑结构,在此提出了一种公式化的描述方法,该公式化的描述方法不仅可以包含处理器的体系结构信息,而且还可以用来在线程调度过程中减小搜索空间。该公式化的描述方法具有如下所述的描述框架:
(1)用于表示各个核之间的关系的符号集,其中包括如下符号:
S:自身;
L1:共享L1高速缓存;
L2:共享L2高速缓存但不共享L1高速缓存;
D:在同一小片(die)内,但是排除L2和L1;
C:在同一芯片/插座内,但是排除D;
……。
显然,可能还存在其他以上并未列出的符号定义或约束条件(例如,可能由于新的架构设计而带来的新的共享或独享约束等)。在此,需要注意的是,该符号集的定义必须是具有完备性的(MECE,MutuallyExclusive Collectively Exhaustive),即,该符号集中各个符号代表的约束条件所表示的可能情况的总和包括了所有可能出现的情况,也就是说,各个符号的定义彼此相互之间是无交集的,而且所有符号合起来构成全集(即,包括所有可能出现的核与核之间的可能性的集合)。
(2)用于表明每一核对之间的关系的关联矩阵IM(IncidenceMatrix):
假设在此用Xij表示关联矩阵IM中第i行第j列上的元素,它的含义表示多核***中第i个核和第j个核之间的关系,并且它的值来自于以上所定义的符号集。
例如,根据上述符号集定义和关联矩阵定义,对于具有两个Intel四核处理器(该Intel四核处理器的结构示意图见图1)的HS21刀片服务器而言,可以得出如下的关联矩阵:
而对于SunFire T1000服务器(其中包含4个硬件核,但是每个硬件核上可并行运行4个线程,即,包含16个硬件线程Niagara),可以得出如下的关联矩阵:
需要说明的一点是,以上所给出的HS21刀片服务器和SunFire T1000服务器的关联矩阵中所使用的符号集就目前现有的架构设计而言是具有完备性的。
由此,根据以上给出的包含上述符号集和关联矩阵的描述框架,不管是同构的多核***还是异构的多核***(例如,IBM CELL),对于任何多核***的体系拓扑结构,都可以给出公式化的描述,即定义如上所述的关联矩阵。
显然也可以根据需要给出其他不同的符号集定义,只要所定义的符号集具有完备性这一特点即可,并且因此可以得到形式上有所不同的关联矩阵来表示多核***的体系拓扑结构。
下面将结合图2所示的流程图来具体描述根据本发明的实施例如何基于多核***的体系拓扑结构来减小搜索空间的过程。
图2示出了根据本发明的一个实施例的用于计算可用线程调度搜索空间的处理过程200的流程图,其中该处理过程200能够基于多核***的体系拓扑结构,在所有可能的绑定选择中仅保留所有彼此相同或等效的绑定选择其中之一,而除去其余彼此相同或等效的可能绑定选择,从而得到减小了的线程调度搜索空间。
如图2所示,在步骤S210,获取有关多核***的体系拓扑结构以及多线程应用的信息,例如,核的数目,各个核之间的关系,线程的数目,各线程间的通信方式等。其中,有关多核***的体系拓扑结构的信息可以从多核***的硬件平台手册或使用规范中获得,而有关多线程应用的信息可以从多线程应用获得(其中该多线程应用是由用户输入的)。
然后,在步骤S220,参考步骤S210中所得到的信息,根据多个线程与多个核之间的可能的映射关系,计算线程调度过程中所有可能的绑定方案(即绑定选择)。
在此,正如前面所提到的那样,可以根据排列组合的原理计算所有可能的绑定选择。以将6个线程(分别用T1、T2、T3、T4、T5和T6表示)调度到4个核(分别用C1、C2、C3和C4表示)上为例,如果假设在每种绑定方案中一个线程都只能被调度给一个核,那么这样可以得出共计有46=4096种可能的绑定选择(分别用Choice 1、Choice 2、......、Choice4096表示),其分别为:
Choice 1:T1C1,T2C1,T3C1,T4C1,T5C1,T6C1;
Choice 2:T1C2,T2C1,T3C1,T4C1,T5C1,T6C1;
……
Choice 4096:T1C4,T2C4,T3C4,T4C4,T5C4,T6C4。
然而,实际上,在线程调度过程中一个线程往往可以被调度到一个以上的核,例如,线程T1可以被调度到核C0和C1(假设用T1(C0C1)来表示),这样可能的绑定选择应当更多。例如,在将6个线程调度到4个核上的情况下,可能的绑定选择的总数如下所示:
接下来,在步骤S230,基于多核***的体系拓扑结构,从所有可能的绑定选择中找出所有彼此具有相同或等效映射关系的相同或等效绑定选择。
在假设每种绑定方案中一个线程都只能被调度给一个核的情况下,判断任何两种绑定选择是否相同的过程比较简单。例如,对于以上给出的Choice 1和Choice 2,不管采用何种方法,都可以很容易地确定出:除第一项有所不同(它们的第一项分别为T1C1和T1C2)外,其余各项分别相同,因此,可以确定Choice 1和Choice 2不同。
但是,实际上一个线程往往不只是可以被调度到一个核而是可以被调度到若干个核,在这种情况下,由于绑定方案中存在一个线程与若干个核的组合(即核子集)的较为复杂的映射关系,如何判断任何两种其中包含这种复杂映射关系的绑定选择是否相同或等效,就变得复杂多了。例如,假设线程T1可以被调度到核C0、C1和C2中的任意两个核,这样就可能存在如下三种可能的复杂映射关系:T1(C0C1),T1(C0C2)和T1(C1C2)。在下文中,为了简单起见,将绑定选择中的这种包含复杂映射关系的项称为组合项。如何更加简单和快捷地判断这三种可能的复杂映射关系是否等效,也是本发明较为关注的问题之一。
在此,为了更好地比较任意两种包含上述这种复杂映射关系的绑定选择是否相同或等效,引入了如下几个概念:组合矢量CV(CombinationVector),组合矩阵CM(Combination Matrix),和标识因子IF(IdentityFactor)。
其中,组合矢量CV是表示在某一绑定方案中各个核是否被选中运行(即是否被分配有软件线程)的布尔矢量,而组合矩阵CM是按照下述等式从组合矢量CV得到的矩阵:
CM=CVT×CV (等式1)
例如,对于具有2个Intel四核处理器的HS21刀片服务器(其中包含8个核)而言,假设核C2、C4和C5在线程调度过程中被选中(即,被分配有线程),则对于该服务器的组合矢量CV可以被表示为(0,1,0,1,1,0,0,0),并且因此可以得到如下所示的组合矩阵CM:
基于以上定义的组合矢量CV和组合矩阵CM,按照如下方式计算类似T(C2C4C5)这样的组合项的标识因子IF:
IF=E×[CM·IM]×ET=E×[CVT×CV·IM]×ET (等式2)
其中,E=(1,1,...,1),符号“·”表示点积。
在此,按以上方式计算的标识因子IF表示了和多线程应用的线程相关的那些核之间的拓扑关系。
假设某一线程T可以被调度(或分配)给核子集S1和核子集S2,而且多核***的关联矩阵为IM,核子集S1的组合矢量为CV1,核子集S2的组合矢量为CV2,那么,只有当分别针对核子集S1和核子集S2计算得到的组合项TS1和TS2的标识因子IF1和IF2相等、即满足以下的等式3时,才认为线程T到核子集S1的线程调度和线程T到核子集S2的线程调度是等效的,即,所述线程T到核子集S1和核子集S2的映射关系(即组合项TS1和TS2)是等效的:
E×[CV1 T×CV1·IM]×ET≡E×[CV2 T×CV2·IM]×ET (等式3)
例如,以下述两种绑定选择为例来进行说明:
Choice x:T1(C1C2C3),T2C1,T3C1,T4C1,T5C1,T6C1;
Choice y:T1(C2C3C4),T2C1,T3C1,T4C1,T5C1,T6C1。
通过对上述两种绑定选择进行比较不难看出,它们的第一项中都包含线程到核子集的复杂映射关系,而其余各项均表示一个线程到一个核的映射,而且第2至6项分别相等,这时只需要判断它们的第1项是否等效,即可以确定这两种绑定选择是否等效。
也就是说,当两个绑定选择中包含的非组合项彼此相同且组合项彼此等效时,两个绑定选择是等效的。而且,正如上文中所说明的那样,两个绑定选择等效,意味着多线程应用依据这两种绑定选择进行线程调度时“预期”会产生相同的效果,例如,程序运行的速度相同,CPU的利用率相同,内存占用空间相同等。
仍以HS21刀片服务器为例,对于上述的Choice x和Choice y的第1项,它们的核子集分别是{C1,C2,C3}以及{C2,C3,C4},即,CVx=(1,1,1,0,0,0,0,0),CVy=(0,1,1,1,0,0,0,0),
那么,根据上述等式2可以得出:
由此,可以确定T1(C1C2C3)与T1(C2C3C4)是等效的,继而可以确定Choice x和Choice y是等效的。这一点从图1中所示的Intel四核处理器的结构中也可以得到证实。
对于任何一种其中至少有一项包含线程到核子集的复杂映射关系(即组合项)的绑定选择,都可以如上所述计算出该绑定选择中的组合项的标识因子IF,然后再比较该种绑定选择与其他也包含组合项的绑定选择是否等效。
这样,在图2所示的步骤230中,从所有可能的绑定选择中找出所有彼此相同或等效的绑定选择。
随后,在步骤S240,在所有可能的绑定选择中,对于所有彼此相同或等效的绑定选择,仅保留其中之一,而除去其余彼此相同或等效的绑定选择(在下文中,为了简明起见,将这些要除去的其余彼此相同或等效的绑定选择称为“多余的绑定选择”)。
在找出了彼此相同或等效的绑定选择之后,从所有可能的绑定选择中除去多余的绑定选择是非常方便的。也就是说,可以使用任何已有的方法来遍历整个线程调度搜索空间,保留所有彼此相同或等效的绑定选择其中之一而除去多余的绑定选择,从而可以大大地减小搜索空间。
以上结合图2描述根据本发明实施例的方法时,基于多个线程彼此不同这个假设,对如何判断任意两种绑定选择是否相同或等效进行了说明,但是,实际上,多线程应用创建的多个线程往往是相同的。针对其中所述多个线程相同这样一种特例,完全可以如上所述那样来处理,因此,为了简明起见,在此就不再详述了。在多个线程相同的这种情况下,例如对于上面所提到的6线程应用,可以通过将T1、T2、......、T6统一用T表示,然后比较绑定选择的各项的并集是否相同或等效,来判断任意两个绑定选择是否相同或等效,因此,可以对以上所描述的方法200进行简化。
图3示出了根据本发明的一个实施例的搜索空间计算装置300的结构示意图,其中该搜索空间计算装置300可以基于多核***的体系拓扑结构,通过在所有可能的绑定选择中保留所有彼此相同或等效的绑定选择其中之一,而除去其余彼此相同或等效的绑定选择(即,多余的绑定选择),来得到减小了的线程调度搜索空间。
该搜索空间计算装置300中可以执行如图2所示的方法200,并且如图3所示,搜索空间计算装置300包括:信息获取器310,绑定选择计算器320,绑定选择检测器330和绑定选择存储器340。
其中,信息获取器310被配置用于获取有关多核***的体系拓扑结构以及多线程应用的信息,例如,线程和核的数目,各线程间的通信方式,各个核之间的关系等。
绑定选择计算器320被配置用于通过参考信息获取器310所获取的信息,根据线程与核之间的可能的映射关系,计算线程调度过程中所有可能的绑定选择,并将其存储在绑定选择存储器340。
绑定选择检测器330被配置用于从所有可能的绑定选择中检测出所有彼此具有相同或等效映射关系的相同或等效绑定选择,并从存储在绑定选择存储器340中的所有可能的绑定选择中除去多余的绑定选择,即,在所有可能的绑定选择中保留所有彼此相同或等效的绑定选择其中之一,而除去其余彼此相同或等效的绑定选择。在此,绑定选择检测器330可以如以上结合图2所示的流程图所描述的那样,对于包含至少一个组合项的绑定选择计算组合项的标识因子,然后通过对所有可能的绑定选择进行两两比较,找出所有彼此相同或等效的绑定选择。
绑定选择存储器340,被配置用于存储可供线程调度过程中选用的绑定选择,其中所述可供选用的绑定选择是从所有可能的绑定选择中除去多余的绑定选择后得到的。
通过阅读以上结合图2给出的、关于如何基于多核***的体系拓扑结构来计算线程调度搜索空间的处理过程的描述,搜索空间计算装置300的各个组成部件的功能如何实现就变得很清楚了,所以在此就不再赘述了。
对于将6个相同的软件线程调度到4个核上并且每个线程只能被调度到一个核上的情况,通过利用以上结合图2和/或3所描述的方法和/或装置,从所有可能的46=4096种绑定选择中去除了多余的绑定选择后得到的搜索空间的大小为:
由此可以看出,通过利用以上所描述的根据本发明实施例的计算搜索空间的方法和/或装置,与已有技术相比,在很大程度上减小了线程调度搜索空间。
在传统的线程调度方法中,由于运行自适应技术需要花费大量的时间,所以使得自适应技术不太适合于用在线程调度领域中。然而,由于根据本发明线程调度搜索空间得到了大幅度的减小,所以在此可以将自适应线程调度技术用来查找线程和核之间的优化的绑定方案。
为此,为了能够更好地应用以上结合图2和3所描述的方法和装置,以便在多核***上更好地进行线程调度,根据本发明的其他实施例,还提供了一种自适应线程调度方法及***,它们能够利用图2所述的方法和/或图3所示的装置,根据多线程应用和多核***的硬件体系结构,自动地确定优选的绑定方案。
下面首先结合图4来描述根据本发明其他实施例的自适应线程调度方法的处理过程。图4示出了根据本发明一个实施例的、利用图2所示的方法200进行自适应线程调度的处理过程400的流程图。
如图4所示,为了有针对性地解决多线程应用在不同的多核硬件平台上的性能问题,在步骤S410,获得要执行的多线程应用和要在其上进行线程调度的多核***的硬件平台(在此还可以将所述多线程应用和多核硬件平台称为线程调度优化目标)的有关信息,例如,有多少个软件线程,以及有多少个核和硬件平台的存储模型等体系拓扑结构信息等。
然后,在步骤S420,获得测量条件和性能标准,以便明确什么样的绑定选择被认为是优选的绑定方案。所述测量条件和性能标准可以是用户预先设置的并存储在一个测量条件和性能标准储存库中。
例如,服务器总是在每秒处理500条消息的工作负荷下运行,因此可以将测量条件定义为这个工作负荷;或者,对于数学库而言,可以将输入数据大小定义为测量条件。而对于性能标准来说,例如,可以定义:在一定的工作负荷下,CPU利用率越低,服务器的性能越好;而对于数学库来说,使用的时间越少,性能越好。
接下来,在步骤S430,根据多线程应用和硬件平台的体系拓扑结构,计算可用的线程调度搜索空间。
正如前面所提及的那样,在传统的方法中,在有M个软件线程和N个核的情况下,总的线程调度搜索空间大小为NM(假设一个线程只能被调度到一个核上),但是这个搜索空间太大了。为此,在这一步骤中,执行如图2所示的处理过程,以便基于硬件体系结构从所有可能的绑定选择中除去多余的那些绑定选择,从而得到减小了的可用搜索空间。
然后,如图4所示,在步骤S440,在步骤S430中所得到的可用搜索空间中模拟运行所述多线程应用,并查找优选的绑定方案。
具体来说,在如上所述减小了搜索空间之后,将其中的每种绑定选择作为输入,在多核硬件平台上模拟运行多线程应用,并根据步骤S420中所获得的测量条件和性能标准,记录性能监视输出结果,然后从所有可用绑定选择中搜索并选择出优选的那个绑定选择,作为优选绑定方案。
在这个步骤中,可以使用任何已有的搜索算法,例如,模拟退火(Simulated Annealing)、神经网络(Neuron Network)、最速下降方法(Steepest Decent Method)、动态编程(Dynamic Programming)、遗传算法(Genetic Algorithm)等,来加速搜索过程。
在找到了优选的绑定方案后,在步骤S450,根据所述优选的绑定方案产生调度执行计划,并在真实环境下实际应用该调度执行计划。这个步骤的处理也是相对简单的,把所述优选绑定方案作为输入,并按照该绑定方案中定义的那样将线程调度到相应的那些核即可。在实际的实现过程中,这可以通过下述措施来实现:修改多线程应用的源代码,由多线程应用的运行时环境进行调度,或者修改操作***的调度程序。
在根据本发明实施例的这种自适应线程调度方法中,由于基于多核硬件平台的严格的体系拓扑结构定义,在所有可能的绑定选择中仅仅保留所有彼此相同或等效的绑定选择其中之一,而除去其余彼此相同或等效的绑定选择(即,多余的那些绑定选择),以大大减小搜索空间,因此,可以确保减小后的搜索空间仍然包含软件线程到硬件核的映射关系的所有可变性,也就是说,减小后的搜索空间并不会影响到自适应线程调度技术的输出。
而且,在根据本发明实施例的这种自适应线程调度方法中,先前所描述的根据本发明实施例的减小搜索空间的方法可以在已有的优化的搜索方法之前使用,因此并不会与优化的搜索方法相冲突,而且可以使用优化的搜索方法来加速搜索速度,从而减少自适应处理的时间。
以上结合图4所描述的自适应线程调度方法可以以离线的方式或者以在线的方式执行。例如,在离线的方式下,通过在图4所示的步骤S410中选择作为线程调度优化目标的多线程应用和多核***硬件平台,可以自动地获知软件线程和硬件平台的有关信息,离线地在减小了的可用搜索空间中进行搜索,选择优选绑定方案,然后将其实际应用到真实的环境中;而在在线的方式下,对于实际的多线程应用和多核***硬件平台,在线地在所计算的可用搜索空间中执行搜索,同时在硬件平台上执行性能采样(profile),并选择当前优选的绑定方案予以应用。
显然,可以根据实际需要对图4所示的自适应线程调度方法的处理流程进行适当的更改。例如,用户可以在图4所示的步骤S420中定义测量条件和性能标准,或者也可以根据需要对预先定义的测量条件和性能标准进行修改。而且,也可以对图4所示的处理流程的执行顺序进行调整,例如,步骤S420的处理在采用***默认的测量条件和性能标准的情况下不是必需的,而且也可以根据情况在步骤S430的处理之后执行。当然,可能还存在其他的更改方式,在此就不一一列举了。
图5示出了根据本发明另一个实施例的自适应线程调度***500的方框图,其中在该自适应线程调度***500中可以执行以上结合图4所描述的自适应线程调度方法,并且包括如图3所示的搜索空间计算装置300。
如图5所示,自适应线程调度***500包括:作为优化目标对象的多线程应用510和多核硬件平台520,如图3所示的用于减小线程调度搜索空间的搜索空间计算装置300,模拟运行控制器530,性能监视器540和测量条件&性能标准储存库550。
其中,搜索空间计算装置300根据多线程应用510和多核硬件平台520的有关信息,计算出可用的线程调度搜索空间,由模拟运行控制器530控制在硬件平台520上模拟运行所述多线程应用510,同时由性能监视器540根据测量条件&性能标准储存库550中存储的测量条件和性能标准,对硬件平台520的性能进行监视,并将性能监视结果传送给模拟运行控制器530,由模拟运行控制器530基于性能监视结果,从所述可用搜索空间中查找优选的绑定方案,据此产生调度执行计划并实际应用该调度执行计划。
通过阅读以上结合图4所描述的处理过程400,自适应线程调度***500中的各个装置如何实现其各自的功能就是很显然的,因此,为了简明起见就不在此赘述了。
为了更好地说明根据本发明实施例的自适应线程调度方法和/或***在实际应用中带来的优点,发明人对该自适应线程调度方法和/或***进行了如下测试。
测试实例1:科学计算
以执行矩阵加:矩阵C=矩阵A+矩阵B为例,假设:测试矩阵大小为8192*16,有四个线程,而且测试用的硬件平台为四核***(其中具有两个处理器,且每个处理器有两个核)。
以实际计算完成的时间为性能评价标准,在利用传统的操作***(OS)调度方法时,耗时396749.9us,而在利用根据本发明实施例的自适应线程调度方法对线程调度进行优化后,耗时为326207.3us,由此可以看出,在利用本发明进行优化后性能提高了21.6%。
测试实例2:会话发起协议(SIP)应用服务器测试
图6示出了这种测试的场景,其中在SIP客户端610发出请求后,等待SIP服务器620的响应。在SIP服务器620端设有侦听线程,它在收到请求后将请求放入请求队列,等待SIP堆栈派发,进入派发队列后,进入线程池派发器,通过UDP发送器请求对应的响应。
为了便于测试,选择简单Invite作为测试场景,假设固定吞吐率为1000,启动4个主要的软件线程(包括侦听线程、SIP堆栈派发、线程池派发器和UDP发送器),测试平台为四核***(其中有两个处理器,且每个处理器有两个核)。将性能评判标准设定为较少的CPU占用率和上下文切换次数,经试验后得到的实验数据如下:
调度方法 | 平均的CPU负载 | 平均的上下文切换次当数/秒 |
OS调度方法 | 14.7% | 23538 |
一一映射 | 16.0% | 27719 |
自适应线程调度 | 12.3% | 21456 |
从以上的测试数据中不难看出,根据本发明实施例的自适应线程调度方法在CPU占用率和上下文切换率上都要优于传统的操作***(OS)调度方法和一一映射的调度方法。
通过利用根据本发明实施例的上述自适应线程调度方法和/或***,可以自动地确定优选的绑定方案(即,软件线程与硬件核的优选的映射方案),而这在传统的线程调度方法中是很难实现的。而且,不管有多少不同的工作负荷或者多么复杂的硬件平台,都可以找到或确定优选的绑定方案,而在传统的线程调度方法中在不同的平台中往往需要设置不同的算法和/或参数。此外,由于其中利用了根据本发明的计算可用搜索空间的方法和/或装置,使得线程调度搜索空间被大大地减小了,而且可以使用现有的任何优选的搜索方法,所以可以更快地找到优选的绑定方案。
此外,显然,根据本发明的上述方法的各个操作过程也可以以存储在各种机器可读的存储介质中的计算机可执行程序的方式实现。
而且,本发明的目的也可以通过下述方式实现:将存储有上述可执行程序代码的存储介质直接或者间接地提供给***或设备,并且该***或设备中的计算机或者中央处理单元(CPU)读出并执行上述程序代码。
此时,只要该***或者设备具有执行程序的功能,则本发明的实施方式不局限于程序,并且该程序也可以是任意的形式,例如,目标程序、解释器执行的程序或者提供给操作***的脚本程序等。
上述这些机器可读存储介质包括但不限于:各种存储器和存储单元,半导体设备,磁盘单元例如光、磁和磁光盘,以及其它适于存储信息的介质等。
另外,通过连接到因特网上的相应网站,并且将依据本发明的计算机程序代码下载和安装到计算机中然后执行该程序,也可以实现本发明。最后,还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。此外,在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上虽然结合附图详细描述了本发明的实施例,但是应当明白,上面所描述的实施方式只是用于说明本发明,而并不构成对本发明的限制。对于本领域的技术人员来说,可以对上述实施方式作出各种修改和变更而没有背离本发明的实质和范围。因此,本发明的范围仅由所附的权利要求及其等效含义来限定。
Claims (19)
1.一种用于计算可供在多核***上对多线程应用进行线程调度时使用的线程调度搜索空间的方法,包括以下步骤:
获取有关多线程应用和多核***的硬件结构的信息;
通过参考所述有关多线程应用和多核***的硬件结构的信息,计算所有可能的、包含多个线程与多个核之间的映射关系的绑定选择;
基于多核***的硬件结构,从所有可能的绑定选择中找出所有彼此相同或等效的绑定选择;以及
在所有可能的绑定选择中,对于所有彼此相同或等效的绑定选择,保留其中之一,而除去其余彼此相同或等效的绑定选择,以得到可供线程调度时使用的搜索空间。
2.根据权利要求1所述的方法,其中,所述有关信息包括:线程的数目,各线程间的通信方式,以及有关多核***的体系拓扑结构的、包括核的数目和各个核之间的关系在内的信息。
3.根据权利要求2所述的方法,其中,通过基于多核***的体系拓扑结构,比较两个绑定选择中包含的每个线程的线程与核之间的映射关系,来判定所述两个绑定选择是否相同或等效。
4.根据权利要求3所述的方法,其中,在绑定选择中包含由一个线程与若干个核的组合、即核子集的复杂映射关系构成的组合项的情况下,通过确定两个组合项的标识因子IF是否相同,来判定两个组合项是否等效,其中标识因子IF利用下述等式计算得到:
IF=E×[CVT×CV·IM]×ET
其中,CV是绑定选择的组合矢量,其为表示在该绑定选择中各个核是否被分配有线程的布尔矢量,E=(1,1,...,1),“·”表示点积,而IM为多核***的关联矩阵,所述关联矩阵IM中的第i行第j列的元素Xij表示所述多核***中第i个核和第j个核之间的关系,
当两个绑定选择中包含的非组合项彼此相同且组合项彼此等效时,两个绑定选择是等效的。
5.根据权利要求4所述的方法,其中,对所述多个核中各个核之间的关系的定义是具有完备性的。
6.根据权利要求1至5中任何一项所述的方法,其中,所述多个线程是彼此相同的线程。
7.一种用于计算可供在多核***上对多线程应用进行线程调度时使用的线程调度搜索空间的装置,包括:
信息获取器,被配置用于获取有关多线程应用以及多核***的硬件结构的信息;
绑定选择计算器,被配置用于通过参考所述有关多线程应用以及多核***的硬件结构的信息,计算所有可能的、包含多个线程与多个核之间的映射关系的绑定选择;
绑定选择检测器,被配置用于基于多核***的硬件结构,从所有可能的绑定选择中找出所有彼此相同或等效的绑定选择,并保留所有彼此相同或等效的绑定选择其中之一,而除去其余彼此相同或等效的绑定选择;以及
绑定选择存储器,用于存储可供线程调度时使用的线程调度搜索空间,该线程调度搜索空间是在所有可能的绑定选择中保留所有彼此相同或等效的绑定选择其中之一而除去其余彼此相同或等效的绑定选择而得到的。
8.根据权利要求7所述的装置,其中,所述信息获取器获取的所述有关多线程应用以及多核***的硬件结构的信息包括:线程的数目,各线程间的通信方式,以及有关多核***的体系拓扑结构的、包括核数目和各个核之间的关系在内的信息。
9.根据权利要求8所述的装置,其中,所述绑定选择检测器通过基于多核***的体系拓扑结构,比较两个绑定选择中包含的每个线程的线程与核之间的映射关系,来判定所述两个绑定选择是否相同或等效。
10.根据权利要求9所述的装置,其中,在绑定选择中包含由一个线程与若干个核的组合、即核子集的复杂映射关系构成的组合项的情况下,所述等效绑定选择检测器通过确定两个组合项的标识因子IF是否相同,来判定两个组合项是否等效,其中标识因子IF利用下述等式计算得到:
IF=E×[CVT×CV·IM]×ET
其中,CV是绑定选择的组合矢量,其为表示在该绑定选择中各个核是否被分配有线程的布尔矢量,E=(1,1,...,1),“·”表示点积,而IM为多核***的关联矩阵,所述关联矩阵IM中的第i行第j列的元素Xij表示所述多核***中第i个核和第j个核之间的关系,
当两个绑定选择中包含的非组合项彼此相同且组合项彼此等效时,两个绑定选择是等效的。
11.根据权利要求10所述的装置,其中,对所述多个核中各个核之间的关系的定义是具有完备性的。
12.根据权利要求7至11中任何一项所述的装置,其中,所述多个线程是彼此相同的线程。
13.一种使用根据权利要求1至6中任何一项所述的方法进行自适应线程调度的方法,包括以下步骤:
根据作为线程调度优化目标的多线程应用和多核硬件平台的有关信息,利用根据权利要求1-6中任何一项所述的方法计算可用的线程调度搜索空间;
在所述多核硬件平台上在所述线程调度搜索空间中模拟运行所述多线程应用,并且基于模拟运行所述多线程应用时所述多核硬件平台的性能监视结果,从所述线程调度搜索空间中搜索并确定优选的绑定选择,作为优选绑定方案;以及
根据所确定的优选绑定方案产生调度执行计划,并实际应用该调度执行计划。
14.根据权利要求13所述的自适应线程调度方法,其中,所述性能监视结果是根据预先定义的测量条件和性能标准对所述多核硬件平台进行性能监视而得到的。
15.根据权利要求13或14所述的自适应线程调度方法,其中,所述自适应线程调度方法以离线方式或在线方式执行。
16.根据权利要求13或14所述的自适应线程调度方法,其中,使用下述搜索方法之一从所述线程调度搜索空间中搜索并确定优选的绑定选择:模拟退火,神经网络,最速下降方法,动态编程,和遗传算法。
17.一种自适应线程调度***,包括:
作为优化目标对象的多线程应用和多核硬件平台;
根据权利要求7至12中任何一项所述的装置,被配置用于根据多线程应用和多核硬件平台的有关信息计算可用的线程调度搜索空间;
模拟运行控制器,被配置用于在所述多核硬件平台上在所述线程调度搜索空间中模拟运行所述多线程应用;以及
性能监视器,被配置用于记录模拟运行所述多线程应用时所述多核硬件平台的性能监视结果,
其中,所述模拟运行控制器基于来自所述性能监视器的性能监视结果,从所述线程调度搜索空间中搜索并确定优选的绑定选择,作为优选绑定方案,并根据所确定的优选绑定方案产生调度执行计划,并实际应用该调度执行计划。
18.根据权利要求17所述的自适应线程调度***,进一步包括:测量条件和性能标准储存库,用于存储预先定义的测量条件和性能标准,
其中,所述性能监视器通过根据所述预先定义的测量条件和性能标准对所述多核硬件平台进行性能监视,而得到所述性能监视结果。
19.根据权利要求17或18所述的自适应线程调度***,其中,所述模拟运行控制器使用下述搜索方法之一从所述线程调度搜索空间中搜索并确定优选的绑定选择:模拟退火,神经网络,最速下降方法,动态编程,和遗传算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810133251A CN101634953A (zh) | 2008-07-22 | 2008-07-22 | 搜索空间计算方法和装置及自适应线程调度方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810133251A CN101634953A (zh) | 2008-07-22 | 2008-07-22 | 搜索空间计算方法和装置及自适应线程调度方法和*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101634953A true CN101634953A (zh) | 2010-01-27 |
Family
ID=41594150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810133251A Pending CN101634953A (zh) | 2008-07-22 | 2008-07-22 | 搜索空间计算方法和装置及自适应线程调度方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101634953A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073547A (zh) * | 2010-12-17 | 2011-05-25 | 国家计算机网络与信息安全管理中心 | 一种多路服务器多缓冲区并行收包的性能优化方法 |
WO2012055248A1 (zh) * | 2010-10-25 | 2012-05-03 | 中兴通讯股份有限公司 | 信息投递的方法和装置 |
CN103294550A (zh) * | 2013-05-29 | 2013-09-11 | 中国科学院计算技术研究所 | 一种异构多核线程调度方法、***及异构多核处理器 |
CN103440173A (zh) * | 2013-08-23 | 2013-12-11 | 华为技术有限公司 | 一种多核处理器的调度方法和相关装置 |
CN104460934A (zh) * | 2013-09-13 | 2015-03-25 | 华为终端有限公司 | 多cpu调度方法及装置 |
CN105786525A (zh) * | 2016-03-23 | 2016-07-20 | 鼎点视讯科技有限公司 | 一种进程模型向线程模型移植代码的方法及装置 |
CN106371894A (zh) * | 2016-08-31 | 2017-02-01 | 华为技术有限公司 | 一种配置方法、装置和数据处理服务器 |
CN108196882A (zh) * | 2017-12-29 | 2018-06-22 | 普强信息技术(北京)有限公司 | 一种针对神经网络计算的加速方法及装置 |
CN113220463A (zh) * | 2021-05-31 | 2021-08-06 | 中科曙光国际信息产业有限公司 | 一种绑定策略推断方法、装置、电子设备及存储介质 |
-
2008
- 2008-07-22 CN CN200810133251A patent/CN101634953A/zh active Pending
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012055248A1 (zh) * | 2010-10-25 | 2012-05-03 | 中兴通讯股份有限公司 | 信息投递的方法和装置 |
RU2566953C2 (ru) * | 2010-10-25 | 2015-10-27 | ЗетТиИ Корпорейшн | Способ и устройство для доставки информации |
US9207974B2 (en) | 2010-10-25 | 2015-12-08 | Zte Corporation | Information delivery method and device |
CN102073547B (zh) * | 2010-12-17 | 2013-08-28 | 国家计算机网络与信息安全管理中心 | 一种多路服务器多缓冲区并行收包的性能优化方法 |
CN102073547A (zh) * | 2010-12-17 | 2011-05-25 | 国家计算机网络与信息安全管理中心 | 一种多路服务器多缓冲区并行收包的性能优化方法 |
CN103294550A (zh) * | 2013-05-29 | 2013-09-11 | 中国科学院计算技术研究所 | 一种异构多核线程调度方法、***及异构多核处理器 |
CN103294550B (zh) * | 2013-05-29 | 2016-08-10 | 中国科学院计算技术研究所 | 一种异构多核线程调度方法、***及异构多核处理器 |
CN103440173B (zh) * | 2013-08-23 | 2016-09-21 | 华为技术有限公司 | 一种多核处理器的调度方法和相关装置 |
CN103440173A (zh) * | 2013-08-23 | 2013-12-11 | 华为技术有限公司 | 一种多核处理器的调度方法和相关装置 |
CN104460934A (zh) * | 2013-09-13 | 2015-03-25 | 华为终端有限公司 | 多cpu调度方法及装置 |
CN105786525A (zh) * | 2016-03-23 | 2016-07-20 | 鼎点视讯科技有限公司 | 一种进程模型向线程模型移植代码的方法及装置 |
CN105786525B (zh) * | 2016-03-23 | 2019-01-25 | 鼎点视讯科技有限公司 | 一种进程模型向线程模型移植代码的方法及装置 |
CN106371894A (zh) * | 2016-08-31 | 2017-02-01 | 华为技术有限公司 | 一种配置方法、装置和数据处理服务器 |
CN106371894B (zh) * | 2016-08-31 | 2020-02-14 | 华为技术有限公司 | 一种配置方法、装置和数据处理服务器 |
CN108196882A (zh) * | 2017-12-29 | 2018-06-22 | 普强信息技术(北京)有限公司 | 一种针对神经网络计算的加速方法及装置 |
CN113220463A (zh) * | 2021-05-31 | 2021-08-06 | 中科曙光国际信息产业有限公司 | 一种绑定策略推断方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101634953A (zh) | 搜索空间计算方法和装置及自适应线程调度方法和*** | |
US10474504B2 (en) | Distributed node intra-group task scheduling method and system | |
Vila et al. | A branch-and-bound algorithm for assembly line worker assignment and balancing problems | |
Mao et al. | Analysis of average shortest‐path length of scale‐free network | |
US9053067B2 (en) | Distributed data scalable adaptive map-reduce framework | |
US20220101170A1 (en) | Numerical quantum experimentation | |
CN107404523A (zh) | 云平台自适应资源调度***和方法 | |
CN107908536B (zh) | Cpu-gpu异构环境中对gpu应用的性能评估方法及*** | |
Guo et al. | Scaling exact multi-objective combinatorial optimization by parallelization | |
Matta | Simulation optimization with mathematical programming representation of discrete event systems | |
Wan et al. | Kfiml: Kubernetes-based fog computing iot platform for online machine learning | |
CN116700920A (zh) | 云原生混合部署集群资源调度方法及装置 | |
CN113568759B (zh) | 一种基于云计算的大数据处理方法及其*** | |
Bychkov et al. | Support for managing the survivability of energy systems based on a combinatorial approach | |
Konovalov et al. | Job control in heterogeneous computing systems | |
CN106874215B (zh) | 一种基于Spark算子的序列化存储优化方法 | |
CN103902374B (zh) | 基于元胞自动机和赋权有向超图的云计算任务调度方法 | |
CN101299758B (zh) | 一种大规模事件处理的规则群组***及处理方法 | |
Shuang et al. | Task scheduling based on Grey Wolf optimizer algorithm for smart meter embedded operating system | |
Prado et al. | On providing quality of service in grid computing through multi-objective swarm-based knowledge acquisition in fuzzy schedulers | |
Fu et al. | Load Balancing Algorithms for Hadoop Cluster in Unbalanced Environment | |
Li et al. | An efficient multicore based parallel computing approach for TSP problems | |
Mhalla et al. | Exact Parallel Algorithm for the Knapsack Sharing Problem | |
Martinovic et al. | Load balancing of large distribution network model calculations | |
Wang et al. | Performance optimization for CPU-GPU heterogeneous parallel system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20100127 |