CN104754647B - 一种负载迁移的方法和设备 - Google Patents
一种负载迁移的方法和设备 Download PDFInfo
- Publication number
- CN104754647B CN104754647B CN201310743398.3A CN201310743398A CN104754647B CN 104754647 B CN104754647 B CN 104754647B CN 201310743398 A CN201310743398 A CN 201310743398A CN 104754647 B CN104754647 B CN 104754647B
- Authority
- CN
- China
- Prior art keywords
- information
- address information
- intermediate table
- processor
- task
- 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.)
- Active
Links
- 238000013508 migration Methods 0.000 title claims abstract description 155
- 230000005012 migration Effects 0.000 title claims abstract description 153
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000004044 response Effects 0.000 claims description 30
- 238000012545 processing Methods 0.000 claims description 12
- 238000012512 characterization method Methods 0.000 abstract 1
- 238000005457 optimization Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 12
- 238000004590 computer program Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/08—Load balancing or load distribution
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种负载迁移的方法和设备,包括:接收目标处理器发送的用于表征需要从源处理器中迁移待处理的任务的迁移请求信息,根据接收到的迁移请求消息中包含的目标处理器的标识信息,确定由源处理器和目标处理器协商的、用于放置源处理器中任务的描述符地址信息的中间表,根据所述迁移请求信息中包含了需要迁移待处理的任务的容量信息,确定待迁移的任务的描述符地址信息;并将确定的所述描述符地址信息写入确定的中间表中,以便于目标处理器从中间表中获取描述符地址信息,并根据描述符地址信息得到待迁移的任务,完成负载的迁移,通过引入中间表,将目前采用的基于自选锁的有锁负载均衡优化成无锁负载均衡,有效地提升了系统的整体性能。
Description
技术领域
本发明涉及计算机操作技术领域,尤其涉及一种基于对称处理器SMP的负载迁移的方法和设备。
背景技术
在目前SMP(Symmetrical Multi-Processing,对称多处理器)环境中,每一个CPU对应一个Run Queue运行队列。如果当前存在一个任务处于TASK Running(即可执行)状态时,选择一个Run Queue运行队列(需要说明的是,只能为该任务在同一时刻选择一个RunQueue运行队列),将该任务加入该Run Queue运行队列中,以便于调度程序在该Run Queue运行队列对应的CPU中运行该任务。
由于目前每一个CPU对应一个Run Queue运行队列,这样虽然能够使得一个持续处于TASK Running(即可执行)状态的任务在同一个CPU上运行,有利于数据缓存,提高运行效率,同时各个CPU上调度的任务都是与其对应的Run Queue运行队列中的,避免了相互竞争,但是,这样容易使得各个CPU对应的Run Queue运行队列中存储的任务不均衡,造成一部分CPU运行的过于繁忙,一部分CPU运行的过于空闲,使得整个系统的资源处于不均衡状态。
为了解决系统资源的不均衡问题,提出了LB(Load Balance,负载均衡)机制。所谓LB机制就是在某一个时间段内,将比较繁忙的CPU对应的Run Queue运行队列中的任务迁移至比较空闲的CPU对应的Run Queue运行队列中,由比较空闲的CPU执行迁移后的任务,这样保证了各个CPU之间的负载均衡。
在LB机制实施的过程中,一旦确定了繁忙的CPU对应的Run Queue运行队列(以后称为源Run Queue)和比较空闲的CPU对应的Run Queue运行队列(以后称为目标RunQueue),在准备任务迁移时,尝试获取保护源Run Queue和保护目标Run Queue的自选锁,并在自选锁获取成功之后,执行任务在源Run Queue和目标Run Queue之间的迁移,并在迁移完成后,放弃自选锁。
因此,由于在LB机制中保证负载均衡的同时,还需要频繁的获取自选锁和释放自选锁,这样导致系统的工作性能大幅降低。
发明内容
本发明实施例提供了一种负载迁移的方法和设备,用于解决目前在LB机制中保证负载均衡的同时,存在频繁的获取自选锁和释放自选锁,而导致系统的工作性能大幅降低的问题。
一种负载迁移的方法,包括:
接收目标处理器发送的迁移请求信息,所述迁移请求信息用于表征需要从源处理器中迁移待处理的任务;
根据接收到的所述迁移请求消息中包含的所述目标处理器的标识信息,确定由所述源处理器和所述目标处理器协商的、用于放置所述源处理器中任务的描述符地址信息的中间表,以及根据所述迁移请求信息中包含了需要迁移待处理的任务的容量信息,确定待迁移的任务的描述符地址信息;并
将确定的所述描述符地址信息写入确定的所述中间表中,以便于所述目标处理器从所述中间表中获取所述描述符地址信息,并根据所述描述符地址信息得到所述待迁移的任务。
根据接收到的所述迁移请求消息中包含的所述目标处理器的标识信息,确定由所述源处理器和所述目标处理器协商的、用于放置所述源处理器中任务的描述符地址信息的中间表,包括:
根据接收到的所述迁移请求消息中包含的所述目标处理器的标识信息和所述源处理器的标识信息,确定所述目标处理器的标识信息和所述源处理器的标识信息共同指向的中间表,所述中间表是由所述源处理器和所述目标处理器协商的、用于放置所述源处理器中任务的描述符地址信息的中间表;
其中,所述目标处理器的标识信息不同,和/或所述源处理器的标识信息不同,分别指向的所述中间表不同。
所述中间表为一个循环链表,其中,所述循环链表中包含首指针信息和尾指针信息;
将确定的所述描述符地址信息写入所述中间表中,包括:
在确定所述中间表的存储空间不满时,确定所述中间表中所述尾指针信息指向的地址信息;并
从所述地址信息对应的地址信息开始,将确定的所述描述符地址信息依次写入所述中间表中。
所述方法还包括:
向所述目标处理器发送迁移响应信息,其中,所述迁移响应信息中包含了所述待迁移的描述符地址写入所述中间表的地址信息。
所述方法还包括:
在所述目标处理器得到所述待迁移的任务时,释放所述待迁移的任务在所述源处理器中占用的存储空间。
一种负载迁移的方法,包括:
向源处理器发送迁移请求信息,所述迁移请求信息用于表征需要从源处理器中迁移待处理的任务;
从中间表中获取待迁移的任务的描述符地址信息,其中,所述中间表是源处理器根据接收到的所述迁移请求消息中包含的所述目标处理器的标识信息,以及按照所述源处理器和所述目标处理器协商的、用于放置所述源处理器中任务的描述符地址信息的规则确定的;
根据所述描述符地址信息,从所述源处理器中获取所述待迁移的任务。
所述中间表为一个循环链表,其中,所述循环链表中包含首指针信息和尾指针信息;
从中间表中获取待迁移的任务的描述符地址信息,包括:
在确定所述中间表的存储空间不空时,确定所述中间表中所述首指针信息指向的地址信息;并
从所述地址信息对应的地址信息开始,依次读取所述中间表中存储的描述符地址信息。
所述方法还包括:
接收所述源处理器发送的迁移响应消息,其中,所述迁移响应信息中包含了所述待迁移的描述符地址写入中间表的地址信息;
从中间表中获取待迁移的任务的描述符地址信息,包括:
根据所述迁移响应信息中包含了所述待迁移的描述符地址写入中间表的地址信息,依次从所述中间表的所述地址信息中获取待迁移的任务的描述符地址信息。
一种负载迁移的设备,包括:
接收模块,用于接收目标处理器发送的迁移请求信息,所述迁移请求信息用于表征需要从源处理器中迁移待处理的任务;
确定模块,用于根据接收到的所述迁移请求消息中包含的所述目标处理器的标识信息,确定由所述源处理器和所述目标处理器协商的、用于放置所述源处理器中任务的描述符地址信息的中间表,以及根据所述迁移请求信息中包含了需要迁移待处理的任务的容量信息,确定待迁移的任务的描述符地址信息;并
写入模块,用于将确定的所述描述符地址信息写入确定的所述中间表中,以便于所述目标处理器从所述中间表中获取所述描述符地址信息,并根据所述描述符地址信息得到所述待迁移的任务。
所述确定模块,具体用于根据接收到的所述迁移请求消息中包含的所述目标处理器的标识信息和所述源处理器的标识信息,确定所述目标处理器的标识信息和所述源处理器的标识信息共同指向的中间表,所述中间表是由所述源处理器和所述目标处理器协商的、用于放置所述源处理器中任务的描述符地址信息的中间表;
其中,所述目标处理器的标识信息不同,和/或所述源处理器的标识信息不同,分别指向的所述中间表不同。
所述中间表为一个循环链表,其中,所述循环链表中包含首指针信息和尾指针信息;
所述写入模块,具体用于在确定所述中间表的存储空间不满时,确定所述中间表中所述尾指针信息指向的地址信息;并从所述地址信息对应的地址信息开始,将确定的所述描述符地址信息依次写入所述中间表中。
所述设备还包括:
发送模块,用于向所述目标处理器发送迁移响应信息,其中,所述迁移响应信息中包含了所述待迁移的描述符地址写入所述中间表的地址信息。
所述设备还包括:
释放模块,用于在所述目标处理器得到所述待迁移的任务时,释放所述待迁移的任务在所述源处理器中占用的存储空间。
一种负载迁移的设备,包括:
发送单元,用于向源处理器发送迁移请求信息,所述迁移请求信息用于表征需要从源处理器中迁移待处理的任务;
获取单元,用于从中间表中获取待迁移的任务的描述符地址信息,其中,所述中间表是源处理器根据接收到的所述迁移请求消息中包含的所述目标处理器的标识信息,以及按照所述源处理器和所述目标处理器协商的、用于放置所述源处理器中任务的描述符地址信息的规则确定的;
迁移单元,用于根据所述描述符地址信息,从所述源处理器中获取所述待迁移的任务。
所述中间表为一个循环链表,其中,所述循环链表中包含首指针信息和尾指针信息;
所述获取单元,具体用于在确定所述中间表的存储空间不空时,确定所述中间表中所述首指针信息指向的地址信息;并
从所述地址信息对应的地址信息开始,依次读取所述中间表中存储的描述符地址信息。
所述设备还包括:
接收单元,用于接收所述源处理器发送的迁移响应消息,其中,所述迁移响应信息中包含了所述待迁移的描述符地址写入中间表的地址信息;
所述获取单元,具体用于根据所述迁移响应信息中包含了所述待迁移的描述符地址写入中间表的地址信息,依次从所述中间表的所述地址信息中获取待迁移的任务的描述符地址信息。
本发明有益效果如下:
本发明实施例接收目标处理器发送的用于表征需要从源处理器中迁移待处理的任务的迁移请求信息,根据接收到的所述迁移请求消息中包含的所述目标处理器的标识信息,确定由所述源处理器和所述目标处理器协商的、用于放置所述源处理器中任务的描述符地址信息的中间表,以及根据所述迁移请求信息中包含了需要迁移待处理的任务的容量信息,确定待迁移的任务的描述符地址信息;并将确定的所述描述符地址信息写入确定的所述中间表中,以便于所述目标处理器从所述中间表中获取所述描述符地址信息,并根据所述描述符地址信息得到所述待迁移的任务,完成负载迁移,这样,通过引入中间表,将目前采用的基于自选锁的有锁负载均衡优化成为无锁负载均衡,避免了在执行负载迁移时频繁加锁和频繁解锁导致的系统性能大幅降低的问题,有效地提升了系统的整体性能。
附图说明
图1为本发明实施例一提供的一种负载迁移的方法的流程示意图;
图2为本发明实施例三提供的一种负载迁移的方法的流程示意图;
图3为本发明实施例四提供的一种负载迁移的设备的结构示意图;
图4为本发明实施例五提供的一种负载迁移的设备的结构示意图。
具体实施方式
为了实现本发明的目的,本发明实施例提供了一种负载迁移的方法和设备,接收目标处理器发送的用于表征需要从源处理器中迁移待处理的任务的迁移请求信息,根据接收到的所述迁移请求消息中包含的所述目标处理器的标识信息,确定由所述源处理器和所述目标处理器协商的、用于放置所述源处理器中任务的描述符地址信息的中间表,以及根据所述迁移请求信息中包含了需要迁移待处理的任务的容量信息,确定待迁移的任务的描述符地址信息;并将确定的所述描述符地址信息写入确定的所述中间表中,以便于所述目标处理器从所述中间表中获取所述描述符地址信息,并根据所述描述符地址信息得到所述待迁移的任务,完成负载迁移,这样,通过引入中间表,将目前采用的基于自选锁的有锁负载均衡优化成为无锁负载均衡,避免了在执行负载迁移时频繁加锁和频繁解锁导致的系统性能大幅降低的问题,有效地提升了系统的整体性能。
下面结合说明书附图对本发明各个实施例进行详细描述。
实施例一:
如图1所示,为本发明实施例一提供的一种负载迁移的方法的流程示意图。所述方法可以如下所述。
步骤101:接收目标处理器发送的迁移请求信息。
所述迁移请求信息用于表征需要从源处理器中迁移待处理的任务。
在步骤101中,由于在目前的SMP环境中包含了多个CPU(Central ProcessingUnit,中央处理器),每一个CPU都具有自身所属的调度域。Linux系统从CPU调度域中逐级开始查找处于最繁忙状态的调度域,并从最繁忙状态的调度域中查找出最繁忙的CPU,以及该CPU对应的Run Queue运行队列,并将查找到的最繁忙的CPU作为源处理器,需要迁移出一些任务,保证系统内部负载的均衡;同时Linux系统从CPU调度域中逐级开始查找处于最不忙状态的调度域,并从最不忙状态的调度域中查找出最不忙的CPU,以及该CPU对应的RunQueue运行队列,并查找到的最不忙的CPU作为目标处理器,需要接收源处理器迁移出的一些任务,保证系统内部负载的均衡。
在确定了源处理器和目标处理器之后,由目标处理器向源处理器发送迁移请求消息。
在本发明的另一个实施例中,在目标处理器发送迁移请求消息中包含了能够接收的最多任务数。
步骤102:根据接收到的所述迁移请求消息中包含的所述目标处理器的标识信息,确定由所述源处理器和所述目标处理器协商的、用于放置所述源处理器中任务的描述符地址信息的中间表。
在步骤102中,为了保证任意两个CPU之间发起的负载迁移都能够独立的完成,建立多个中间表,其中,一个中间表唯一对应一组源处理器和目标处理器,也就是说,当源处理器为A处理器,目标处理器为B处理器时,源处理器A与目标处理器B对应中间表1;当源处理器为B处理器,目标处理器为A处理器时,源处理器B与目标处理器A对应中间表2。
即使处理器相同,但是确定的源处理器和目标处理器不同,那么对应的中间表也不同。
假设系统中由N个CPU,分别是CPU0,CPU1,……,CPUn-1,那么将对应N*(N-1)张中间表,如表1所示,为CPUi与CPUj对应的中间表:
源处理器、目标处理器 | 中间表的标识信息 |
CPU0,CPU1 | 表L1 0 |
CPU1,CPU2 | 表L2 1 |
…… | …… |
CPUi,CPUj | 表Lj i |
…… | …… |
CPUn-2,CPUn-1 | 表Ln-1 n-2 |
…… | …… |
CPUj,CPUi | 表Li j |
…… | …… |
CPU1,CPU0 | 表L0 1 |
表1
需要说明的是,中间表的标识中既包含了源处理器的标识信息还包含了目标处理器的标识信息,其中,源处理器的标识信息在前,目标处理器的标识信息在后,例如:Li j中上标表示源处理器的标识信息,下标表示目标处理的标识信息。
具体地,根据接收到的所述迁移请求消息中包含的所述目标处理器的标识信息和所述源处理器的标识信息,确定所述目标处理器的标识信息和所述源处理器的标识信息共同指向的中间表。
所述中间表是由所述源处理器和所述目标处理器协商的、用于放置所述源处理器中任务的描述符地址信息的中间表。
其中,所述目标处理器的标识信息不同,和/或所述源处理器的标识信息不同,分别指向的所述中间表不同。
需要说明的是,单一依据目标处理器的标识信息确定的中间表有多个,此时在确定的多个中间表中确定出与源处理器的标识信息相同的中间表。
其中,中间表的形式可以是数组、循环链表以及队列等等,只要能够存储数据即可,这里不做具体限定。
当所述中间表为一个循环链表,所述循环链表中包含首指针信息和尾指针信息,且在中间表中存储待迁移任务的描述符地址信息,当首指针信息和尾指针信息相同时,说明中间表为空,当尾指针信息加1等于首指针信息时,说明中间表已满。
步骤103:根据所述迁移请求信息中包含了需要迁移待处理的任务的容量信息,确定待迁移的任务的描述符地址信息。
需要说明的是,步骤102和步骤103没有执行的先后顺序,可以按照本发明实施例所述的执行顺序执行,也可以同时执行,还可以是先执行步骤103再执行步骤102,这里不做限定。
步骤104:将确定的所述描述符地址信息写入确定的所述中间表中,以便于所述目标处理器从所述中间表中获取所述描述符地址信息,并根据所述描述符地址信息得到所述待迁移的任务。
在步骤104中,在确定所述中间表的存储空间不满时,确定所述中间表中所述尾指针信息指向的地址信息;并从所述地址信息对应的地址信息开始,将确定的所述描述符地址信息依次写入所述中间表中。
在本发明的另一个实施例中,所述方法还包括:
向所述目标处理器发送迁移响应信息。
其中,所述迁移响应信息中包含了所述待迁移的描述符地址写入所述中间表的地址信息。
在本发明的另一个实施例中,所述方法还包括:
在所述目标处理器得到所述待迁移的任务时,释放所述待迁移的任务在所述源处理器中占用的存储空间。
通过本发明实施例一的方案,接收目标处理器发送的用于表征需要从源处理器中迁移待处理的任务的迁移请求信息,根据接收到的所述迁移请求消息中包含的所述目标处理器的标识信息,确定由所述源处理器和所述目标处理器协商的、用于放置所述源处理器中任务的描述符地址信息的中间表,以及根据所述迁移请求信息中包含了需要迁移待处理的任务的容量信息,确定待迁移的任务的描述符地址信息;并将确定的所述描述符地址信息写入确定的所述中间表中,以便于所述目标处理器从所述中间表中获取所述描述符地址信息,并根据所述描述符地址信息得到所述待迁移的任务,完成负载迁移,这样,通过引入中间表,将目前采用的基于自选锁的有锁负载均衡优化成为无锁负载均衡,避免了在执行负载迁移时频繁加锁和频繁解锁导致的系统性能大幅降低的问题,有效地提升了系统的整体性能。
实施例二:
实施例二是本发明实施例一中各个步骤的详细描述。
假设系统中有N个CPU,编号为CPU0,CPU1,…,CPUn-1,简记为P0,P1,…,Pn-1;存在N×(N-1)个无锁循环链表L,L(lock-free)采用Ring Buffer的数据结构,其中,任意两个CPU之间存在一个无锁循环链表,例如:Pi和Pj之间的无锁循环链表记为
其中,每一个无锁循环链表由两部分组成:一个头指针和尾指针,如果则表示链表为空,如果则表示链表为满。
其中,无锁循链表L中存储的是待迁移任务的描述符地址。
当处理器Pi上有任务需要迁移到处理器Pj上,处理器Pi和处理器Pj执行负载迁移对应无锁循环链表和其中,初始值为0,用来表示不同处理器之间的异步通信。此时处理器Pi在无锁循环链表的尾指针所指向的存储空间中执行写操作,处理器Pi为无锁循环链表的写处理器;处理器Pj在无锁循环链表的头指针所指向的存储空间中执行读操作,处理器Pj为无锁循环链表的读处理器。
假设处理器Pi向处理器Pj中最多迁移M个任务,在迁移之初,系统初始化的示例:
需要说明的是,初始化的动作只在系统初始化的实施。
第一步:Pj向Pi发送请求任务迁移的信号,请求获取个进程。
Pj向Pi发送请求任务迁移的信号,请求获取个进程的示例为:
第二步:Pi在接收到请求任务迁移的信号,将需要迁移的任务的描述符地址写入
具体地,Pi在接收到请求任务迁移的信号,将需要迁移的任务的描述符地址写入的示例为:
第三步:Pj从中读出待迁移任务描述符地址。
实施例三:
如图2所示,为本发明实施例三提供的一种负载迁移的方法的流程示意图,本发明实施例三是与本发明实施例一~本发明实施例二在同一发明构思下的发明,所述方法可以如下所述。
步骤201:向源处理器发送迁移请求信息。
所述迁移请求信息用于表征需要从源处理器中迁移待处理的任务。
步骤202:从中间表中获取待迁移的任务的描述符地址信息。
其中,所述中间表是源处理器根据接收到的所述迁移请求消息中包含的所述目标处理器的标识信息,以及按照所述源处理器和所述目标处理器协商的、用于放置所述源处理器中任务的描述符地址信息的规则确定的。
在步骤202中,所述中间表为一个循环链表,其中,所述循环链表中包含首指针信息和尾指针信息。
具体地,从中间表中获取待迁移的任务的描述符地址信息,包括:
在确定所述中间表的存储空间不空时,确定所述中间表中所述首指针信息指向的地址信息;并从所述地址信息对应的地址信息开始,依次读取所述中间表中存储的描述符地址信息。
在本发明的另一个实施例中,所述方法还包括:
接收所述源处理器发送的迁移响应消息。
其中,所述迁移响应信息中包含了所述待迁移的描述符地址写入中间表的地址信息。
从中间表中获取待迁移的任务的描述符地址信息,包括:
根据所述迁移响应信息中包含了所述待迁移的描述符地址写入中间表的地址信息,依次从所述中间表的所述地址信息中获取待迁移的任务的描述符地址信息。
步骤203:根据所述描述符地址信息,从所述源处理器中获取所述待迁移的任务。
实施例四:
如图3所示,为本发明实施例四提供的一种负载迁移的设备的结构示意图,本发明实施例四是与本发明实施例一至实施三在同一发明构思下的发明,所述设备包括:接收模块11、确定模块12和写入模块13,其中:
接收模块11,用于接收目标处理器发送的迁移请求信息,所述迁移请求信息用于表征需要从源处理器中迁移待处理的任务;
确定模块12,用于根据接收到的所述迁移请求消息中包含的所述目标处理器的标识信息,确定由所述源处理器和所述目标处理器协商的、用于放置所述源处理器中任务的描述符地址信息的中间表,以及根据所述迁移请求信息中包含了需要迁移待处理的任务的容量信息,确定待迁移的任务的描述符地址信息;
写入模块13,用于将确定的所述描述符地址信息写入确定的所述中间表中,以便于所述目标处理器从所述中间表中获取所述描述符地址信息,并根据所述描述符地址信息得到所述待迁移的任务。
所述确定模块12,具体用于根据接收到的所述迁移请求消息中包含的所述目标处理器的标识信息和所述源处理器的标识信息,确定所述目标处理器的标识信息和所述源处理器的标识信息共同指向的中间表,所述中间表是由所述源处理器和所述目标处理器协商的、用于放置所述源处理器中任务的描述符地址信息的中间表;
其中,所述目标处理器的标识信息不同,和/或所述源处理器的标识信息不同,分别指向的所述中间表不同。
在本发明的另一个实施例中,所述中间表为一个循环链表,其中,所述循环链表中包含首指针信息和尾指针信息;
所述写入模块13,具体用于在确定所述中间表的存储空间不满时,确定所述中间表中所述尾指针信息指向的地址信息;并从所述地址信息对应的地址信息开始,将确定的所述描述符地址信息依次写入所述中间表中。
在本发明的另一个实施例中,所述设备还包括:发送模块14,其中:
发送模块14,用于向所述目标处理器发送迁移响应信息,其中,所述迁移响应信息中包含了所述待迁移的描述符地址写入所述中间表的地址信息。
在本发明的另一个实施例中,所述设备还包括:释放模块15,其中:
释放模块15,用于在所述目标处理器得到所述待迁移的任务时,释放所述待迁移的任务在所述源处理器中占用的存储空间。
需要说明的是,本发明实施例四所述的设备可以通过硬件实现,也可以通过软件实现,可以是具备需要迁移任务的处理器,这里不做限定。
实施例五:
如图4所示,为本发明实施例五提供的一种负载迁移的设备的结构示意图,本发明实施例五是与本发明实施例一至本发明实施例四在同一发明构思下的发明,所述设备包括:发送单元21、获取单元22和迁移单元23,其中:
发送单元21,用于向源处理器发送迁移请求信息,所述迁移请求信息用于表征需要从源处理器中迁移待处理的任务;
获取单元22,用于从中间表中获取待迁移的任务的描述符地址信息,其中,所述中间表是源处理器根据接收到的所述迁移请求消息中包含的所述目标处理器的标识信息,以及按照所述源处理器和所述目标处理器协商的、用于放置所述源处理器中任务的描述符地址信息的规则确定的;
迁移单元23,用于根据所述描述符地址信息,从所述源处理器中获取所述待迁移的任务。
在本发明的另一个实施例中,所述中间表为一个循环链表,其中,所述循环链表中包含首指针信息和尾指针信息;
所述获取单元22,具体用于在确定所述中间表的存储空间不空时,确定所述中间表中所述首指针信息指向的地址信息;并
从所述地址信息对应的地址信息开始,依次读取所述中间表中存储的描述符地址信息。
在本发明的另一个实施例中,所述设备还包括:接收单元24,其中:
接收单元24,用于接收所述源处理器发送的迁移响应消息,其中,所述迁移响应信息中包含了所述待迁移的描述符地址写入中间表的地址信息;
所述获取单元22,具体用于根据所述迁移响应信息中包含了所述待迁移的描述符地址写入中间表的地址信息,依次从所述中间表的所述地址信息中获取待迁移的任务的描述符地址信息。
需要说明的是,本发明实施例四所述的设备可以通过硬件实现,也可以通过软件实现,可以是具备接收迁移任务的处理器,这里不做限定。
本领域的技术人员应明白,本发明的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (16)
1.一种负载迁移的方法,其特征在于,包括:
接收目标处理器发送的迁移请求信息,所述迁移请求信息用于表征需要从源处理器中迁移待处理的任务;
根据接收到的所述迁移请求消息中包含的所述目标处理器的标识信息,确定由所述源处理器和所述目标处理器协商的、用于放置所述源处理器中任务的描述符地址信息的中间表,以及根据所述迁移请求信息中包含了需要迁移待处理的任务的容量信息,确定待迁移的任务的描述符地址信息;并
将确定的所述描述符地址信息写入确定的所述中间表中,以便于所述目标处理器从所述中间表中获取所述描述符地址信息,并根据所述描述符地址信息得到所述待迁移的任务;
其中,根据接收到的所述迁移请求消息中包含的所述目标处理器的标识信息,确定由所述源处理器和所述目标处理器协商的、用于放置所述源处理器中任务的描述符地址信息的中间表,包括:
根据接收到的所述迁移请求消息中包含的所述目标处理器的标识信息和所述源处理器的标识信息,确定所述目标处理器的标识信息和所述源处理器的标识信息共同指向的中间表,所述中间表是由所述源处理器和所述目标处理器协商的、用于放置所述源处理器中任务的描述符地址信息的中间表。
2.如权利要求1所述的方法,其特征在于,所述目标处理器的标识信息不同,和/或所述源处理器的标识信息不同,分别指向的所述中间表不同。
3.如权利要求1或2所述的方法,其特征在于,所述中间表为一个循环链表,其中,所述循环链表中包含首指针信息和尾指针信息;
将确定的所述描述符地址信息写入所述中间表中,包括:
在确定所述中间表的存储空间不满时,确定所述中间表中所述尾指针信息指向的地址信息;并
从所述地址信息对应的地址信息开始,将确定的所述描述符地址信息依次写入所述中间表中。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
向所述目标处理器发送迁移响应信息,其中,所述迁移响应信息中包含了所述待迁移的描述符地址写入所述中间表的地址信息。
5.如权利要求4所述的方法,其特征在于,所述方法还包括:
在所述目标处理器得到所述待迁移的任务时,释放所述待迁移的任务在所述源处理器中占用的存储空间。
6.一种负载迁移的方法,其特征在于,包括:
向源处理器发送迁移请求信息,所述迁移请求信息用于表征需要从源处理器中迁移待处理的任务;
从中间表中获取待迁移的任务的描述符地址信息,其中,所述中间表是源处理器根据接收到的所述迁移请求消息中包含的目标处理器的标识信息,以及按照所述源处理器和所述目标处理器协商的、用于放置所述源处理器中任务的描述符地址信息的规则确定的;
根据所述描述符地址信息,从所述源处理器中获取所述待迁移的任务;
其中,根据接收到的所述迁移请求消息中包含的所述目标处理器的标识信息,确定由所述源处理器和所述目标处理器协商的、用于放置所述源处理器中任务的描述符地址信息的中间表,包括:
根据接收到的所述迁移请求消息中包含的所述目标处理器的标识信息和所述源处理器的标识信息,确定所述目标处理器的标识信息和所述源处理器的标识信息共同指向的中间表,所述中间表是由所述源处理器和所述目标处理器协商的、用于放置所述源处理器中任务的描述符地址信息的中间表。
7.如权利要求6所述的方法,其特征在于,所述中间表为一个循环链表,其中,所述循环链表中包含首指针信息和尾指针信息;
从中间表中获取待迁移的任务的描述符地址信息,包括:
在确定所述中间表的存储空间不空时,确定所述中间表中所述首指针信息指向的地址信息;并
从所述地址信息对应的地址信息开始,依次读取所述中间表中存储的描述符地址信息。
8.如权利要求6所述的方法,其特征在于,所述方法还包括:
接收所述源处理器发送的迁移响应消息,其中,所述迁移响应信息中包含了所述待迁移的描述符地址写入中间表的地址信息;
从中间表中获取待迁移的任务的描述符地址信息,包括:
根据所述迁移响应信息中包含了所述待迁移的描述符地址写入中间表的地址信息,依次从所述中间表的所述地址信息中获取待迁移的任务的描述符地址信息。
9.一种负载迁移的设备,其特征在于,包括:
接收模块,用于接收目标处理器发送的迁移请求信息,所述迁移请求信息用于表征需要从源处理器中迁移待处理的任务;
确定模块,用于根据接收到的所述迁移请求消息中包含的所述目标处理器的标识信息,确定由所述源处理器和所述目标处理器协商的、用于放置所述源处理器中任务的描述符地址信息的中间表,以及根据所述迁移请求信息中包含了需要迁移待处理的任务的容量信息,确定待迁移的任务的描述符地址信息;并
写入模块,用于将确定的所述描述符地址信息写入确定的所述中间表中,以便于所述目标处理器从所述中间表中获取所述描述符地址信息,并根据所述描述符地址信息得到所述待迁移的任务;
其中,所述确定模块,具体用于根据接收到的所述迁移请求消息中包含的所述目标处理器的标识信息和所述源处理器的标识信息,确定所述目标处理器的标识信息和所述源处理器的标识信息共同指向的中间表,所述中间表是由所述源处理器和所述目标处理器协商的、用于放置所述源处理器中任务的描述符地址信息的中间表。
10.如权利要求9所述的设备,其特征在于,所述目标处理器的标识信息不同,和/或所述源处理器的标识信息不同,分别指向的所述中间表不同。
11.如权利要求9或10所述的设备,其特征在于,所述中间表为一个循环链表,其中,所述循环链表中包含首指针信息和尾指针信息;
所述写入模块,具体用于在确定所述中间表的存储空间不满时,确定所述中间表中所述尾指针信息指向的地址信息;并从所述地址信息对应的地址信息开始,将确定的所述描述符地址信息依次写入所述中间表中。
12.如权利要求11所述的设备,其特征在于,所述设备还包括:
发送模块,用于向所述目标处理器发送迁移响应信息,其中,所述迁移响应信息中包含了所述待迁移的描述符地址写入所述中间表的地址信息。
13.如权利要求12所述的设备,其特征在于,所述设备还包括:
释放模块,用于在所述目标处理器得到所述待迁移的任务时,释放所述待迁移的任务在所述源处理器中占用的存储空间。
14.一种负载迁移的设备,其特征在于,包括:
发送单元,用于向源处理器发送迁移请求信息,所述迁移请求信息用于表征需要从源处理器中迁移待处理的任务;
获取单元,用于从中间表中获取待迁移的任务的描述符地址信息,其中,所述中间表是源处理器根据接收到的所述迁移请求消息中包含的目标处理器的标识信息,以及按照所述源处理器和所述目标处理器协商的、用于放置所述源处理器中任务的描述符地址信息的规则确定的;
迁移单元,用于根据所述描述符地址信息,从所述源处理器中获取所述待迁移的任务;
其中,根据接收到的所述迁移请求消息中包含的所述目标处理器的标识信息,确定由所述源处理器和所述目标处理器协商的、用于放置所述源处理器中任务的描述符地址信息的中间表,包括:
根据接收到的所述迁移请求消息中包含的所述目标处理器的标识信息和所述源处理器的标识信息,确定所述目标处理器的标识信息和所述源处理器的标识信息共同指向的中间表,所述中间表是由所述源处理器和所述目标处理器协商的、用于放置所述源处理器中任务的描述符地址信息的中间表。
15.如权利要求14所述的设备,其特征在于,所述中间表为一个循环链表,其中,所述循环链表中包含首指针信息和尾指针信息;
所述获取单元,具体用于在确定所述中间表的存储空间不空时,确定所述中间表中所述首指针信息指向的地址信息;并
从所述地址信息对应的地址信息开始,依次读取所述中间表中存储的描述符地址信息。
16.如权利要求15所述的设备,其特征在于,所述设备还包括:
接收单元,用于接收所述源处理器发送的迁移响应消息,其中,所述迁移响应信息中包含了所述待迁移的描述符地址写入中间表的地址信息;
所述获取单元,具体用于根据所述迁移响应信息中包含了所述待迁移的描述符地址写入中间表的地址信息,依次从所述中间表的所述地址信息中获取待迁移的任务的描述符地址信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310743398.3A CN104754647B (zh) | 2013-12-29 | 2013-12-29 | 一种负载迁移的方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310743398.3A CN104754647B (zh) | 2013-12-29 | 2013-12-29 | 一种负载迁移的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104754647A CN104754647A (zh) | 2015-07-01 |
CN104754647B true CN104754647B (zh) | 2018-06-22 |
Family
ID=53593604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310743398.3A Active CN104754647B (zh) | 2013-12-29 | 2013-12-29 | 一种负载迁移的方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104754647B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108986800B (zh) * | 2017-05-31 | 2022-08-09 | 上海智觅智能科技有限公司 | 一种基于多处理器协调链表逻辑实时离线语音交互系统及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1910554A (zh) * | 2004-02-20 | 2007-02-07 | 索尼计算机娱乐公司 | 多处理器系统中处理器任务迁移的方法与装置 |
CN101354664A (zh) * | 2008-08-19 | 2009-01-28 | 中兴通讯股份有限公司 | 多核处理器中断负载均衡方法和装置 |
CN101458634A (zh) * | 2008-01-22 | 2009-06-17 | 中兴通讯股份有限公司 | 负载均衡调度方法和装置 |
CN102073461A (zh) * | 2010-12-07 | 2011-05-25 | 成都市华为赛门铁克科技有限公司 | 输入输出请求调度方法、存储控制器和存储阵列 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080115010A1 (en) * | 2006-11-15 | 2008-05-15 | Rothman Michael A | System and method to establish fine-grained platform control |
-
2013
- 2013-12-29 CN CN201310743398.3A patent/CN104754647B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1910554A (zh) * | 2004-02-20 | 2007-02-07 | 索尼计算机娱乐公司 | 多处理器系统中处理器任务迁移的方法与装置 |
CN101458634A (zh) * | 2008-01-22 | 2009-06-17 | 中兴通讯股份有限公司 | 负载均衡调度方法和装置 |
CN101354664A (zh) * | 2008-08-19 | 2009-01-28 | 中兴通讯股份有限公司 | 多核处理器中断负载均衡方法和装置 |
CN102073461A (zh) * | 2010-12-07 | 2011-05-25 | 成都市华为赛门铁克科技有限公司 | 输入输出请求调度方法、存储控制器和存储阵列 |
Also Published As
Publication number | Publication date |
---|---|
CN104754647A (zh) | 2015-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10877766B2 (en) | Embedded scheduling of hardware resources for hardware acceleration | |
WO2017166777A1 (zh) | 一种任务调度方法及装置 | |
US8949841B2 (en) | Approach for a configurable phase-based priority scheduler | |
US8549524B2 (en) | Task scheduler for cooperative tasks and threads for multiprocessors and multicore systems | |
US11163677B2 (en) | Dynamically allocated thread-local storage | |
US20140372810A1 (en) | Apparatus and method for monitoring performance of cores based on multi-core processor | |
US10402223B1 (en) | Scheduling hardware resources for offloading functions in a heterogeneous computing system | |
CN105630731A (zh) | 一种多cpu环境下网卡数据处理方法和装置 | |
CN104050033A (zh) | 用于有索引的屏障的硬件调度的系统和方法 | |
CN104050032A (zh) | 用于有条件的屏障和急迫的屏障的硬件调度的系统和方法 | |
CN103279379A (zh) | 用于在没有指令解码的情况下调度指令的方法和装置 | |
WO2013121085A2 (en) | Method, apparatus, and computer program product for inter-core communication in multi-core processors | |
US9471383B2 (en) | Task allocation in a computing environment | |
RU2010149889A (ru) | Конфигурируемое разделение для параллельных данных | |
US11941528B2 (en) | Neural network training in a distributed system | |
JP2014191594A (ja) | 分散処理システム | |
CN111078394A (zh) | 一种gpu线程负载均衡方法与装置 | |
CN110502337B (zh) | 针对Hadoop MapReduce中混洗阶段的优化系统 | |
CN109840151B (zh) | 一种用于多核处理器的负载均衡方法和装置 | |
CN104754647B (zh) | 一种负载迁移的方法和设备 | |
CN110175073B (zh) | 数据交换作业的调度方法、发送方法、装置及相关设备 | |
US10976934B2 (en) | Prioritizing pages to transfer for memory sharing | |
Markthub et al. | Using rcuda to reduce gpu resource-assignment fragmentation caused by job scheduler | |
CN114493980B (zh) | 内核函数传输方法、装置及设备 | |
US9753670B2 (en) | Prioritizing memory pages to copy for memory migration |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |