用于节点装置基于GPU的并行处理的编译制造方法及图纸

技术编号:17441880 阅读:49 留言:0更新日期:2018-03-10 14:32
本申请涉及用于节点装置基于GPU的并行处理的编译。一种设备可包含处理器以及用以存储指令的存储装置,所述指令致使所述处理器执行包含以下各项的操作:响应于节点装置的GPU可用的确定,确定任务例程是否可经编译以产生用于由所述GPU执行的GPU任务例程,以致使所述任务例程的任务的多个实例至少部分地并行执行而其间不具有相依性;以及响应于所述任务例程能够经编译以产生所述GPU任务例程的确定:采用转换规则以将所述任务例程转换为所述GPU任务例程;编译所述GPU任务例程以用于由所述GPU执行;以及将所述任务关于数据集分区的执行指派于所述节点装置以实现所述多个实例关于所述数据集分区由所述GPU的执行。

【技术实现步骤摘要】
用于节点装置基于GPU的并行处理的编译相关申请的交叉参考本申请案依据35U.S.C.§119(e)要求2016年2月1日申请的第62/289,484号美国临时申请案、2016年8月25日申请的第62/379,512号美国临时申请案以及2016年9月14日申请的第62/394,411号美国临时申请案的优先权,以上申请案中的每一者的全文以引用的方式并入本文中。本申请案是2017年2月1日与此同时申请的第15/422,154号美国专利申请案的接续案且依据35U.S.C.§120要求所述美国专利申请案的优先权,所述美国专利申请案的全文以引用的方式并入本文中。
本专利技术涉及对大数据集的分析,且特定来说涉及跨越多个节点装置并行地对大数据集的分析。
技术介绍
使用许多节点装置的网格以分布式方式执行大数据集(例如,通常被称为“大数据”)的分析已经变得越来越常见,其中至少部分地跨越所述节点装置中的多个选定节点装置并行地执行分析例程的任务。在操作这些网格时,在将分析例程的任务指派到节点装置中常常存在竞争的目标,包含尽可能实现每一节点装置的处理资源的完全且不间断使用的目标,以及使每一节点装置的处理和存储资源以及所述网格的网络带宽资源的使用更有效的目标。通过使多个分析例程的任务由网格的节点装置同时执行而共享网格资源的惯例使得解决这些竞争目标的复杂性增加。指派任务的传统方法是将待执行的下一任务简单地指派给作为将具有可用处理资源的下一节点装置的任何一个节点装置。然而,此传统方法表示一种允许存储和网络带宽资源使用中的相当大的低效率的决策。
技术实现思路

技术实现思路
并不希望仅识别所描述主题的关键特征或基本特征,也并不希望单独用于确定所描述主题的范围。主题应参考此专利的整个说明书的适当部分、任何或所有图式以及每一权利要求来理解。一种设备可包含处理器以及用以存储指令的存储装置,所述指令在由所述处理器执行时致使所述处理器针对多个节点装置中的每一节点装置导出第一任务关于第一数据集的执行的指派,其中:所述第一数据集可划分为多个分区;所述多个节点装置中的第一节点装置经指派于关于所述第一数据集的所述多个分区中的第一分区执行所述第一任务;且所述多个节点装置中的第二节点装置经指派于关于所述第一数据集的所述多个分区中的第二分区执行所述第一任务。可致使所述处理器发射所述第一任务关于所述第一分区的执行对所述第一节点装置的指派的指示,以致使所述第一任务关于所述第一分区由所述第一节点装置执行且致使所述第一分区的至少一些在所述第一节点装置的易失性存储装置内的存储;发射所述第一任务关于所述第二分区的执行对所述第二节点装置的指派的指示,以致使所述第一任务关于所述第二分区由所述第二节点装置执行且致使所述第二分区的至少一些在所述第二节点装置的易失性存储装置内的存储;从所述第一节点装置接收所述第一任务关于所述第一分区由所述第一节点装置执行的完成的指示以使得所述第一节点装置可用于指派于执行另一任务;在接收到所述第一任务关于所述第一分区由所述第一节点装置执行的完成的指示之后延迟所述第二分区上的第二任务的执行对所述第一节点装置的指派多达预定时间周期,而不管将对所述第二分区执行的所述第二任务的就绪,且不管由于第一任务关于所述第一分区的执行的完成所致的所述第一节点的可用性;以及确定是否在所述预定时间周期内从所述第二节点装置接收到所述第一任务关于所述第二分区由所述第二节点装置的执行完成以使得所述第二节点装置可用于指派于执行另一任务的指示。响应于在所述预定时间周期内所述第一任务关于所述第二分区由所述第二节点装置完成的指示,可致使处理器将所述第二任务在第二分区上的执行指派于所述第二节点装置以实现对所述第二节点装置的易失性存储装置内的第二分区的至少一些的存取;以及发射所述第二任务在所述第二分区上的执行对所述第二节点装置的指派的指示以避免所述第一节点装置对所述第二分区的检索。响应于在所述预定时间周期内未接收到所述第一任务关于所述第二分区由所述第二节点装置完成的指示,可致使所述处理器将所述第二任务在所述第二分区上的执行指派于所述第一节点装置;以及发射所述第二任务在所述第二分区上的执行对所述第一节点装置的指派的指示以致使所述第一节点装置对所述第二分区的检索。可致使所述处理器执行包含如下的操作:从在对所述多个节点装置中的节点装置的执行所述第一任务的指派的发射与从所述节点装置接收到所述第一任务的执行完成的指示之间的时间量的至少一个测量值导出所述预定时间周期。可致使所述处理器执行包含如下的操作:确定所述多个节点装置中可用于执行所述第一任务的节点装置的数量;以及基于所述节点装置的数量以及描述所述第一数据集经组织的方式的元数据而导出所述第一数据集成为所述第一数据集的所述多个分区的划分。所述第一数据集可存储于一或多个存储装置内;可致使所述处理器执行包含从所述一或多个存储装置检索所述元数据的操作;所述第一任务关于所述第一分区的执行对所述第一节点装置的指派的指示的发射可致使所述第一节点装置从所述一或多个存储装置检索所述第一分区;且所述第一任务关于所述第二分区的执行对所述第二节点装置的指派的指示的发射可致使所述第二节点装置从所述一或多个存储装置检索所述第二分区。所述设备可包含耦合到所述处理器的至少一个易失性存储组件,且可致使所述处理器执行包含如下的操作:为所述处理器指派所述第一任务关于所述第一数据集的所述多个分区中的第三分区的执行;将所述第三分区的至少一些存储于所述至少一个易失性存储组件内;以及关于所述第三分区执行所述第一任务。可致使所述处理器执行包含如下的操作:针对所述多个节点装置的子组中的每一节点装置,导出指派以从一或多个存储装置检索且存储所述第一数据集的所述多个分区中的一者以实现所述子组中的每一节点装置用作备份节点装置以响应于所述多个节点装置中的所述节点装置中的一者的失效,其中:所述多个节点装置中的第三节点装置经指派于关于所述第一数据集的所述多个分区中的第三分区执行所述第一任务;且所述第三节点经指派于从所述一或多个存储装置检索且存储所述第二分区以实现所述第三节点装置用作备份节点装置以响应于所述第二节点装置的失效。可致使所述处理器在所述预定时间周期期间从所述第三节点装置接收所述第一任务关于所述第三分区由所述第三节点装置执行的完成的指示,以使得所述第三节点装置可用于指派于执行另一任务。响应于在所述预定时间周期期间接收到所述第一任务关于所述第三分区由所述第三节点装置完成的指示,且响应于在所述预定时间周期内未接收到所述第一任务关于所述第二分区由所述第二节点装置完成的指示,可致使所述处理器将所述第二任务在所述第二分区上的执行指派于所述第三节点装置;以及发射所述第二任务在所述第二分区上的执行对所述第三节点装置的指派的指示。所述第一任务关于所述第一和第二分区的执行可包含:使用所述第一和第二分区作为对所述第一任务的执行的输入以产生第二数据集的对应分区;且所述第二任务在所述第二分区上的执行可包含使用所述第二分区作为对所述第二任务的执行的输入以产生第三数据集的对应分区。所述第一任务关于所述第一分区的执行对所述第一节点装置的指派的指示的发射可致使所述第一节点装置:从一或多个存储装置检索所述第一分区;使用存储于所述第一节点本文档来自技高网...
用于节点装置基于GPU的并行处理的编译

【技术保护点】
一种设备,其包括处理器以及用以存储指令的存储装置,所述指令在由所述处理器执行时致使所述处理器执行包括以下各项的操作:分析多个节点装置中的至少一个节点装置的资源的当前状态以确定所述至少一个节点装置的至少一个图形处理单元GPU经指派于执行分析例程的第一任务的可用性,其中:所述多个节点装置的操作经协调以至少部分并行地执行分析例程的任务;所述分析例程经产生以用于由所述至少一个节点的至少一个中央处理单元CPU执行;且所述至少一个节点装置的所述资源是选自由所述至少一个CPU、所述至少一个GPU以及所述至少一个节点装置的至少一个存储装置内的存储空间组成的群组;响应于所述至少一个GPU可用于经指派于执行所述分析例程的所述第一任务的确定:分析所述分析例程的第一任务例程以确定所述第一任务例程是否能够经编译以产生用于由所述至少一个GPU执行的GPU任务例程以致使所述至少一个GPU至少部分并行地执行所述分析例程的所述第一任务的多个实例,而所述第一任务的所述多个实例的输入和输出之间不具有相依性,其中:所述第一任务例程经产生以用于由所述至少一个CPU执行以执行所述分析例程的所述第一任务;且所述第一任务例程是否能够经编译以产生所述GPU任务例程的所述确定包括所述第一任务例程是否包含阻止所述编译产生所述GPU任务例程的指令的确定以及所述第一任务例程的输入和输出是否经界定为不需要所述相依性的确定;且响应于所述第一任务例程能够经编译以产生所述GPU任务例程的确定:将数据集的多个数据集分区中的数据集分区指派于所述至少一个节点装置以实现由所述至少一个GPU对所述数据集分区的存取;采用转换规则以将所述第一任务例程的至少一个指令转换为所述GPU任务例程的至少一个对应指令;编译所述GPU任务例程的所述至少一个对应指令以用于由所述至少一个GPU执行;以及将所述分析例程的所述第一任务关于所述数据集分区的执行指派于所述至少一个节点装置以实现所述第一任务的所述多个实例关于所述数据集分区由所述至少一个GPU的执行。...

【技术特征摘要】
2016.08.25 US 62/379,512;2016.09.14 US 62/394,411;1.一种设备,其包括处理器以及用以存储指令的存储装置,所述指令在由所述处理器执行时致使所述处理器执行包括以下各项的操作:分析多个节点装置中的至少一个节点装置的资源的当前状态以确定所述至少一个节点装置的至少一个图形处理单元GPU经指派于执行分析例程的第一任务的可用性,其中:所述多个节点装置的操作经协调以至少部分并行地执行分析例程的任务;所述分析例程经产生以用于由所述至少一个节点的至少一个中央处理单元CPU执行;且所述至少一个节点装置的所述资源是选自由所述至少一个CPU、所述至少一个GPU以及所述至少一个节点装置的至少一个存储装置内的存储空间组成的群组;响应于所述至少一个GPU可用于经指派于执行所述分析例程的所述第一任务的确定:分析所述分析例程的第一任务例程以确定所述第一任务例程是否能够经编译以产生用于由所述至少一个GPU执行的GPU任务例程以致使所述至少一个GPU至少部分并行地执行所述分析例程的所述第一任务的多个实例,而所述第一任务的所述多个实例的输入和输出之间不具有相依性,其中:所述第一任务例程经产生以用于由所述至少一个CPU执行以执行所述分析例程的所述第一任务;且所述第一任务例程是否能够经编译以产生所述GPU任务例程的所述确定包括所述第一任务例程是否包含阻止所述编译产生所述GPU任务例程的指令的确定以及所述第一任务例程的输入和输出是否经界定为不需要所述相依性的确定;且响应于所述第一任务例程能够经编译以产生所述GPU任务例程的确定:将数据集的多个数据集分区中的数据集分区指派于所述至少一个节点装置以实现由所述至少一个GPU对所述数据集分区的存取;采用转换规则以将所述第一任务例程的至少一个指令转换为所述GPU任务例程的至少一个对应指令;编译所述GPU任务例程的所述至少一个对应指令以用于由所述至少一个GPU执行;以及将所述分析例程的所述第一任务关于所述数据集分区的执行指派于所述至少一个节点装置以实现所述第一任务的所述多个实例关于所述数据集分区由所述至少一个GPU的执行。2.根据权利要求1所述的设备,其中为了确定所述第一任务例程是否包含阻止所述编译产生所述GPU任务例程的指令,致使所述处理器进行以下操作:确定所述第一任务例程的所述指令是否包含在无法转换为能够由所述至少一个GPU执行的至少一个指令的指令集中;以及响应于所述第一任务例程的所述指令不包含在所述指令集中的确定,确定所述第一任务例程的所述指令是否在所述第一任务例程中以阻止转换为能够由所述至少一个GPU执行的至少一个指令的方式使用。3.根据权利要求1所述的设备,其中为了将所述第一任务例程的所述至少一个指令转换为所述GPU任务例程的所述至少一个对应指令,致使所述处理器根据所述转换规则将所述第一任务例程的所述至少一个指令从第一编程语言转换为第二编程语言中的所述至少一个对应指令。4.根据权利要求1所述的设备,其中:所述至少一个节点装置的所述至少一个存储装置包括以通信方式耦合到所述至少一个CPU的第一易失性存储装置以及以通信方式耦合到所述至少一个GPU的第二易失性存储装置;将所述数据集分区指派于所述至少一个节点装置以实现所述数据集分区由所述至少一个GPU的存取包括致使将所述数据集分区存储于所述第二易失性存储装置内;且响应于所述至少一个GPU不可用于经指派于执行所述分析例程的所述第一任务的确定,致使所述处理器执行包括以下各项的操作:制止分析所述第一任务例程以确定所述第一任务例程是否能够经编译以产生所述GPU任务例程;将所述数据集分区指派于所述至少一个节点装置以致使所述数据集分区存储于所述第一易失性存储装置内以实现所述数据集分区由所述至少一个CPU的存取;编译所述第一任务例程以用于由所述至少一个CPU执行;以及将所述分析例程的所述第一任务关于所述数据集分区的所述执行指派于所述至少一个节点装置以实现所述第一任务关于所述数据集分区由所述至少一个CPU的执行。5.根据权利要求1所述的设备,其中:所述设备包括协调所述多个节点装置的所述操作的协调装置;致使所述处理器从所述多个节点装置中的每一节点装置重复接收对所述当前状态的更新;且为了分析所述当前状态以确定所述至少一个节点装置的所述至少一个GPU的可用性,致使所述处理器识别所述多个节点装置中并入有由所述当前状态指示为可用的GPU的节点装置。6.根据权利要求5所述的设备,其中为了将所述数据集的所述数据集分区指派于所述至少一个节点装置,致使所述处理器执行包括以下各项的操作:分析指示所述数据集的结构特征的元数据以识别所述数据集能够划分成所述多个数据集分区的方式中的限制,其中所述限制选自由所述数据集内的数据的最小原子单元的指示以及分割方案的规范组成的群组;以及至少部分地基于所述限制而导出所述数据集成为所述多个数据集分区的划分。7.根据权利要求6所述的设备,其中致使所述处理器执行包括以下各项的操作:从所述数据集存储于的至少一个存储装置检索所述元数据;以及发射所述数据集分区对所述至少一个节点装置或所述至少一个存储装置的所述指派的指示以致使所述数据集分区从所述至少一个存储装置发射到所述至少一个节点装置。8.根据权利要求1所述的设备,其中:所述设备包括所述至少一个节点装置中的节点装置;所述节点装置包括所述至少一个GPU中的GPU;所述处理器包括所述至少一个CPU中的CPU;且为了分析所述当前状态以确定所述至少一个节点装置的所述至少一个GPU的可用性,致使所述CPU确定所述节点装置的所述GPU是否由所述当前状态指示为可用的。9.根据权利要求1所述的设备,其中致使所述处理器执行包括以下各项的操作:分析所述分析例程的第二任务例程以确定所述第二任务例程是否能够经编译以产生用于由所述至少一个GPU执行的另一GPU任务例程以致使所述至少一个GPU至少部分并行地执行所述分析例程的所述第二任务的多个实例,而所述第二任务的所述多个实例的输入和输出之间不具有相依性,其中所述第二任务例程经产生以用于由所述至少一个CPU执行以执行所述分析例程的第二任务;以及响应于所述第二任务例程不能够经编译以产生所述另一GPU任务例程的确定:编译所述第二任务例程以用于由所述至少一个CPU执行;以及将所述分析例程的所述第二任务关于所述数据集分区的执行指派于所述至少一个节点装置以实现所述第二任务关于所述数据集分区由所述至少一个CPU的执行。10.根据权利要求1所述的设备,其中所述转换规则选自由以下各项组成的群组:在存在于所述第一任务例程内的情况下各自阻止所述第一任务例程的编译产生所述GPU任务例程的指令集的规范;在存在于所述第一任务例程内的情况下各自将不阻止所述第一任务例程的编译产生所述GPU任务例程的指令集的规范;在阻止所述第一任务例程的编译产生所述GPU任务例程的指令的使用方式发生于所述第一任务例程内的情况下所述指令的所述使用方式的规范,其中所述指令在所述第一任务例程内的存在原本不阻止所述第一任务例程的编译产生所述GPU任务例程;用以将所述第一任务例程中将由所述至少一个CPU在循环中执行的指令转换为所述GPU任务例程的将由所述至少一个GPU在比所述循环少的迭代的对应循环中并行执行的对应指令的程序的规范;用以将所述第一任务例程中将由所述至少一个CPU在循环中执行的指令转换为所述GPU任务例程的将由所述至少一个GPU并行执行且不在循环中的对应指令的程序的规范;以及用以将所述第一任务例程中界定包括将在所述第一任务例程由所述至少一个CPU的执行期间循序存取的条目的数据结构的指令转换为所述GPU任务例程的界定包括将在所述GPU任务例程由所述至少一个GPU的执行期间并行存取的条目的对应数据结构的对应指令的程序的规范。11.一种有形地体现于非暂时性机器可读存储媒体中的计算机程序产品,所述计算机程序产品包含可操作以致使处理器执行包括以下各项的操作的指令:分析多个节点装置中的至少一个节点装置的资源的当前状态以确定所述至少一个节点装置的至少一个图形处理单元GPU经指派于执行分析例程的第一任务的可用性,其中:所述多个节点装置的操作经协调以至少部分并行地执行所述分析例程的任务;所述分析例程经产生以用于由所述至少一个节点的至少一个中央处理单元CPU执行;且所述至少一个节点装置的所述资源是选自由所述至少一个CPU、所述至少一个GPU以及所述至少一个节点装置的至少一个存储装置内的存储空间组成的群组;响应于所述至少一个GPU可用于经指派于执行所述分析例程的所述第一任务的确定:分析所述分析例程的第一任务例程以确定所述第一任务例程是否能够经编译以产生用于由所述至少一个GPU执行的GPU任务例程以致使所述至少一个GPU至少部分并行地执行所述分析例程的所述第一任务的多个实例,而所述第一任务的所述多个实例的输入和输出之间不具有相依性,其中:所述第一任务例程经产生以用于由所述至少一个CPU执行以执行所述分析例程的所述第一任务;且所述第一任务例程是否能够经编译以产生所述GPU任务例程的所述确定包括所述第一任务例程是否包含阻止所述编译产生所述GPU任务例程的指令的确定以及所述第一任务例程的输入和输出是否经界定为不需要所述相依性的确定;且响应于所述第一任务例程能够经编译以产生所述GPU任务例程的确定:将数据集的多个数据集分区中的数据集分区指派于所述至少一个节点装置以实现由所述至少一个GPU对所述数据集分区的存取;采用转换规则以将所述第一任务例程的至少一个指令转换为所述GPU任务例程的至少一个对应指令;编译所述GPU任务例程的所述至少一个对应指令以用于由所述至少一个GPU执行;以及将所述分析例程的所述第一任务关于所述数据集分区的执行指派于所述至少一个节点装置以实现所述第一任务的所述多个实例关于所述数据集分区由所述至少一个GPU的执行。12.根据权利要求11所述的计算机程序产品,其中为了确定所述第一任务例程是否包含阻止所述编译产生所述GPU任务例程的指令,致使所述处理器进行以下操作:确定所述第一任务例程的所述指令是否包含在无法转换为能够由所述至少一个GPU执行的至少一个指令的指令集中;以及响应于所述第一任务例程的所述指令不包含在所述指令集中的确定,确定所述第一任务例程的所述指令是否在所述第一任务例程中以阻止转换为能够由所述至少一个GPU执行的至...

【专利技术属性】
技术研发人员:H·G·V·贝凯H·陈
申请(专利权)人:萨思学会有限公司
类型:发明
国别省市:美国,US

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

1