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

一种运行进程的方法及相关设备与流程

2023-02-19 05:32:17 来源:中国专利 TAG:


1.本技术实施例涉及计算机技术领域,尤其涉及一种运行进程的方法及相关设备。


背景技术:

2.随着计算技术的发展,各个类型的计算机设备的硬件资源越来越丰富。尤其对于需要处理大量的进程任务的计算机设备,其硬件资源往往包括了多个处理器以及多个存储器。
3.计算机设备可以采用非统一内存访问(non uniform memory access,numa)系统,对各个处理器以及各个存储器配置为多个不同的numa节点。不同处理器访问不同存储器所花费的时长并不相同,每个numa节点中的处理器访问本节点内的存储器所需要的时间,比访问其他numa节点上的存储器所花费的时间要少。因此,为了减少进程运行过程中,出现上述跨节点访问的情况,一般将各个进程绑定到对应的处理器上来运行,从而对各个进程进行隔离和限制。
4.大多数进程在运行时所需要的处理器核的个数并非整数,例如0.5个、0.8个或1.2个等等,针对这种所需要的处理器核个数非整数的情况,一般会对进程所需要的处理器核个数进行向上取整。例如,某个进程需要0.5个处理器核时,则向该进程分配1个处理器,又例如,某个进程需1.2个处理器核时,则向该进程分配2个处理器。然而,这种资源分配模式下,大多数进程都没有充分利用处理器的资源,存在较多的资源浪费。


技术实现要素:

