一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

确定多核处理器复合体中每个核心的最佳线程数量的制作方法

2022-07-10 16:47:12 来源:中国专利 TAG:


1.本发明涉及用于确定在多核处理器复合体中每个核心的可用于执行任务的线程的最佳数量的计算机程序产品、系统和方法。


背景技术:

2.在提供同时多线程的处理器芯片或复合体中,处理器芯片上的多个核心可各自实现可同时执行以并行化工作负载的多个线程。处理器芯片上的每一核心需要硬件、高速缓存(诸如,l1和l2高速缓存)和用于所述核心的管线硬件。核心上的线程共享核心硬件。进一步,每一线程可在核心中具有专用资源,诸如管线资源的子集,且核心上的线程可共享高速缓存,诸如可用于核心的l2和l3高速缓存。每个核心还可以具有专用l1高速缓存。
3.处理器芯片上的核心可以不同模式运行以动态地改变核心上可用于处理或被置于空闲状态的线程的数量。通常,用户发出命令以控制多少线程在每个核心上运行,这需要静默对核心的任务调度以进行处理。
4.本领域中需要改进的技术用于确定在多核系统中的每个核心上运行的线程的最佳数量并且改变每个核心上可运行的线程以实现线程的最佳数量。


技术实现要素:

5.提供了用于确定多核处理器复合体中每个核心的可用于执行任务的线程的最佳数量的计算机程序产品、系统和方法。基于在所述处理器芯片的所述核心上执行的线程来确定第一处理测量,其中,每个核心包括用于独立地执行多个线程的电路。基于所述第一处理测量,确定要在所述核心上执行的线程的数量。基于在所述处理器芯片的所述核心上执行的所述线程,确定第二处理测量。基于所述第二处理测量确定对要执行的所确定的线程数量的调整,从而得到调整后的线程数量。利用所述核心上的调整后数量的线程执行所述指令。
6.利用上述实施例,基于两个不同的处理测量来确定要在多核处理器中的多个核心上执行的线程的最佳数量,以对两个不同的处理属性进行优化。第一处理测量被用于确定最佳线程数量以优化第一处理因子,并且然后第二处理测量被用于调整所确定的最佳线程数量以优化备选测量以提供双因子优化。
7.在进一步的实施例中,所述第一处理测量包括来自在处理器复合体的核心上执行的线程的输入/输出(i/o)操作的数量,并且其中,所述第二处理测量包括基于所确定的i/o操作的数量在所述核心上执行的线程的数量。
8.利用上述实施例,确定最佳线程数量以针对i/o操作数量进行优化,这将随着i/o操作的数量的增加而增加可用线程的数量,以随着i/o负载的增加而维持性能。
9.在进一步的实施例中,保持锁自旋时间的范围和对所确定的线程数量的调整的关联。确定对与包括所确定的锁自旋时间的锁自旋时间范围相关联的所确定的线程数量的调整。
10.通过上述实施例,基于锁自旋时间进一步调整和优化最佳数量,以试图减少锁自旋时间,其妨碍性能。随着锁自旋时间增加,减少线程数量的调整增加以减少可用线程,其减少了锁竞争和整个系统锁自旋时间。
11.在进一步的实施例中,所确定的在每个核心上执行的线程的数量包括少于可用于在每个核心上独立执行的线程的数量。任务仅被调度为在每个核心上的所确定数量的线程上执行,从而在多个核心上留下至少一个线程空闲。
12.利用上述实施例,通过仅调度任务来在确定数量的线程上而不是空闲线程上执行来有效地使线程空闲。这避免了使处理器复合体离线以通过将处理器内核留在线上但是使用调度器来避免调度任务到空闲核心来重新配置可用线程的需要。
13.在另一实施例中,第一处理测量包括在核心中执行的线程等待以获得对资源的锁的锁自旋时间,并且第二处理测量包括来自在核心上执行的线程的i/o操作的数量以及在核心和由核心使用的共享存储器之间的跨存储器总线流量中的至少一个。
14.利用上述实施例,基于锁自旋时间来选择最佳数量以减少线程以减少锁自旋时间。根据操作的数量,可进一步调整(诸如,增加)最佳数量,以基于操作的数量进行第二优化。
15.还提供了一种用于确定在多核处理器复合体中每个核心的可用于执行任务的线程的最佳数量的计算机程序产品、系统和方法。确定来自在所述处理器复合体的核心上执行的线程的输入/输出(i/o)操作的数量,其中每个核心包括用于独立地执行多个线程的电路。基于所确定的i/o操作的数量,确定要在所述核心上执行的线程的数量。利用所述核心上所确定数量的线程来执行指令。
16.利用上述实施例,基于i/o操作确定最佳线程数量,以基于复合体中i/o操作的级别选择最佳数量,以随着i/o操作的数量增加而保持性能。
17.还提供了一种用于确定在多核处理器复合体中每个核心的可用于执行任务的线程的最佳数量的计算机程序产品、系统和方法。确定在核心中执行的线程等待以获得对计算资源的锁的锁自旋时间。基于所确定的锁自旋时间确定要在所述核心上执行的线程的数量。核心上的所确定数量的线程用于执行指令。
18.利用上述实施例,基于所有线程等待访问计算资源的锁自旋时间以选择最佳数量来减少锁竞争和锁自旋时间来确定线程的最佳数量,这通过减少获得锁的等待时间来提高系统性能。
附图说明
19.图1示出了计算环境的实施例。
20.图2示出了在处理器复合体的核心中实现的线程的线程信息的实施例。
21.图3示出了在核心上实现的线程的线程可用性信息的实施例。
22.图4示出了用于输入/输出(i/o)操作范围的最佳线程数量的实施例。
23.图5示出了用于i/o操作表的最佳线程的实施例。
24.图6示出了针对所有线程的锁自旋时间范围的最佳线程数量的锁自旋时间调整的实施例。
25.图7示出了用于调整最佳线程数量的锁自旋时间调整表的实施例。
26.图8示出了基于i/o操作和锁自旋时间来确定并使用每个核心的最佳线程数的操作的实施例。
27.图9示出了用于基于第一处理测量和第二处理测量来确定并使用每个核心的线程的最佳数量的操作的附加实施例。
28.图10示出了用于锁自旋时间范围表的最佳线程数的实施例。
29.图11示出了用于调整最佳线程数量的i/o操作调整表的实施例。
30.图12示出了基于i/o操作确定并使用每个核心的最佳线程数的操作的实施例。
31.图13示出了基于锁自旋时间确定并使用每个核心的最佳线程数的操作的实施例。
32.图14示出了图1的部件可在其中实现的计算环境。
具体实施方式
33.所描述的实施例为计算机技术提供改进,用于确定要在处理器复合体的核心上执行的线程的最佳数量,以便在线程上提供任务的同时多线程化。所描述的实施例确定要在处理器复合体的核心上执行的线程的最佳数量,其考虑一个或多个处理测量以基于两个不同的处理测量来优化性能。
34.所描述的实施例提供了对操作的进一步改进,以便通过在线程可用性信息中将每个核心的最佳线程数量指示为可用的以及将其他核心的线程指示为空闲的来调整在每个处理器核心上可用的最佳线程数量,使得仅在核心中那些被指示为可用的线程上调度任务。通过在单独的线程可用性信息中指示可用的和空闲的线程,这避免了导致使核心离线来重新配置在每个核心中可用的或空闲的线程的延迟。
35.所描述的实施例可以确定每个核心可用的线程的最佳数量,其考虑多个处理测量和属性,诸如来自在核心上执行的线程的i/o操作的数量、在核心之间的交叉存储器总线流量、由核心使用的共享存储器、在核心中执行的线程等待以获得对资源的锁的锁自旋时间等。在一个实施例中,可以通过首先基于所确定的i/o操作数量来确定要在核心上执行的线程的最佳数量,并且然后基于所确定的线程等待对计算资源的锁变得可用所花费的锁自旋时间来确定对要执行的线程的最佳数量的调整,来确定线程的最佳数量。
36.图1示出了具有多个处理器复合体1021、1022…
102n的计算系统100的实施例,所述多个处理器复合体1021、1022…
102n可以通过存储器接口104访问共享存储器106。每个处理器复合体102i可以包括多个处理核心1081、1082、108
m-1
、108m,每个处理核心具有板上l1高速缓存1101、1102、110
m-1
、110m。每对核心(诸如1081、1082和108
m-1
、108m)可以共享l2高速缓存1121...112
m/2
和较大的l3高速缓存1141....114
m/2
,诸如具有国际商业机器处理器。每个处理器复合体102i可包括单芯片模块(scm)。l3缓存114i包括嵌入式动态随机存取存储器(dram)。
37.每个核心108i可以包括用于独立地执行线程116i以允许工作负荷的并行化以及线程116i跨核心1081、1082和108
m-1
、108m的同时多线程化的硬件和电路。同时多线程化允许单个核心108i同时调遣来自不同线程116i的指令。
38.共享存储器106包括由线程116i中的一个或多个执行的程序组件,包括线程管理器120以管理核心108i中的线程116i的可用性;任务调度器122,用于向线程116i调度任务;线程信息200,所述线程信息具有关于i/o操作的处理的信息以及线程116i等待以获得关于
资源的锁的锁自旋时间;线程可用性信息300,其指示核心108i上的线程116i接收任务的可用性;锁管理器124,其用于管理锁对系统100中的计算资源126的访问,诸如读/写队列、最近最少使用(lru)列表、存储、处理和其他计算资源;用于i/o操作的最佳线程400,其提供使得可用于不同i/o操作范围的线程的最佳数量;以及锁自旋时间调整600,其对于不同锁自旋时间范围提供对最佳线程数量的调整。
39.在备选实施例中,共享l2和l3高速缓存的核心的布置可以与图1中示出的不同。
40.在图1的实施例中,存储器106在处理器复合体1021、1022…
102n外部。在备选实施例中,每个处理器复合体102i可以包括用于嵌入在处理器复合体102i上的所有核心108i的共享存储器。在共享存储器106中示出了程序组件120、122、124以及数据200、300、400和500。在另外的实施例中,这些程序组件和信息中的一些或全部可被维持在l3 114i或l2 112i高速缓存中。l2高速缓存112i可以用于高速缓存从l1高速缓存110i驱逐的数据,并且l3高速缓存114i可以用于高速缓存从l2高速缓存112i驱逐的数据。
41.在一个实施例中,每个处理器复合体102i可以将程序组件120、122、124和数据200、300、400和500的单独实例维持在共享存储器106中。在另外的实施例中,可以有一组程序组件120、122、124和数据200、300、400和500来管理跨处理器复合体1021…
102n的线程的分配。
42.术语“处理器复合体”还可以被称为“处理单元”、“处理器”、“处理器芯片”等。核心108i可以在硬件电路中实现线程116i以在一个或多个集成电路管芯中执行任务。进一步,处理器复合体、核心和线程可以包括虚拟处理组件,所述虚拟处理组件相对于在物理主机处理和存储器资源中实现的虚拟处理器复合体、核心、线程、存储器和高速缓存执行操作。
43.在某些实施例中,计算系统100包括提供对共享非易失性存储装置的访问的存储控制器。
44.存储器106可以包括易失性或非易失性的一个或多个存储器设备,诸如动态随机存取存储器(dram)、相变存储器(pcm)、磁阻随机存取存储器(mram)、自旋转移矩(stt)-mram、sram存储设备、dram、铁电随机存取存储器(fetram)、基于纳米线的非易失性存储器和直接内嵌存储器模块(dimm)、nand存储装置(例如,闪存)、固态驱动器(ssd)存储装置、非易失性ram等。
45.图2示出为一个处理器复合体102i的核心108i中的线程116i保持的线程信息200的实施例,其包括:在测量时段期间对处理器复合体102i中的所有线程1161…
116m执行的i/o操作的总数;所使用的线程数量204,其可包括少于所有的线程1161…
116m,留下每个核心108i上的一些线程空闲;处理器复合体102i上的核心数量206;在所有核心108i中实施的处理器复合体102i中可用的线程的最大数量208;跨所有线程的锁自旋时间210,诸如以处理器周期,所有线程1161…
116m必须等待以从锁管理器124获得锁以存取计算资源126。
46.图3示出了为特定核心108i和线程116j维持的线程可用性信息300i的实施例,并且包括:核心302;线程304;空闲/可用标志306,其指示线程304是空闲的并且没有接收任务还是可用于从任务调度器122接收任务;指配给核心406上的线程304的指配任务308;以及将供线程304执行的指配任务排队的任务队列310。任务调度器122可以使用负载平衡来将任务分配给处理器复合体102i中的核心108i中的线程116j。
47.图4示出用于i/o操作的最佳线程中的条目400i的实施例,并且包括:i/o操作的范
围402和用于范围402的最大线程调整404。例如,调整404可以包括线程208的最大数量的百分比,该百分比对于较大数量的i/o操作的范围增加,因为需要更多的线程来处理较大数量的i/o操作以维持系统100性能。
48.图5提供用于i/o操作表500(诸如表400)的最佳线程的实施例的实例,其对于不同范围的i/o操作提供线程208的最大数量的不同百分比,其中对于较高范围的i/o操作,最佳线程数量增加。
49.图6示出了锁自旋时间线程调整表600中的条目600i的实施例并且包括:测量时间段内所有线程602的以cpu周期的锁自旋时间范围;以及对线程604的最佳数量的对应调整。调整604可以包括减小所确定的最佳线程数量的百分比,所述百分比减小对于较高范围的锁自旋时间602而增大。为了减少来自高级锁自旋时间的延迟,减少操作的线程数量以减少访问计算资源126的锁竞争量。由此,随着用于所有线程的锁自旋时间增加,对最佳线程数量的百分比减少增加,以减少有助于锁竞争的线程数量。
50.图7提供了对锁自旋时间线程调整表600的调整的实施例的示例,其向最佳线程数量提供不同的百分比减少,其中对于等待锁所花费的cpu周期(即,锁自旋时间)的较高百分比的范围,百分比减少增加。
51.图8示出了由线程管理器120执行以确定使任务调度器122可用于执行任务的线程和使线程116i空闲的操作的实施例。图8的操作可以周期性地执行以调整每个核心108i的线程116i的数量,以使i/o操作处理延迟和锁竞争最小化。在发起(在方框800)操作以调整每个核心108j中用于任务调度的线程116i的数量时,线程管理器120从在测量时段期间在处理器复合体102i的核心1081…
108m上执行的线程1161…
116m确定(在方框802)i/o操作的总数202。根据i/o操作表400(诸如表500(图5))的最佳线程,确定(在方框804)对应于i/o操作402的范围(其包括跨线程202的所确定的i/o操作的总数)的线程404的最佳数量。所确定的线程的最佳数量包括由所确定的条目400i的字段404中指定的百分比调整的每个核心108i的线程208的最大数量,所确定的条目400i具有i/o操作范围402,其包括在测量时段期间核心108i上的所确定的i/o操作的数量。
52.线程管理器120确定(在方框806)在核心1081…
108m中执行的所有线程1161…
116m等待210以获得计算资源126上的锁的锁自旋时间。基于所确定的锁自旋时间,从锁自旋时间调整表600确定(在方框808)对所确定的最佳线程数量的调整604。例如,锁自旋时间调整表600中的条目600i被确定具有包括所有线程116i等待210的所确定的锁自旋时间的锁自旋时间602的范围,并且从所确定的条目600i确定调整604。所确定的调整被应用(在方框810)到所确定的最佳线程数量以产生经调整的最佳线程数量。将优化i/o操作性能和锁竞争两者的经调整的最佳线程数量除以(在方框812处)核心206的数量以产生每个核心的最佳可用线程数量。对于每个核心108i,线程管理器120在针对核心108i中的每个核心的最佳数量的可用线程的线程可用性信息300i中将线程指示(在方框814)为可用,并且在针对核心108i中的未被指示为可用的线程的线程可用性信息300i中将线程指示为空闲。例如,如果每个核心有四个线程,并且三个线程是每个核心可用的线程的最佳数量,则三个(最佳数量)线程的线程可用性信息300i在字段306中指示那些线程为可用,并且一个线程的线程可用性信息300i在字段306中指示一个线程为空闲。清除所有线程202上的i/o操作的数量和所有线程210上的锁自旋时间(在方框816处),使得对下一个测量时间段进行新的测量,以便用
在图8的操作的下一个实例中,以调整可用线程的最佳数量。
53.利用图8的实施例,确定每个核心可用的最佳线程数,以通过随着系统100中的i/o操作增加而增加线程数,并且随着由于更多的线程并行操作所引起的增加的锁竞争而增加的锁自旋时间而减少线程数,来优化可用线程数,从而最小化i/o操作延迟。
54.通过更新存储器106中的线程可用性信息300以指示可用和空闲线程,进一步描述的实施例避免调整处理器复合体102i中可用的线程的最佳数量的延迟。任务调度器122仅在线程可用性信息300i中指示为可用的线程116i上调度任务。以此方式,在不必重新配置核心108i的情况下更新每个核心变得可用和空闲的线程数量。
55.图9示出了由线程管理器120执行以确定使任务调度器122可用于执行任务的线程和使线程116i空闲的操作的另外的实施例。可以周期性地执行图9的操作以调整每个核心108i的线程116i的数量以在多个因素上优化。在发起(在方框900)操作以调整每个核心108j中用于任务调度的线程116i的数量时,线程管理器120基于在测量时段期间在处理器复合体102i的核心1081…
108m上执行的线程1161…
116m来确定(在方框802)第一处理测量。基于第一处理测量,确定(在方框904)要在核心1081…
108m上执行的线程的最佳数量。
56.线程管理器120基于在测量时段期间在处理器复合体102i的核心1081…
108m上执行的线程1161…
116m来确定(在方框906处)第二处理测量。基于第二处理测量,确定(在方框908处)对确定的最佳线程数量的调整。所确定的调整被应用(在方框910处)到所确定的最佳线程数量以产生经调整的最佳线程数量。基于第一和第二处理测量优化的调整后的最佳线程数量除以(在方框912处)核心206的数量,以产生每个核心的最佳可用线程数量。对于每个核心108i,线程管理器120在针对核心108i中的每个核心的最佳数量的可用线程的线程可用性信息300i中将线程指示(在方框914)为可用,并且在针对核心108i中的未被指示为可用的线程的线程可用性信息300i中将线程指示为空闲。例如,如果每个核心有四个线程,并且三个线程是每个核心可用的线程的最佳数量,则三个(最佳数量)线程的线程可用性信息300i在字段306中指示那些线程为可用,并且一个线程的线程可用性信息300i在字段306中指示一个线程为空闲。清除第一和第二处理测量(在方框916处),使得对下一测量时间段进行新测量,以在图9的操作的下一实例中使用,以调整可用线程的最佳数量。
57.利用图9的操作的实施例,基于多个不同的处理器测量,确定每个核心可用的线程的最佳数量,以优化线程的可用数量。在一个实施例中,第一处理测量可以包括来自在核心上执行的线程的i/o操作数量、核心之间的跨存储器总线流量、存储器操作等中的至少一个,并且第二处理测量可以包括在核心中执行的线程等待以获得对资源的锁的锁自旋时间。在进一步的实施例中,第一处理测量可以包括在核心中执行的线程等待以获得对资源的锁的锁自旋时间,并且第二处理测量包括来自在核心上执行的线程的i/o操作数量和在核心之间的跨存储器总线流量、由核心使用的共享存储器等中的至少一个。影响系统性能的附加计算资源使用也可被考虑用于第一和第二处理测量以在多个处理测量上优化。
58.图10和图11提供了当第一处理测量包括在核心中执行的线程等待以获得对资源的锁的锁自旋时间并且第二处理测量包括来自在核心上执行的线程的i/o操作的数量时的调整表的实施例。图10示出了锁自旋时间1002的百分比如何映射到不同数量的最佳线程数量1004,其中,最佳线程数量被计算为核心1081...108n上可用的线程208的最大数量的百分比。锁自旋时间的不同范围1002因此映射到最大线程数量1004的不同百分比。
59.在使用图10和锁自旋时间计算最佳线程数量之后,然后可以通过如图11所示的i/o操作的范围来确定对最佳线程数量的调整。图11示出了对不同i/o范围1102的线程1104的最佳数量的调整。随着i/o操作1102的范围增加,则对所确定的最佳线程数量的调整1104较少,因为对于较大范围的i/o操作需要更多的线程来保持性能。
60.图12示出了由线程管理器120执行以仅基于i/o操作的数量来确定使任务调度器122可用于执行任务的线程和使线程116i空闲的操作的另外的实施例。可以周期性地执行图12的操作以调整每个核心108i的线程116i的数量,以使i/o操作处理延迟和锁竞争最小化。在发起(在方框1200)操作以调整每个核心108j中用于任务调度的线程116i的数量时,线程管理器120从在测量时段期间在处理器复合体102i的核心1081…
108m上执行的线程1161…
116m确定(在方框1202)i/o操作202的总数。根据i/o操作表400的最佳线程(诸如图5中的表),确定(在方框1204)对应于i/o操作的范围402的线程404的最佳数量,i/o操作的范围402包括跨线程202的所确定的i/o操作的总数。所确定的线程的最佳数量包括由所确定的条目400i的字段404中指定的百分比调整的每个核心108i的线程208的最大数量,所确定的条目400i具有i/o操作范围402,其包括在测量时段期间核心108i上的所确定的i/o操作的数量。
61.图13示出由线程管理器120执行以仅基于在所有核心上执行的所有线程等待获取计算资源上的锁的一个锁自旋时间210来确定使任务调度器122可用于执行任务的线程和使线程116i空闲的操作的附加实施例。图13的操作可被周期性地执行以调整每个核心108i的线程116i的数量,以使i/o操作处理延迟和锁竞争最小化。在发起(在方框1300)操作以调整每个核心108j中用于任务调度的线程116i的数量时,线程管理器120确定(在方框1302)在核心1081…
108m中执行的所有线程1161…
116m等待210以获得计算资源126上的锁的锁自旋时间。根据针对锁自旋时间1000(图10)的最佳线程确定(在方框1304处)最大线程数量1004的百分比,所述最大线程数量包括最佳线程数量,所述最佳数量对应于锁自旋时间1002的范围,其包括跨所有线程202的所确定的锁自旋时间120。所确定的最佳线程数量1004包括由针对所确定的锁自旋时间范围1002的图10的列1004中指定的百分比调整的每个核心108i的最大线程数量208,该范围1002包括在测量时段期间跨所有线程的所确定的锁自旋时间210。
62.在所描述的实施例中,当与不同元素一起使用时,变量i、j、m、n等可以表示该元素的相同或不同实例。
63.本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质(或多个介质)。
64.计算机可读存储媒体可为可保留和存储供指令执行装置使用的指令的有形装置。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式紧凑盘只读存储器(cd-rom)、数字通用盘(dvd)、记忆棒、软盘、诸如穿孔卡之类的机械编码设备或具有记录在其上的指令的槽中的凸出结构、以及上述各项的任何合适的组合。如本文所
使用的计算机可读存储媒体不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输媒体传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。
65.本文中所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载到相应的计算/处理设备,或者下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
66.用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或以一种或多种编程语言的任何组合编写的源代码或目标代码,这些编程语言包括面向对象的编程语言(如java、smalltalk、c 等)和常规的过程编程语言(如“c”编程语言或类似的编程语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(lan)或广域网(wan))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
67.下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
68.这些计算机可读程序指令可被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的或多个方框中规定的功能/动作的方面的指令的制造品。
69.也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中的或多个方框中规定的功能/动作。
70.附图中的流程图和框图示出了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个块实际上可以基本上同时执行,或者这些块有时可以以相反的顺序执行。也要
注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。
71.图1的计算组件可在一个或多个计算机系统中实现,诸如图14所示的计算机系统1402。计算机系统/服务器1402可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般上下文中描述。一般而言,程序模块可包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统/服务器1402可以在分布式云计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储介质中。
72.如图14所示,计算机系统/服务器1402以通用计算设备的形式示出。计算机系统/服务器1402的组件可以包括但不限于:一个或多个处理器或处理单元1404,诸如图1中的处理器复合体102i;系统存储器1406,诸如图1中的共享存储器106;以及将包括系统存储器1406的不同系统组件耦合至处理器1404的总线1408。总线1408表示若干类型的总线结构中的任何一种中的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线架构中的任一种的处理器或局部总线。作为示例而非限制,此类体系结构包括工业标准体系结构(isa)总线、微通道体系结构(mca)总线、增强型isa(eisa)总线、视频电子标准协会(vesa)局部总线以及外围组件互连(pci)总线。
73.计算机系统/服务器1402通常包括各种计算机系统可读介质。这样的介质可以是可由计算机系统/服务器1402访问的任何可用介质,并且其包括易失性和非易失性介质、可移动和不可移动介质。
74.系统存储器1406可以包括易失性存储器形式的计算机系统可读介质,诸如随机存取存储器(ram)1410和/或高速缓存存储器1412。计算机系统/服务器1402可以还包括其他可移动/不可移动、易失性/非易失性计算机系统存储介质。仅通过示例的方式,存储系统1413可以被提供用于从不可移动、非易失性磁介质(未示出,并且通常被称为“硬盘驱动器”)中读取和向其写入。尽管未示出,可以提供用于从可移动非易失性磁盘(例如,“软盘”)读取或向其写入的磁盘驱动器,以及用于从可移动非易失性光盘(如cd-rom、dvd-rom或其他光学介质)读取或向其写入的光盘驱动器。在这样的情况下,每一个可以通过一个或多个数据介质接口连接到总线1408。如以下将进一步描绘和描述的,存储器1406可以包括具有被配置成用于执行本发明的实施例的功能的一组(例如,至少一个)程序模块的至少一个程序产品。
75.具有一组(至少一个)程序模块1416的程序/实用程序1414以及操作系统、一个或多个应用程序、其他程序模块和程序数据可以作为示例而非限制存储在存储器1406中。操作系统、一个或多个应用程序、其他程序模块和程序数据中的每一个或它们的一些组合可以包括网络环境的实现方式。计算机1402的组件可以被实现为程序模块1416,程序模块1416一般执行如本文所描述的本发明的实施例的功能和/或方法。图1的系统可以在一个或多个计算机系统1402中实现,其中如果它们在多个计算机系统1402中实现,则计算机系统可以通过网络通信。
76.计算机系统/服务器1402还可以与诸如键盘、定点设备、显示器1420等之类的一个或多个外部设备1418、使得用户能够与计算机系统/服务器1402交互的一个或多个设备通
信;和/或使得计算机系统/服务器1402能够与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)。此类通信可经由输入/输出(i/o)接口1422发生。此外,计算机系统/服务器1402可以经由网络适配器1424与诸如局域网(lan)、通用广域网(wan)和/或公共网络(例如,互联网)的一个或多个网络通信。如图所示,网络适配器1424通过总线1408与计算机系统/服务器1402的其他组件通信。应当理解,虽然未示出,但是其他硬件和/或软件组件可以与计算机系统/服务器1402结合使用。示例包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器和数据归档存储系统等。
77.除非另有明确规定,否则术语“一个实施例”、“实施例”、“多个实施例”、“一个或多个实施例”、“一些实施例”以及“该实施例”表示“本发明的一个或多个(但不是全部)实施例”。
78.除非另有明确规定,否则术语“包括”、“包含”、“具有”及其变形表示“包括但不限于”。
79.项目的枚举列表并不意味着任何或所有项目是相互排斥的,除非另有明确规定。
80.除非另有明确说明,否则术语“一个”、“一种”和“该”是指“一个或多个”。
81.彼此通信的设备不需要彼此连续通信,除非另外明确规定。此外,彼此通信的装置可直接地或通过一个或多个中介者间接地通信。
82.具有彼此通信的多个部件的实施例的描述并不暗示需要所有这样的部件。相反,描述了各种可选部件以说明本发明的各种可能的实施例。
83.当在本文中描述单个设备或物品时,将显而易见的是,可使用多于一个设备/物品(无论它们是否协作)来代替单个设备/物品。类似地,在本文中描述了不止一个设备或物品(无论它们是否协作)的情况下,将显而易见的是,可使用单个设备/物品来代替不止一个设备或物品,或者可使用不同数量的设备/物品来代替所示数量的设备或程序。设备的功能和/或特征可以可替代地由未明确描述为具有这种功能/特征的一个或多个其他设备来体现。由此,本发明的其他实施例不需要包括设备本身。
84.为了说明和描述的目的,已经呈现了本发明的各个实施例的上述描述。其并不旨在是详尽的或将本发明限于所公开的精确形式。根据上述教导,许多修改和变化是可能的。意图是本发明的范围不受该详细描述的限制,而是受所附权利要求的限制。以上说明书、实例以及数据提供了本发明的组合物的制造和使用的完整描述。因为可以在不背离本发明的范围的情况下做出本发明的许多实施例,所以本发明存在于所附权利要求中。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献