线程弹性负载平衡的内核负载知识制造技术

技术编号:17102346 阅读:49 留言:0更新日期:2018-01-21 12:36
一种平衡多个内核上的负载的方法包括在全局内存位置中保存多个位图。每个位图指示线程域中包含的所述线程的负载。所述多个线程与每个内核关联。每个内核基于所述线程的所述负载保存并更新相应的位图。所述多个位图在可被多个线程域访问的所述全局内存位置中保存,所述多个线程域用于使用所述内核来执行线程。所述多个线程域的执行使用所述多个内核基于每个位图中所描述的每个线程的负载来平衡。

Kernel load knowledge of thread elastic load balancing

A method of balancing the load on multiple cores includes preserving multiple bitmaps in the global memory location. Each bitmap indicates the load of the thread contained in the thread domain. The multiple threads are associated with each kernel. Each kernel saves and updates the corresponding bitmap based on the load described by the thread. The multiple bitmaps are stored in the global memory locations that can be accessed by multiple thread domains, and the multiple thread domains are used to execute threads by using the kernel. The execution of the multiple thread fields described using the multiple kernel is balanced based on the load of each thread described in each bitmap.

【技术实现步骤摘要】
【国外来华专利技术】线程弹性负载平衡的内核负载知识相关申请案交叉申请本申请要求2015年8月4日递交的专利技术名称为“线程弹性负载平衡的内核负载知识(Coreloadknowledgeforelasticloadbalancingofthreads)”的第14/818,253号美国非临时专利申请案的在先申请优先权和权益,该在先申请的内容以引用的方式并入本文本中。
技术介绍
随着计算机产业向大规模多核处理器(有时称为单芯片多处理器(ChipMultiprocessor,CMP)发展,中央处理器(centralprocessingunit,CPU)芯片上的内核数量增加。许多这种CPU通过快速互连焊接在一起,形成非一致性内存访问(non-uniformmemoryaccess,NUMA)机器。因此,现代计算机服务器配备了大量物理内核。当多个客户端发起对特定资源的请求时,一个或多个内核执行这些请求。多个请求可以进行排队并由一个或多个内核一次一个或一批一批进行服务,这样会造成一些请求在队列中等待,直至前一个请求或一批请求已得到服务。然而,一些物理内核与其它一些物理内核相比,可能执行相对较少的请求。负载平衡是指将队列中的本文档来自技高网...
线程弹性负载平衡的内核负载知识

【技术保护点】
一种平衡多个线程执行内核上的负载的方法,其特征在于,所述方法包括:更新多个位图,其中所述多个位图中的每个位图指示多个线程的负载,所述多个线程与所述多个线程执行内核中的每个线程执行内核关联;在全局内存位置中保存所述多个位图,所述全局内存位置可被与所述多个线程执行内核中的每个线程执行内核关联的所述多个线程访问;以及基于所述全局内存位置中的所述多个位图平衡与所述多个线程执行内核中的每个线程执行内核关联的所述多个线程的负载。

【技术特征摘要】
【国外来华专利技术】2015.08.04 US 14/818,2531.一种平衡多个线程执行内核上的负载的方法,其特征在于,所述方法包括:更新多个位图,其中所述多个位图中的每个位图指示多个线程的负载,所述多个线程与所述多个线程执行内核中的每个线程执行内核关联;在全局内存位置中保存所述多个位图,所述全局内存位置可被与所述多个线程执行内核中的每个线程执行内核关联的所述多个线程访问;以及基于所述全局内存位置中的所述多个位图平衡与所述多个线程执行内核中的每个线程执行内核关联的所述多个线程的负载。2.根据权利要求1所述的方法,其特征在于,所述多个线程执行内核包括第一线程执行内核,与所述第一线程执行内核关联的位图包括行表,所述表中除第一行之外的行指示与所述第一线程执行内核关联的第一多个线程中的第一线程是否忙碌。3.根据权利要求2所述的方法,其特征在于,所述行表中的所述第一行指示线程域是否已被分配给所述第一线程执行内核,所述分配的线程域包括所述第一线程。4.根据权利要求3所述的方法,其特征在于,当线程域已被分配给所述第一线程执行内核时,所述第一行中存储的值设为1;当线程域未被分配给所述第一线程执行内核时,所述第一行中存储的所述值设为0。5.根据权利要求2所述的方法,其特征在于,如果所述第一线程忙碌,则除所述第一行之外的所述行中的值设为1;如果所述第一线程可用,则除所述第一行之外的所述行中的所述值设为0。6.根据权利要求5所述的方法,其特征在于,如果所述第一线程变为可用,则除所述第一行之外的所述行中的所述值从1变为0。7.根据权利要求1至6中的任一项所述的方法,其特征在于,基于所述全局内存位置中的所述多个位图平衡与所述多个线程执行内核中的每个线程执行内核关联的所述多个线程的负载包括:确定与第一线程执行内核关联的第一线程忙碌;基于扫描所述全局内存位置中的所述多个位图中的第二位图识别可用的第二线程执行内核;以及将所述第一线程的至少一部分转移到所述第二线程执行内核。8.根据权利要求7所述的方法,其特征在于,所述第二位图包括多个行;如果可由所述第二线程执行内核执行的线程可用于执行线程,则每个行中的值设为0;如果可由所述第二线程执行内核执行的所述线程忙碌,则每个行中的所述值设为1;识别所述第二线程执行内核包括:对所述多个行执行布尔或(BooleanOR)运算,其中如果所述第二线程执行内核可用于执行线程,则所述布尔或运算的结果为0;如果所述第二线程执行内核忙碌,则所述布尔或运算的所述结果为1。9.根据权利要求7所述的方法,其特征在于,包括第二线程的第二线程域被分配给所述第二执行内核,导致所述第二线程与其它线程相比优先被所述第二执行内核执行,所述方法还包括:在将所述第一线程的至少一部分转移到所述第二线程执行内核之后的某个时间,确定所述第二执行内核忙碌;以及在确定所述第二执行内核忙碌后,将所述第一线程的所述执行转移出所述第二线程执行内核。10.根据权利要求9所述的方法,其特征在于,所述第二位图包括多个行,所述多个行包括第一行和剩余行;当已有线程域被分配给所述第二线程执行内核时,所述第一行中存储的值设为1;当没有线程域被分配给所述第二线程执行内核时,所述第一行中存储的所述值设为0;如果可由所述第二线程执行内核执行的线程可用于执行线程,则每个剩余行中的值设为0;如果可由所述第二线程执行内核执行的所述线程忙碌,则每个剩余行中的所述值设为1;确定所述第二线程执行内核忙碌包括:对所述剩余行执行布尔或运算;以及对对所述剩余行执行所述布尔或运算的结果和所述第一行执行布尔与(BooleanAND)运算。11.根据权利要求1至10中的任一项所述的方法,其特征在于,被分配给第三线程执行内核的第三线程域包括多个线程的子集,所述子集与所述第三线程执行内核关联,所述方法还包括:将所述第三线程域设置为捐赠所述第三线程执行内核来执行与其它线程域关联的线程;以及在将所述第三线程域设置为捐赠所述第三线程执行内核来执行与其它线程域关联的线程后,将与所述第三线程域关联的活动线程设置为睡眠。12.根据权利要求1至11中的...

【专利技术属性】
技术研发人员:林宗芳田琛冯烨薛雪辰胡子昂
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1