5.本技术实施例提供了一种运行进程的方法及相关设备,用于提高numa节点中各个处理器核的利用率,减少资源的浪费。
6.第一方面,本技术实施例提供了一种运行进程的方法,该方法应用于计算机系统,计算机系统包括目标numa节点和控制器,控制器获取资源分配信息,资源分配信息用于指示目标numa节点使用多个处理器核对应的计算资源运行多个进程,且在运行每个进程时,多个处理器核中的每个处理器核对应的计算资源均可被使用。控制器根据资源分配信息,在目标numa节点上运行多个进程。
7.针对目标numa节点中的用于运行进程的处理器核的个数,本技术实施例中并不做限定。即该目标numa节点中,上述“多个处理器核”可以为目标numa节点其中的一部分处理器核,也可以为目标numa节点中的全部处理器核,具体此处不做限定。
8.需要说明的是,为了便于描述,本技术实施例中,针对进程运行时所使用的计算资源,以该进程所占用的处理器核的份额来进行量化。例如,若某个进程运行时所使用的计算资源为1.5个处理器核对应的计算资源,则为了便于描述,可以说该进程占用了1.5个处理器核。
9.本技术中,提供了目标numa节点中的运行进程的方法,该运行进程的方法同样可以适用于计算机系统中的其他numa节点,从而达到同样的技术效果。
10.通过上述方式,在numa节点所选定的多个处理器核中,每个进程都可以在上述任意处理器核上运行。因此该numa节点中,不同的进程也可以在同一个处理器核上运行,从而提高了numa节点中各个处理器核的利用率,减少了资源的浪费。另一方面,各个进程只在其所分配的numa节点上运行,从而避免了某个进程出现跨节点访问资源的情况,提高了进程的运行效率。
11.进一步的,在进程的实际运行过程中,进程的资源需求往往会有一定范围内的上下波动。例如,某些进程所占用的处理器核数量可能会超出了该进程在标准运行状态下的资源需求,此时,该进程便可以使用当前numa节点中,其他空闲的处理器核的计算资源来完成运行。又例如,某些进程所占用的处理器核数量低于该进程在标准运行状态下的资源需求,则该进程所释放出来的计算资源也可以被其他进程所使用。因此,本技术中的运行进程的方法,还可以满足各个进程在不同运行状态下的资源需求,进一步提高了计算机设备的资源利用率。
12.基于第一方面,一种可选的实施方式中,多个处理器核可以为目标numa节点中的全部处理器核,即将目标numa节点中的所有处理器核,全部用于运行该目标numa节点中的多个进程,且在运行每个进程时,目标numa节点中的每个处理器核对应的计算资源均可被使用。
13.基于第一方面,一种可选的实施方式中,还可以仅对numa节点中的部分处理器核进行共享,从而其他未被共享的处理器核,则可以用于执行其他的特定进程,则该特定进程拥有独立的处理器核可供使用。具体的,本技术实施例中,可以在该目标numa节点选出特定的若干个处理器核(即第一处理器核),第一处理器核的计算资源与目标numa节点中其他处理器核的计算资源互不共享,而是互相隔离的。其中,本技术中的资源分配信息还用于指示目标numa节点使用第一处理器核来运行特定进程,并且,第一处理器核对应的计算资源仅可被特定进程所使用。因此,这些特定进程在运行的过程中有独立的处理器核(第一处理器核)可供使用,不需要去使用其他处理器核的计算资源,其独立的处理器核的计算资源也不会被其他进程所使用,从而保证了特定进程在运行过程中的资源需求。
14.基于第一方面,一种可选的实施方式中,目标numa节点中的多个进程包括目标进程,在需要运行该目标进程时,控制器根据资源分配信息确定出目标numa节点中,可用于运行目标进程的多个处理器核。进一步的,控制器从多个处理器核中确定出空闲处理器核,其中,这些空闲处理器核中尚有一部分或者全部的计算资源未被使用,则控制器可以在空闲处理器核上运行该目标进程。
15.基于第一方面,一种可选的实施方式中,计算机系统包括多个numa节点,多个numa节点均可以使用本技术中的运行进程的方法。在运行进程之前,控制器需要将各个进程分配到合适的numa节点当中。本技术实施例中,控制器在为各个进程分配numa节点时所采用的分配逻辑是一致的。下面以多个进程其中的第一进程的分配流程为示例进行阐述。
16.控制器在为各个进程分配相应的numa节点的过程中,控制器需要获取多个numa节点中每个numa节点当前的可分配资源信息,可分配资源信息包括第一计算资源和第一内存资源,然后再计算每个numa节点的第一计算资源和第一内存资源之间的比值作为该numa节点的第一比值。numa节点的可配置资源信息包括了该numa节点的计算资源(处理器核数量)和存储资源(内存容量),从而确定当前各个numa节点中还剩余多少资源可用于分配给到各
个进程。
17.控制器还需要获取各个进程的资源需求信息,其中,进程的资源需求信息表示了该进程在运行时所需要占用的计算资源(处理器核数量)和存储资源(内存容量)。当然,在实际运行过程中,进程的资源需求往往会有一定范围内的上下波动,本技术中,以每个进程标准运行状态下的资源需求为准来进行分配资源。控制器获取的各个进程当前的资源需求信息中。此时,控制器便获取了第一进程的资源需求信息,资源需求信息包括第一计算资源需求量和第一内存资源需求量,第一计算资源需求量与第一内存资源需求量之间的比值为第二比值。
18.控制器将多个numa节点对应的第一比值与第一进程的第二比值进行比较差异,然后从多个numa节点中选出差异最小的numa节点作为目标numa节点。换句话说,目标numa节点的第一比值与第一进程的第二比值的差异,是各个numa节点的第一比值与第一进程的第二比值之间的差异最小的一个。
19.通过上述方式,控制器可以按照统一的分配逻辑来将各个进程分配至相应的numa节点当中,且每个进程在分配numa节点时,其对应的资源需求比值与该numa节点的可分配资源占比是最为接近的。因此,在分配了相应的进程之后,对该numa节点的可分配资源占比是影响最小的,从而保证了该numa节点的可适配性。
20.基于第一方面,一种可选的实施方式中,在第一进程分配给到目标numa节点之后,相应的该目标numa节点的可分配资源则会相应的减少,因此,为了将该目标numa节点继续用于后续的进程分配流程,需要对该目标numa节点的可分配资源信息进行更新。目标numa节点更新后的可分配资源信息包括第二计算资源,第二计算资源为第一计算资源与第一计算资源需求量的差值。目标numa节点的可分配资源信息更新过后,还可用于分配给其他进程。而在后续的进程分配的流程中,则以目标numa节点最新的可分配资源信息来进行计算。
21.通过上述方式,在每个进程分配到相应的numa节点之后,及时地对该numa节点的可分配资源信息进行更新,提高了numa节点的可分配资源信息的时效性,便于该numa节点继续参与到后续的进程分配的流程当中。
22.基于第一方面,一种可选的实施方式中,更新后的可分配资源信息包括第二内存资源,第二内存资源为第一内存资源与第一内存资源需求量的差值。
23.基于第一方面,一种可选的实施方式中,多个进程还包括第二进程,控制器将第一进程分配到目标numa节点之后,该目标numa节点还可用于分配其他进程(包括第二进程)。
24.具体的,与前述分配第一进程的过程类似,控制器获取多个numa节点中每个numa节点的可分配资源信息,可分配资源信息包括第二计算资源和第二内存资源,计算第二计算资源和第二内存资源之间的比值作为第三比值。其中,目标numa节点的可分配资源信息为更新后的可分配资源信息。需要说明的是,在经过第一进程分配到目标numa节点之后,有可能下一个就是为第二进程分配numa节点,则此时计算机设备的各个numa节点中,唯有目标numa节点的可分配资源信息是发生变化的,而其他numa节点期间并没有用于分配其他进程,则其他numa节点的可分配资源信息是没有发生变化的,即此时其他numa节点的第一计算资源和第一内存资源,与,第二计算资源和第二内存资源是相同的;另一方面,在经过第一进程分配到目标numa节点之后,有可能接下来是为其他进程(不包括第二进程)分配相应的numa节点,然后才轮到为第二进程分配numa节点。则此时计算机设备的各个numa节点中,
凡是参与了其他进程的资源分配的numa节点,其对应的可分配资源信息是都发生变化的,即此时这些numa节点的第一计算资源和第一内存资源,与,第二计算资源和第二内存资源是不相同的。而只有那些期间没有用于分配其他进程的numa节点,其对应的可分配资源信息才没有发生变化。
25.因此,本技术中,第一计算资源的值和第二计算资源的值可以相同,也可以不相同;第一内存资源的值和第二内存资源的值可以相同,也可以不相同。
26.控制器获取第二进程的资源需求信息,资源需求信息包括第二计算资源需求量和第二内存资源需求量,第二计算资源需求量和第二内存资源需求量之间的比值为第四比值。控制器根据多个numa节点中每个numa节点对应的第三比值和第四比值之间的差异,从多个numa节点中确定差异最小的numa节点为目标numa节点。确定了第二进程对应的目标numa节点之后,则可以将该第二进程分配到该目标numa节点,使得目标numa节点可以用于运行该第二进程。
27.通过上述方式,同一个numa节点,可以用于分配给到多个不同的进程,从而提高了numa节点的资源利用率。
28.基于第一方面,一种可选的实施方式中,第一计算资源需求量表示为m个处理器核,m为包含小数的正数。换句话说,各个进程所需要的处理器核的个数可以为整数或者非整数。而本技术所提供的运行进程的方法中,并不受进程所需要的处理器核的个数是否为整数所影响。
29.第二方面,本技术实施例提供了一种运行进程的方法,该方法应用于计算机系统,计算机系统包括目标非统一内存访问numa节点和控制器,目标numa节点包括多个处理器核,该方法包括:当目标numa节点中,第一进程请求运行时。控制器可以从多个处理器核中确定目标处理器核,目标处理器核包括第一计算资源和第二计算资源,其中,第一计算资源已经用于运行第二进程,而第二计算资源则为空闲资源。则控制器可以使用目标处理器核的第二计算资源来运行第一进程。
30.通过上述方式,对于numa节点中待运行的进程,可以将待运行的进程继续分配到那些已经运行有其他进程的处理器核上来运行。即本技术中,同一个处理器核可以同时运行多个不同的进程,避免了某个处理器核在运行了一个进程之后,其剩余的空闲进程无法被其他进程所使用的情况,从而提高了numa节点中各个处理器核的利用率,减少了资源的浪费。另一方面,各个进程只在其所分配的numa节点上运行,从而避免了某个进程出现跨节点访问资源的情况,提高了进程的运行效率。
31.基于第二方面,一种可选的实施方式中,多个处理器核可以为目标numa节点中的全部处理器核,即将目标numa节点中的所有处理器核,全部用于运行该目标numa节点中的多个进程,其中,目标numa节点中的每个处理器核中对应的计算资源均可用于运行多个进程中的每个进程。
32.基于第二方面,一种可选的实施方式中,可以仅对numa节点中的部分处理器核进行共享,从而其他未被共享的处理器核,则可以用于执行其他的特定进程,则该特定进程拥有独立的处理器核可供使用。具体的,本技术实施例中,可以在该目标numa节点选出特定的若干个处理器核(即第一处理器核),第一处理器核的计算资源与目标numa节点中其他处理器核的计算资源互不共享,而是互相隔离的。其中,本技术中的资源分配信息还用于指示目
标numa节点使用第一处理器核来运行特定进程,并且,第一处理器核对应的计算资源仅可被特定进程所使用。因此,这些特定进程在运行的过程中有独立的处理器核(第一处理器核)可供使用,不需要去使用其他处理器核的计算资源,其独立的处理器核的计算资源也不会被其他进程所使用,从而保证了特定进程在运行过程中的资源需求。
33.第三方面,本技术实施例提供了一种计算机设备,该计算机设备包括:
34.获取单元,用于获取资源分配信息,资源分配信息用于指示目标numa节点使用多个处理器核对应的计算资源运行多个进程,且在运行每个进程时,多个处理器核中的每个处理器核对应的计算资源均可被使用;
35.运行单元,用于根据资源分配信息,在目标numa节点上运行多个进程。
36.基于第三方面,一种可选的实施方式中,多个处理器核为目标numa节点中的全部处理器核。
37.基于第三方面,一种可选的实施方式中,目标numa节点还包括第一处理器核,资源分配信息还用于指示目标numa节点使用第一处理器核运行特定进程,且第一处理器核对应的计算资源仅可被特定进程所使用。
38.基于第三方面,一种可选的实施方式中,多个进程包括目标进程,运行单元具体用于:
39.根据资源分配信息确定多个处理器核;
40.从多个处理器核中确定空闲处理器核;
41.在空闲处理器核上运行目标进程。
42.基于第三方面,一种可选的实施方式中,计算机设备包括多个numa节点,多个进程包括第一进程,计算机设备还包括确定单元;
43.获取单元,还用于获取多个numa节点中每个numa节点的可分配资源信息,可分配资源信息包括第一计算资源和第一内存资源,第一计算资源和第一内存资源之间的比值为第一比值;
44.获取单元,还用于获取第一进程的资源需求信息,资源需求信息包括第一计算资源需求量和第一内存资源需求量,第一计算资源需求量与第一内存资源需求量之间的比值为第二比值;
45.确定单元,用于根据多个numa节点中每个numa节点对应的第一比值和第二比值之间的差异,从多个numa节点中确定差异最小的numa节点为目标numa节点,目标numa节点用于运行第一进程。
46.基于第三方面,一种可选的实施方式中,计算机设备还包括:
47.更新单元,用于根据第一进程的资源需求信息,更新目标numa节点的可分配资源信息,以得到更新后的可分配资源信息,更新后的可分配资源信息包括第二计算资源,第二计算资源为第一计算资源与第一计算资源需求量的差值。
48.基于第三方面,一种可选的实施方式中,更新后的可分配资源信息包括第二内存资源,第二内存资源为第一内存资源与第一内存资源需求量的差值。
49.基于第三方面,一种可选的实施方式中,多个进程还包括第二进程;
50.获取单元,还用于获取多个numa节点中每个numa节点的可分配资源信息,其中,可分配资源信息包括第二计算资源和第二内存资源,第二计算资源和第二内存资源之间的比
值为第三比值,且目标numa节点的可分配资源信息为更新后的可分配资源信息;
51.获取单元,还用于获取第二进程的资源需求信息,资源需求信息包括第二计算资源需求量和第二内存资源需求量,第二计算资源需求量和第二内存资源需求量之间的比值为第四比值;
52.确定单元,用于根据多个numa节点中每个numa节点对应的第三比值和第四比值之间的差异,从多个numa节点中确定差异最小的numa节点为目标numa节点,目标numa节点用于运行第二进程。
53.基于第三方面,一种可选的实施方式中,第一计算资源需求量表示为m个处理器核,m为包含小数的正数。
54.第四方面,本技术实施例提供了一种计算机设备,计算机设备包括目标非统一内存访问numa节点,目标numa节点包括多个处理器核,计算机设备包括:
55.确定单元,用于确定第一进程,第一进程为目标numa节点中待运行的进程;
56.确定单元,还用于从多个处理器核中确定目标处理器核,目标处理器核包括第一计算资源和第二计算资源,第一计算资源用于运行第二进程,第二计算资源为空闲资源;
57.运行单元,用于使用目标处理器核的第二计算资源运行第一进程。
58.基于第四方面,一种可选的实施方式中,其特征在于,多个处理器核为目标numa节点中的全部处理器核。
59.基于第四方面,一种可选的实施方式中,其特征在于,目标numa节点还包括第一处理器核,第一处理器核用于运行特定进程,且第一处理器核对应的计算资源仅可被特定进程所使用。
60.第五方面,本技术实施例提供了一种计算机设备,计算机设备包括目标非统一内存访问numa节点,目标numa节点包括多个处理器;
61.多个处理器,用于为目标numa节点提供计算资源;
62.目标numa节点用于使用多个处理器对应的计算资源运行多个进程,且在运行每个进程时,多个处理器中的每个处理器对应的计算资源均可被使用。
63.第六方面,本技术实施例提供了一种计算机设备,计算机设备包括目标非统一内存访问numa节点和控制器,目标numa节点包括多个处理器;
64.多个处理器,用于为目标numa节点提供计算资源;
65.目标numa节点用于使用多个处理器对应的计算资源运行多个进程,
66.控制器,用于确定第一进程,第一进程为多个进程中待运行的进程;
67.控制器,还用于从多个处理器核中确定目标处理器核,目标处理器核包括第一计算资源和第二计算资源,第一计算资源用于运行第二进程,第二计算资源为空闲资源;
68.控制器,还用于使用目标处理器核的第二计算资源运行第一进程。
69.第七方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述任一方面所述的运行进程的方法。
70.第八方面,本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,当其在计算机上运行时,使得计算机执行上述任一方面所述的运行进程的方法。
71.第九方面,本技术实施例提供了一种芯片系统,该芯片系统包括处理器,用于实现上述各个方面中所涉及的功能,例如,发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存服务器或通信设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
附图说明
72.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
73.图1为本技术实施例提供的一种numa系统100的示意性架构示意图;
74.图2为本技术实施例所提供的运行进程的方法的系统框架图;
75.图3为本技术实施例提供的一种运行进程的流程示意图;
76.图4为本技术实施例中一种进程分配的流程示意图;
77.图5为本技术实施例提供的一种计算机设备的结构示意图;
78.图6为本技术实施例提供的另一种计算机设备的结构示意图。
具体实施方式
79.本技术实施例提供了一种运行进程的方法及相关设备,用于提高numa节点中各个处理器核的利用率,减少资源的浪费。
80.下面结合本发明实施例中的附图对本发明实施例进行描述。本发明的实施方式部分使用的术语仅用于对本发明的具体实施例进行解释,而非旨在限定本发明。本领域普通技术人员可知,随着技术的发展和新场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
81.本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
82.下面首先介绍一下本技术的应用场景,本技术实施例中的运行进程的方法可以应用于基于numa的计算机系统。请参照图1,图1为本技术实施例提供的一种numa系统100的示意性架构示意图。其中,在numa系统100的架构中,可以为多插槽系统100。如图1中示出的那样,numa系统100包括插槽(socket)101a和插槽101b。插槽101a和插槽101b在本文中可被统称为插槽,可以用于安装中央处理器(central processing unit,cpu)。插槽可以通过互联(interconnect)104彼此通信地耦合。示例性的,每个插槽可经由点对点快速路径互连(quick path interconnect,qpi)链路来连接至其他插槽中的每一个。需要说明的是,qpi是一种互连架构,本技术实施例中各个插槽之间的互联还可以通过其他互连架构实现,诸
如其他点对点架构、环架构以及总线架构,这里并不限定。numa系统100中所描绘插槽的数量仅为一种示例,并且本领域技术人员将理解,可存在不同数量的插槽。例如,numa系统100可包括诸如,六个、四个或更少数量的插槽,又或者numa系统100可以包括诸如,十六个、三十二个或更多数量的插槽。
83.插槽可以包括多个节点(node),每个节点有自己的cpu和内存,节点和节点之间通过互联104进行连接和通信,如图1中示出的那样,插槽101a包括节点102a和节点102b,插槽101b包括节点103a和节点103b,每个节点包括一个内存和六个cpu。需要说明的是,numa系统100中所描绘的节点和cpu的数量仅为一种示例,并且本领域技术人员将理解,每个插槽可以包括其他数量的节点,每个节点可以包括其他数量的cpu。
84.上述图1所示出的numa系统,往往应用于配置有多个处理器以及多个存储器的计算机设备。在计算机设备中,每个numa节点中的处理器访问本节点内的存储器所需要的时间,远远比访问其他numa节点上的存储器所花费的时间要少。现有技术中,一般将各个进程绑定到对应的处理器上来运行,从而对各个进程进行隔离和限制。即每个进程只能在其所绑定的处理器上运行,而该进程则无法在本地numa节点中的其他处理器或其他numa节点上的处理器上运行。另一方面,每个处理器也只能被所绑定的进程所使用,而该处理器则无法被本地numa节点中的其他进程或其他numa节点上的进程所使用。然而,大多数进程所需要的处理器核的个数并非整数,例如0.5个、0.8个或1.2个等等,针对这种所需要的处理器核个数非整数的情况,一般会对进程所需要的处理器核个数进行向上取整。例如,某个进程需要0.5个处理器核时,则向该进程分配1个处理器,又例如,某个进程需1.2个处理器核时,则向该进程分配2个处理器。通过这种分配方式,对于处理器而言,在与进程进行绑定后,该处理器的计算资源往往无法得到充分利用。进一步的,一般来说进程往往不会一直处于最高的资源诉求,同时进程在各个不同时间段对资源的诉求有高有底。例如,某个进程在分配时可能需要的处理器核的个数为1.2个,但在实际运行过程中,某些情况下该进程的资源诉求可能比预期的要低,仅需要占用0.8个处理器核。然而该进程已经与2个处理器核进行了绑定,则此时会有1.2(2-0.8=1.2)个逻辑的资源被浪费。所以,这种资源分配模式下,完全没有充分利用已有的资源,且比预期浪费更多的资源。
85.有鉴于此,本技术实施例提供了一种运行进程的方法,可以为各个进程合理地分配到对应的numa节点当中去运行,一方面可以减少进程的运行过程中,出现上述跨节点访问的情况,另一方面,提高了numa节点中各个处理器核的利用率,减少了资源的浪费。
86.为了各个进程能够合理且高效地在本地的numa节点上运行,本技术实施例中,需要在各个进程运行之前,为各个进程分配到合适的numa节点当中,使得各个numa节点中的计算资源(处理器核数量)和存储资源(内存容量)能够满足节点内所有进程运行时的需要,同时,避免为进程分配的计算资源和存储资源过剩,导致资源的浪费。请参阅图2,图2为本技术实施例所提供的运行进程的方法的系统框架图。如图2所示,该系统框架主要包含硬件资源层(处理器核和存储器层)、应用资源管理层、资源划分规则和分配策略技术层以及应用层。其中,具体每个层级的分工如下:
87.硬件资源层:该层是计算机设备中所有处理器核和存储器的集合。具体的,计算机设备中所有处理器核和存储器会划分到各个numa节点中。其中,“numa节点”表示多个处理器核下与存储器最近的距离,即多个处理器核与本地存储器的结合为一个numa节点,这是
计算机设备的硬件资源决定的。在硬件资源固定的情况下,处理器核和存储器固定,节点内的处理器核访问存储器时间最短,访问效率最高。节点与节点间的处理器和存储器可以互相访问,访问时间的长短取决与存储器与处理器间的距离。
88.应用资源管理层:应用资源管理层主要对硬件资源中的处理器核和存储器进行二次划分,即根据“资源划分规则和分配策略技术层”的计算结果确定分配路径,从而编排应用层中各个进程的使用资源。应用资源管理层需要获取各个numa节点当前的可分配资源信息,以及各个进程的资源需求信息,并由资源划分规则和分配策略技术层来计算相应的资源分配原则。
89.资源划分规则和分配策略技术层:为了提升处理器核访问存储器的效率和时间,并且,提高处理器的利用率,而发明出来的各种资源编排策略和资源使用策略。具体的,可以根据各个进程资源需求信息和各个numa节点的可分配资源,来计算最优的资源分配原则,从而为各个进程分配对应的numa节点。
90.应用层:该层中部署有各个业务对应的进程,每个进程的运行都需要消费一定的计算资源和存储资源。
91.接下来,对本技术提出的运行进程的方法进行说明。请参阅图3,图3为本技术实施例提供的一种运行进程的流程示意图,如图3所示,本技术实施例中运行进程的方法包括:
92.301.控制器获取各个numa节点的可配置资源信息;
93.本技术所提供的运行进程的方法,应用于配置有多个处理器核以及多个存储器的计算机设备(例如服务器)。其中,上述多个处理器核以及多个存储器采用numa系统划分为多个numa节点,每个numa节点包括若干个处理器核以及存储器,各个numa节点之间的处理器核数量以及内存容量可以互不相同,具体numa节点中的计算资源(处理器核数量)和存储资源(内存容量)的部署情况,可以根据实际的需要来配置,此处不做限定。
94.进一步的,计算机设备中包括控制器,该控制器可以是计算机设备的操作系统,则如图2所示的应用资源管理层以及资源划分规则和分配策略技术层的功能,可以由计算机设备的控制器来进行执行。
95.本技术实施例中,在运行进程之前,控制器需要将各个进程分配到合适的numa节点当中,使得各个numa节点中的计算资源(处理器核数量)和存储资源(内存容量)能够满足节点内所有进程运行时的需要,同时,避免为进程分配的计算资源和存储资源过剩。而控制器在为各个进程分配相应的numa节点的过程中,需要获取各个numa节点的可配置资源信息。本技术实施例中,numa节点的可配置资源信息包括了该numa节点的计算资源(处理器核数量)和存储资源(内存容量),从而确定当前各个numa节点中还剩余多少资源可用于分配给到各个进程。
96.需要说明的是,为了便于描述,本技术实施例中,针对进程运行时所使用的计算资源,以该进程所占用的处理器核的份额来进行量化。例如,若某个进程运行时所使用的计算资源为1.5个处理器核对应的计算资源,则为了便于描述,可以说该进程占用了1.5个处理器核。
97.示例性的,以计算机设备中存在a、b和c这三个numa节点为例,假设所获取到的各个numa节点的可配置资源信息中,a节点的可配置资源信息为10个处理器核以及100g内存容量,则表示当前该a节点中还剩余10个处理器核以及100g内存容量可用于分配给各个进
程;b节点的可配置资源信息为15个处理器核以及120g内存容量,则表示当前该b节点中还剩余15个处理器核以及120g内存容量可用于分配给各个进程;c节点的可配置资源信息为8个处理器核以及100g内存容量,则表示当前该c节点中还剩余8个处理器核以及100g内存容量可用于分配给各个进程。
98.302.控制器获取各个进程的资源需求信息;
99.进程:某个程序被执行时,该程序就从磁盘上的二进制文件,变成了计算机内存中的数据、寄存器里的值、堆栈中的指令、被打开的文件,以及计算机设备的各个状态信息的一个集合。像这样一个程序运行起来后的计算机设备执行环境的总和,就是进程。
100.对于进程来说,它的静态表现就是程序;而一旦运行起来,它就变成了计算机里的数据和状态的总和,这就是进程的动态表现。
101.而容器就是通过约束和修改进程的动态表现,从而为其创造出一个“边界”,使得该进程在运行时,其所访问的资源、文件、状态,或者配置是受到该容器所约束的。也就是说,容器其实就是一种特殊的进程,每个容器都有自己独立的进程空间,与其他进程之间是相互隔离的。
102.结合上述针对于进程和容器的介绍,本技术实施例中,并不限定进程运行时的动态表现,即本技术所提供的运行进程的方法中的进程可以是以程序的状态存在,也可以是以容器的方式存在,具体此处不做限定。
103.控制器在为各个进程分配相应的numa节点的过程中,还需要获取各个进程的资源需求信息。其中,进程的资源需求信息表示了该进程在运行时所需要占用的计算资源(处理器核数量)和存储资源(内存容量)。当然,在实际运行过程中,进程的资源需求往往会有一定范围内的上下波动,本技术中,以每个进程标准运行状态下的资源需求为准来进行分配资源。
104.示例性的,以计算机设备中存在1号进程、2号进程和3号进程为例,假设所获取到的各个进程的资源需求信息中,1号进程的资源需求信息为1.5个处理器核和10g内存容量,则表示该1号进程在运行时需要消耗1.5个处理器核和10g内存容量;2号进程的资源需求信息为1.8个处理器核和15g内存容量,则表示该2号进程在运行时需要消耗1.8个处理器核和15g内存容量;3号进程的资源需求信息为2个处理器核和20g内存容量,则表示该3号进程在运行时需要消耗2个处理器核和20g内存容量。
105.需要说明的是,本技术实施例中,并不限定步骤301与步骤302之间的时序关系,控制器可以先执行步骤301,然后执行步骤302;也可以先执行步骤302,然后执行步骤301,具体此处不做限定。
106.303.为各个进程分配对应的numa节点;
107.本技术实施例中,在获取到各个numa节点的可配置资源信息以及各个进程的资源需求信息之后,便可以将进程分配到各个numa节点中。从理论上来说,只要numa节点的可配置资源满足进程的资源需求,便可以将该进程分配到该numa节点当中。然而,在实际应用中,计算机设备中的进程数量较多,因此需要对各个进程进行优先级排序,按照优先级的顺序来逐个分配numa节点。另一方面,各个numa节点的可配置资源信息不尽相同,且各个进程的资源需求也互有差异,例如,某个numa节点的可配置资源信息为6个处理器核和8g内存容量,若此时将处理器核需求量较大,内存需求量较小的进程分配到该numa节点中的话,很有
可能出现该numa节点的处理器核已经全部被占用,但该numa节点的内存容量缺过剩的情况。因此,本技术中将按照一定的分配标准来将各个进程分配到各个numa节点,避免因为分配不合理导致计算资源和存储资源的浪费。
108.下面,对本技术实施例中进程分配到numa节点的分配逻辑进行介绍。请参阅图4,图4为本技术实施例中一种进程分配的流程示意图,如图4所示,本技术实施例中进程分配的流程包括:
109.3031.确定进程的优先级;
110.由于在实际应用中,计算机设备中的进程数量较多,因此需要对各个进程进行优先级排序,按照优先级的顺序来逐个分配numa节点。具体的,本技术中,可以采用进程的内存需求量的大小来确定进程的优先级,内存需求量越大,其对应的优先级越高;也可以采用进程的处理器核需求量的大小来确定进程的优先级,处理器核需求量越大,其对应的优先级越高;还可以按照进程的业务类型,提前确定优先级关系表,当需要为该进程分配numa节点时,则从优先级关系表中查找确定该进程的优先级。应理解,在实际应用中,还可以根据实际需要来制定进程优先级的确定标准,具体此处不做限定。
111.在后续描述中,以为第一进程和第二进程分配目标numa节点为例,进程阐述,其中,第一进程的优先级高于第二优先级。
112.3032.计算多个numa节点中的计算资源与存储资源的比值;
113.经过步骤301,控制器获取了多个numa节点中每个numa节点当前的可分配资源信息,可分配资源信息包括第一计算资源和第一内存资源,进一步的,再计算每个numa节点的第一计算资源和第一内存资源之间的比值作为该numa节点的第一比值。
114.示例性的,假设某个numa节点的第一计算资源为10个处理器核,第一内存资源为100g内存容量,则当前该numa节点的第一比值为10:100=0.1;若某个numa节点的第一计算资源为20个处理器核,第一内存资源为100g内存容量,则当前该numa节点的第一比值为20:100=0.2。
115.3033.计算进程所需求的计算资源与存储资源的比值;
116.经过步骤301,控制器获取了各个进程当前的资源需求信息,资源需求信息包括第一计算资源需求量和第一内存资源需求量,进一步的,再计算每个进程的第一计算资源需求量与第一内存资源需求量的比值作为第二比值。
117.由于需要先为第一进程相应的numa节点,则需要获取第一进程对应的第二比值。
118.示例性的,假设第一进程的第一资源需求量为2.5个处理器核以及25g内存,则第一进程的第二比值为2.5:25=0.1;第二进程的第一资源需求量为2个处理器核以及10g内存,则第一进程的第二比值为2:10=0.2。
119.需要说明的是,本技术实施例中,并不限定步骤3032与步骤3033之间的时序关系,控制器可以先执行步骤3032,然后执行步骤3033;也可以先执行步骤3033,然后执行步骤402,具体此处不做限定。
120.3034.将各个进程分配到对应的numa节点;
121.由于第一进程的优先级高于第二进程,则优先为第一进程分配至目标numa节点。具体的,对于第一进程所分配的目标numa节点,目标numa节点的第一计算资源应当满足于第一进程的第一计算资源需求量,目标numa节点的第一内存资源应当满足于第一进程的第
一内存资源需求量。进一步的,由于经过步骤402后,控制器已经获取到多个numa节点的第一比值,则将多个numa节点对应的第一比值与第一进程的第二比值进行比较差异,然后从多个numa节点中选出差异最小的numa节点作为目标numa节点,换句话说,目标numa节点的第一比值与第一进程的第二比值的差异,是各个numa节点的第一比值与第一进程的第二比值之间的差异最小的一个。
122.示例性的,假设计算机设备存在a、b和c这三个numa节点,a节点的第一比值为0.2,b节点的第一比值为0.15,c节点的第一比值为0.25,而第一进程的第二比值0.1。经过比较,则b节点的第一比值与第一进程的第二比值差异(即|0.1-0.15|=0.05)最为接近,即可以确定b节点为第一进程所对应的目标numa节点。
123.在确定了第一进程对应的目标numa节点之后,则可以将该第一进程分配到该目标numa节点,使得目标numa节点可以用于运行该第一进程。
124.在第一进程分配给到目标numa节点之后,相应的该目标numa节点的可分配资源则会相应的减少,因此,为了将该目标numa节点继续用于后续的进程分配流程,需要对该目标numa节点的可分配资源信息进行更新。目标numa节点更新后的可分配资源信息包括第二计算资源和第二内存资源,第二计算资源为第一计算资源与第一计算资源需求量的差值,第二内存资源为第一内存资源与第一内存资源需求量的差值。
125.目标numa节点的可分配资源信息更新过后,还可用于分配给其他进程(包括第二进程)。而在后续的进程分配的流程中,则以目标numa节点最新的可分配资源信息来进行计算。由于第一进程的优先级高于第二进程,则需要在第一进程进行了资源分配之后,才对第二进程进行分配相应的numa节点。本技术中,以第二进程和第一进程相同,同样分配至目标numa节点为例,进行说明。
126.具体的,与前述分配第一进程的过程类似,控制器获取多个numa节点中每个numa节点的可分配资源信息,可分配资源信息包括第二计算资源和第二内存资源,计算第二计算资源和第二内存资源之间的比值作为第三比值。其中,目标numa节点的可分配资源信息为更新后的可分配资源信息。需要说明的是,在经过第一进程分配到目标numa节点之后,有可能下一个就是为第二进程分配numa节点,则此时计算机设备的各个numa节点中,唯有目标numa节点的可分配资源信息是发生变化的,而其他numa节点期间并没有用于分配其他进程,则其他numa节点的可分配资源信息是没有发生变化的,即此时其他numa节点的第一计算资源和第一内存资源,与,第二计算资源和第二内存资源是相同的;另一方面,在经过第一进程分配到目标numa节点之后,有可能接下来是为其他进程(不包括第二进程)分配相应的numa节点,然后才轮到为第二进程分配numa节点。则此时计算机设备的各个numa节点中,凡是参与了其他进程的资源分配的numa节点,其对应的可分配资源信息是都发生变化的,即此时这些numa节点的第一计算资源和第一内存资源,与,第二计算资源和第二内存资源是不相同的。而只有那些期间没有用于分配其他进程的numa节点,其对应的可分配资源信息才没有发生变化。
127.因此,本技术中,第一计算资源的值和第二计算资源的值可以相同,也可以不相同;第一内存资源的值和第二内存资源的值可以相同,也可以不相同。
128.控制器获取第二进程的资源需求信息,资源需求信息包括第二计算资源需求量和第二内存资源需求量,第二计算资源需求量和第二内存资源需求量之间的比值为第四比
值。控制器根据多个numa节点中每个numa节点对应的第三比值和第四比值之间的差异,从多个numa节点中确定差异最小的numa节点为目标numa节点。确定了第二进程对应的目标numa节点之后,则可以将该第二进程分配到该目标numa节点,使得目标numa节点可以用于运行该第二进程。
129.应理解,上述步骤3031至步骤3034描述了本技术中的进程分配的流程,该进程分配的流程适用于任意进程。若后续进程运行的过程中,计算机设备新增了其他的进程任务,那么同样也可以使用3031至步骤3034所描述的进程分配的流程来对该新增的进程进行分配,具体此处不再赘述。
130.本技术实施例中,计算机设备中的各个进程,都可以通过上述步骤301至步骤303所示的进程分配流程,将各个进程分配到对应的numa节点中去运行。关于其他进程分配至各自的numa节点的流程,具体请参阅步骤301至步骤303的描述,此处不再进行赘述。
131.304.将numa节点中的计算资源共享给节点中的各个进程;
132.在对各个进程分配到相应的numa节点之后,控制器会获取到资源分配信息,资源分配信息用于指示numa节点在运行节点内的每个进程时,numa节点中的各个处理器核对应的计算资源均可被使用。从而,控制器根据该资源分配信息,在各个numa节点上运行相应的进程。
133.以分配至目标numa节点中的多个进程包括目标进程为例,在需要运行该目标进程时,控制器根据资源分配信息确定出目标numa节点中,可用于运行目标进程的多个处理器核。进一步的,控制器从多个处理器核中确定出空闲处理器核,其中,这些空闲处理器核中尚有一部分或者全部的计算资源未被使用,则控制器可以在空闲处理器核上运行该目标进程。
134.本技术实施例中,各个进程不再绑定到某个固定的处理器核上运行,而是将numa节点中的计算资源共享给节点中的各个进程,则各个进程可以使用所分配的numa节点的任意处理器核的计算资源来完成运行,因此,numa节点中,不同的进程也可以在同一个处理器核上运行,从而提高了numa节点中各个处理器核的利用率,减少了资源的浪费。另一方面,各个进程只在其所分配的numa节点上运行,从而避免了某个进程出现跨节点访问资源的情况,提高了进程的运行效率。
135.换句话说,本技术实施例中,在进程运行的过程中,同一个处理器核是可以被多个进程所使用的。以目标numa节点中,第一进程请求运行为例,控制器可以从多个处理器核中确定目标处理器核,目标处理器核包括第一计算资源和第二计算资源,其中,第一计算资源已经用于运行第二进程,而第二计算资源则为空闲资源。则控制器可以使用目标处理器核的第二计算资源来运行第一进程。通过上述方式,对于numa节点中待运行的进程,可以将待运行的进程继续分配到那些已经运行有其他进程的处理器核上来运行。即本技术中,同一个处理器核可以同时运行多个不同的进程,避免了某个处理器核在运行了一个进程之后,其剩余的空闲进程无法被其他进程所使用的情况,从而提高了numa节点中各个处理器核的利用率,减少了资源的浪费。
136.进一步的,在进程的实际运行过程中,进程的资源需求往往会有一定范围内的上下波动。例如,某些进程所占用的处理器核数量可能会超出了该进程在标准运行状态下的资源需求,此时,该进程便可以使用当前numa节点中,其他空闲的处理器核的计算资源来完
成运行。又例如,某些进程所占用的处理器核数量低于该进程在标准运行状态下的资源需求,则该进程所释放出来的计算资源也可以被其他进程所使用。因此,本技术中的运行进程的方法,还可以满足各个进程在不同运行状态下的资源需求,进一步提高了计算机设备的资源利用率。
137.进一步的,在实际应用中,还可以仅对numa节点中的部分处理器核进行共享,从而其他未被共享的处理器核,则可以用于执行其他的特定进程,则该特定进程拥有独立的处理器核可供使用。具体的,本技术实施例中,可以在该目标numa节点选出特定的若干个处理器核(即第一处理器核),第一处理器核的计算资源与目标numa节点中其他处理器核的计算资源互不共享,而是互相隔离的。其中,本技术中的资源分配信息还用于指示目标numa节点使用第一处理器核来运行特定进程,并且,第一处理器核对应的计算资源仅可被特定进程所使用。因此,这些特定进程在运行的过程中有独立的处理器核(第一处理器核)可供使用,不需要去使用其他处理器核的计算资源,其独立的处理器核的计算资源也不会被其他进程所使用,从而保证了特定进程在运行过程中的资源需求。
138.在图2至图4所对应的实施例的基础上,为了更好的实施本技术实施例的上述方案,下面还提供用于实施上述方案的相关设备。具体请参阅图5,图5为本技术实施例提供的一种计算机设备的结构示意图,计算机设备包括:
139.获取单元501,用于获取资源分配信息,所述资源分配信息用于指示目标numa节点使用多个处理器核对应的计算资源运行多个进程,且在运行每个进程时,多个处理器核中的每个处理器核对应的计算资源均可被使用;
140.运行单元502,用于根据资源分配信息,在目标numa节点上运行多个进程。
141.在一种可能的设计中,多个处理器核为目标numa节点中的全部处理器核。
142.在一种可能的设计中,所述目标numa节点还包括第一处理器核,所述资源分配信息还用于指示所述目标numa节点使用所述第一处理器核运行特定进程,且所述第一处理器核对应的计算资源仅可被所述特定进程所使用。
143.在一种可能的设计中,所述多个进程包括目标进程,所述运行单元502具体用于:
144.根据所述资源分配信息确定所述多个处理器核;从所述多个处理器核中确定空闲处理器核;在所述空闲处理器核上运行所述目标进程。
145.在一种可能的设计中,计算机设备包括多个numa节点,多个进程包括第一进程,计算机设备还包括确定单元503;
146.获取单元501,还用于获取多个numa节点中每个numa节点的可分配资源信息,可分配资源信息包括第一计算资源和第一内存资源,第一计算资源和第一内存资源之间的比值为第一比值;
147.获取单元501,还用于获取第一进程的资源需求信息,资源需求信息包括第一计算资源需求量和第一内存资源需求量,第一计算资源需求量与第一内存资源需求量之间的比值为第二比值;
148.确定单元503,用于根据多个numa节点中每个numa节点对应的第一比值和第二比值之间的差异,从多个numa节点中确定差异最小的numa节点为目标numa节点,目标numa节点用于运行第一进程。
149.在一种可能的设计中,计算机设备还包括:
150.更新单元504,用于根据第一进程的资源需求信息,更新目标numa节点的可分配资源信息,以得到更新后的可分配资源信息,更新后的可分配资源信息包括第二计算资源,第二计算资源为第一计算资源与第一计算资源需求量的差值。
151.在一种可能的设计中,更新后的可分配资源信息包括第二内存资源,第二内存资源为第一内存资源与第一内存资源需求量的差值。
152.在一种可能的设计中,多个进程还包括第二进程;
153.获取单元501,还用于获取多个numa节点中每个numa节点的可分配资源信息,其中,可分配资源信息包括第二计算资源和第二内存资源,第二计算资源和第二内存资源之间的比值为第三比值,且目标numa节点的可分配资源信息为更新后的可分配资源信息;
154.获取单元501,还用于获取第二进程的资源需求信息,资源需求信息包括第二计算资源需求量和第二内存资源需求量,第二计算资源需求量和第二内存资源需求量之间的比值为第四比值;
155.确定单元503,用于根据多个numa节点中每个numa节点对应的第三比值和第四比值之间的差异,从多个numa节点中确定差异最小的numa节点为目标numa节点,目标numa节点用于运行第二进程。
156.在一种可能的设计中,第一计算资源需求量表示为m个处理器核,m为包含小数的正数。
157.需要说明的是,计算机设备中各模块/单元之间的信息交互、执行过程等内容,与本技术中图2至图4对应的各个方法实施例基于同一构思,具体内容可参见本技术前述所示的方法实施例中的叙述,此处不再赘述。
158.本技术实施例还提供了一种计算机设备,请参阅图6,图6是本技术实施例提供的计算机设备一种结构示意图,计算机设备600上可以部署有图5对应实施例中所描述的计算机,用于实现图3或图4对应实施例中控制器的功能,具体的,计算机设备600由一个或多个服务器实现,计算机设备600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,cpu)622(例如,一个或一个以上处理器)和存储器632,一个或一个以上存储应用程序642或数据644的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器632和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对计算机设备中的一系列指令操作。更进一步地,中央处理器622可以设置为与存储介质630通信,在计算机设备600上执行存储介质630中的一系列指令操作。
159.计算机设备600还可以包括一个或一个以上电源626,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口658,和/或,一个或一个以上操作系统641,例如windows server
tm
,mac os x
tm
,unix
tm
,linux
tm
,freebsd
tm
等等。
160.本技术实施例中还提供一种包括计算机程序产品,当其在计算机上运行时,使得计算机执行如前述图3或图4所示实施例描述的方法中控制器所执行的步骤。
161.本技术实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有用于进行信号处理的程序,当其在计算机上运行时,使得计算机执行如前述图3或图4所示实施例描述的方法中控制器所执行的步骤。
162.所另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分
离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本技术提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
163.通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本技术可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用cpu、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本技术而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、u盘、移动硬盘、rom、ram、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本技术各个实施例所述的方法。
164.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
165.所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献