映射和化简运算加速系统及方法

文档序号:6509194阅读:245来源:国知局
映射和化简运算加速系统及方法
【专利摘要】本发明公开映射和化简运算加速系统和方法,根据本发明一实施例的映射和化简加速系统包括:一个以上的映射节点,根据主节点的映射运算请求执行映射运算;一个以上的化简节点,利用所述映射运算结果数据执行化简运算,其中,所述映射节点包括将执行所述映射运算之后生成的多个数据块进行合并而生成数据流,并生成用于传送所述数据流的传送信道的一个以上的映射运算加速器,所述化简节点包括通过所述传送信道从所述映射运算加速器接收所述数据流,并基于所接收的所述数据流复原所述多个数据块而提供给所述化简运算的一个以上的化简运算加速器。
【专利说明】映射和化简运算加速系统及方法

【技术领域】
[0001] 本发明的实施例涉及用于处理大容量数据的并行计算技术。

【背景技术】
[0002] 映射和化简(Map Reduce)是以支持用于处理大容量数据的分散计算为目的而开 发出的软件框架。该框架是为了支持针对拍字节(Peta Byte)以上的大容量数据的由多个 计算机构成的群集环境下的并行处理而被开发出来。
[0003] 当前的映射和化简运算处理系统中,通过生成从原始数据生成的键值对 (key-value pair)的映射(Map)运算过程和作为将所生成的键值对转换为另一键值对的 过程的化简(Reduce)运算过程而执行映射和化简运算,在这个过程中,将各个运算步骤的 中间计算数据先存储到构成分散计算系统的节点的本地文件系统(local file system), 然后传送给运算所需的节点而再次存储到本地文件系统之后,将在相关节点中执行下一个 运算。
[0004] 虽然这样的映射和化简运算方式具有最小化网络上的数据移动的同时可处理大 容量的数据的优点,但是在运算过程中至少会出现以下五种性能瓶颈,因而具有性能下降 的问题。
[0005] -在本地文件中读取将要在映射节点的映射运算中使用的原始数据时,因低的磁 盘I/O速度引起的性能瓶颈;
[0006] -将映射运算之后生成的键值对临时数据发送给化简节点之前存储到本地文件系 统的过程中,因低的磁盘I/O速度而产生的性能瓶颈;
[0007] -向远程的化简节点发送数据时,通过网络传送原先存在于本地文件系统的数据 块的过程中产生的网络延迟;
[0008] -将传送到化简节点的映射键值对数据临时存储到化简节点的本地文件系统的过 程中,因低的磁盘I/O速度产生的性能瓶颈;
[0009] -为了化简运算而将映射键值对数据以数据块的形态再次合并到本地文件系统而 存储的过程中产生的磁盘输入/输出(I/O)过程中的性能瓶颈。


【发明内容】

[0010] 本发明的实施例用于提供一种映射和化简运算加速技术,以用于最小化在映射和 化简运算过程中可能发生的因频繁的磁盘输入/输出或网络延迟等引起的性能的瓶颈现 象。
[0011] 而且,本发明的实施例用于提供在不修改现有的映射和化简运算框架的同时能够 以插件的形态设置的映射和化简运算加速技术。
[0012] 根据本发明一实施例的映射和化简运算加速系统,包括:一个以上的映射节点,根 据主节点的映射运算请求执行映射运算;一个以上的化简节点,利用所述映射运算结果数 据执行化简运算,其中,所述映射节点包括将执行所述映射运算之后生成的多个数据块进 行合并而生成数据流,并生成用于传送所述数据流的传送信道的一个以上的映射运算加速 器,所述化简节点包括通过所述传送信道从所述映射运算加速器接收所述数据流,并基于 所接收的所述数据流复原所述多个数据块而提供给所述化简运算的一个以上的化简运算 加速器。
[0013] 所述映射节点还可以包括根据所述映射运算请求生成所述一个以上的映射运算 加速器的映射运算加速控制器。
[0014] 所述映射运算加速控制器在接收到运算加速器追加请求时,可追加生成一个以上 的映射运算加速控制器。
[0015] 所述映射运算加速控制器在从所述化简节点接收到所述数据流传送请求时,可将 所述数据流传送请求重定向到所述传送信道。
[0016] 所述映射运算加速控制器可以在所述映射节点的存储器上合并所述多个数据块 而生成所述数据流。
[0017] 所述映射运算加速器可包括:数据块输入输出单元,读取存储在所述映射节点的 本地文件系统的多个数据块;数据块合并单元,合并由所述数据块输入输出单元读取的所 述多个数据块而生成数据流;传送信道控制单元,生成用于传送所述数据流的传送信道,并 根据所述化简运算加速器的请求通过所述传送信道将所述数据流发送至所述化简节点。
[0018] 所述传送信道可以是远程直接存取(Remote Direct Memory Access, RDMA)信道 或者以太网信道中的一个。
[0019] 所述传送信道控制单元可根据所述化简运算加速器的请求生成一个以上的服务 器端信道连接器,并可通过所生成的所述服务器端信道连接器向所述化简运算加速器发送 所述数据流。
[0020] 所述化简节点还可以包括根据所述主节点的化简运算请求生成所述一个以上的 化简运算加速器的化简运算加速控制器。
[0021] 所述化简运算加速控制器在从所述映射节点接收到所述传送信道信息时,可利用 所接收的传送信道信息向所生成的所述化简运算加速器请求接收所述数据流。
[0022] 所述化简运算加速器可以在所述化简节点的存储器上基于所述数据流复原所述 多个数据块。
[0023] 所述化简运算加速器可包括:传送信道控制单元,利用在所述映射运算加速器端 生成的所述传送信道接收所述数据流;数据块分离单元,从所接收的所述数据流复原所述 多个数据块;数据块输入输出单元,将复原的所述多个数据块提供给所述化简节点的化简 运算器。
[0024] 所述传送信道控制单元可生成一个以上的客户机端信道连接器,并可利用所生成 的所述客户机端信道连接器从所述映射运算加速器接收所述数据流。
[0025] 所述化简运算加速器在完成所述数据流的接收时,可向所述映射运算加速器发送 信道连接解除请求,所述信道连接解除请求可包括所生成的所述客户机端信道连接器的数 量。
[0026] 接收到所述信道连接解除请求的所述映射运算加速器在接收到与从所述化简运 算加速器接收到的信道连接器的数量相等的连接解除消息时,可发送关于所述信道连接解 除请求的响应,并解除与所述化简运算加速器的信道连接。
[0027] 另外,根据本发明一实施例的映射和化简运算加速方法,其为在包括根据主节点 的映射运算请求执行映射运算的一个以上的映射节点以及利用所述映射运算结果数据执 行化简运算的一个以上的化简节点的映射和化简运算加速系统中执行的映射和化简运算 加速方法,包括如下步骤:在所述映射节点的一个以上的映射运算加速器中,将执行所述映 射运算之后生成的多个数据块进行合并而生成数据流,并生成用于传送所述数据流的传送 信道;在一个以上的化简运算加速器中,通过所述传送信道从所述映射运算加速器接收所 述数据流;在所述一个以上的化简运算加速器中,从接收的所述数据流复原所述多个数据 块而提供给所述化简运算。
[0028] 所述方法在执行生成所述传送信道的步骤之前,还可以包括步骤:根据所述映射 运算请求生成所述一个以上的映射运算加速器。
[0029] 生成所述一个以上的映射运算加速器的步骤中还可以包括步骤:当接收到运算加 速器追加请求时,追加生成一个以上的映射运算加速控制器。
[0030] 所述映射运算加速控制器在从所述化简节点接收到所述数据流传送请求时,可将 所述数据流传送请求重定向到生成的所述传送信道。
[0031] 所述传送信道可以是远程直接存取(Remote Direct Memory Access, RDMA)信道 或者以太网信道中的一个。
[0032] 所述映射运算加速器可根据所述化简运算加速器的请求生成一个以上的服务器 端信道连接器,并通过所生成的所述服务器端信道连接器向所述化简运算加速器发送所述 数据流。
[0033] 在执行接收所述数据流的步骤之前还可以包括步骤:在所述化简节点的化简运算 加速控制器中,根据所述主节点的化简运算请求生成所述一个以上的化简运算加速器。 [0034] 所述化简运算加速控制器在从所述映射运算加速控制器接收到所述传送信道信 息时,可利用所接收的所述传送信道信息向所述化简运算加速器请求接收所述数据流。
[0035] 接收所述数据流的步骤中,可生成一个以上的客户机端信道连接器,并可利用所 述传送信道信息构建所述客户机端信道连接器和所述映射运算加速器端生成的服务器端 信道连接器之间的信道连接,由此从所述映射运算加速器接收所述数据流。
[0036] 所述方法还包括步骤:在执行接收所述数据流的步骤之后,在所述化简运算加速 器中,向所述化简运算加速器发送信道连接解除请求,所述信道连接解除请求可包括所述 化简运算加速器和所述映射运算加速器之间构建的信道连接数量。
[0037] 接收到所述信道连接解除请求的所述映射运算加速器在从所述化简运算加速器 接收到与接收到的所述信道连接数量相等的连接解除消息时,可向所述化简运算加速器发 送关于所述信道连接解除请求的响应,并解除与所述化简运算加速器的信道连接。
[0038] 另外,根据本发明一实施例的装置为包括存储有能够在计算机上执行的程序代码 的存储器以及利用所述存储器执行所述程序代码的处理器的装置,所述程序代码用于执行 如下过程:将执行所述映射运算之后生成的多个数据块在所述存储器内进行合并而生成数 据流,并生成用于传送所述数据流的传送信道;通过所述传送信道收发所述数据流;在所 述存储器内分割通过传送信道接收的数据流而复原多个数据块,并将复原的所述多个数据 块提供给所述化简运算。
[0039] 另外,根据本发明一实施例的计算机可读记录介质为包括程序代码的计算机可读 记录介质,所述程序代码在由计算机执行时,使所述计算机执行如下过程:将执行所述映射 运算之后生成的多个数据块进行合并而生成数据流,并生成用于传送所述数据流的传送信 道;通过所述传送信道收发所述数据流;在所述存储器内分割通过传送信道接收的数据流 而复原多个数据块,并将复原的所述多个数据块提供给所述化简运算。
[0040] 根据本发明的实施例,对于在映射节点作为映射运算结果生成的键值对数据不记 录于磁盘上的本地文件系统而在存储器中以连续的流的形态直接传送给远程化简节点,据 此可以解决映射节点上的不必要的磁盘输入/输出引起的性能瓶颈问题。
[0041] 而且,为了消除从所述映射节点向远程的化简运算节点传送数据时产生的网络延 迟,在映射节点和化简运算节点之间生成远程直接存取(RDMA)信道,并通过该信道传送数 据流,据此可最小化网络延迟引起的性能瓶颈问题。
[0042] 而且,消除了将传送至化简节点的键值对数据临时存储在化简节点的本地文件系 统的磁盘输入/输出过程,在存储器中接收到映射键值对数据时立刻在存储器上合并为数 据块之后,并不将其写入磁盘而从存储器直接传递给化简运算而执行运算,据此可解决磁 盘的输入/输出速度引起的性能瓶颈问题。
[0043] 同时,对于根据本发明实施例的映射和化简运算加速器来说,构成为附加的插件 形态,因此无需对现有的映射和化简架构进行修改也能够提高运算性能,具有容易应用于 现有的映射和化简运算框架的优点。

【专利附图】

【附图说明】
[0044] 图1为用于说明根据本发明一实施例的包括映射和化简运算加速器的映射和化 简运算系统1〇〇的框图。
[0045] 图2为用于说明根据本发明一实施例的映射和化简运算加速器114的详细组成的 框图。
[0046] 图3为用于说明根据本发明一实施例的映射运算加速控制器200的详细组成的框 图。
[0047] 图4为用于说明根据本发明一实施例的映射运算加速器202的详细组成的框图。
[0048] 图5为用于说明根据本发明一实施例的化简运算加速器206的详细组成的框图。
[0049] 图6为用于说明在根据本发明一实施例的映射运算加速控制器200中控制映射运 算加速器202的过程的图。
[0050] 图7和图8为用于说明根据本发明一实施例的利用映射和化简运算加速器114的 映射和化简运算加速过程的图。
[0051] 图9为用于说明根据本发明一实施例的映射运算加速器202和化简运算加速器 206之间的信道生成过程的顺序图。
[0052] 图10为用于说明根据本发明一实施例的映射或化简运算加速器之间的信道连接 被解除的过程的顺序图。
[0053] 主要符号说明
[0054] 100:映射和化简运算系统
[0055] 102 :主节点
[0056] 104 :从节点
[0057] 106 :本地文件系统
[0058] 108 :工作跟踪器
[0059] 110:任务跟踪器
[0060] 112:映射和化简运算器
[0061] 114 :映射和化简运算加速器
[0062] 200 :映射运算加速控制器
[0063] 202:映射运算加速器
[0064] 204 :化简运算加速控制器
[0065] 206 :化简运算加速器
[0066] 300 :映射运算加速器控制单元
[0067] 302 :资源请求处理单元
[0068] 304:重定向单元
[0069] 400 :接收单元
[0070] 402 :资源监控单元
[0071] 404 :数据块输入输出单元
[0072] 406 :数据块合并单元
[0073] 408 :传送信道控制单元
[0074] 500 :接收单元
[0075] 502 :传送信道控制单元
[0076] 504 :数据块分离单元
[0077] 506 :数据块输入输出单元

【具体实施方式】
[0078] 以下,参照附图对本发明的具体实施形态进行说明。但是,这仅仅是示例,本发明 不局限于此。
[0079] 在对本发明进行说明时,当判断为对与本发明相关的公知技术的具体说明将不必 要地混淆本发明的要旨时,省略其具体说明。而且,后述的术语为考虑到在本发明中的功能 而进行定义的术语,可根据使用者、应用者的意图或惯例等而发生改变。因此,其定义应基 于整个本说明书的内容来定。
[0080] 本发明的技术思想由权利要求书所记载的范围来确定,以下实施例仅仅是用于有 效地向本发明所属【技术领域】中具有普通知识的技术人员说明本发明的技术思想的手段。
[0081] 图1为用于说明根据本发明一实施例的包括映射和化简运算加速器的映射和化 简运算系统100的框图。如图所示,根据本发明一实施例的映射和化简运算系统100包括 主节点102和多个从节点104。
[0082] 主节点102将大容量数据分为预定的大小的块而分开存储在各个从节点104的本 地文件系统106。主节点102上配备工作跟踪器108,该工作跟踪器108根据用户的映射和 化简工作请求向各个从节点104分配映射运算或化简运算。此时,为了最小化存储于本地 文件系统的数据的移动,构成为(快速输入和输出:fast-path I/O)各个映射运算和化简运 算由各个从节点104中的存储有运算对象数据的节点或最为靠近存储有数据的节点的节 点执行。
[0083] 从节点104为根据主节点102的控制执行映射运算或化简运算的节点。从节点104 根据主节点102分配的作用可区分为映射节点和化简节点。即,以下说明的"映射节点"是 指利用原始数据执行映射运算的从节点104,"化简节点"是指利用映射运算的结果执行化 简运算的从节点104。
[0084] 从节点104除了包括前述的本地文件系统106之外,还包括任务跟踪器110、映射 和化简运算器112、映射和化简运算加速器114。
[0085] 任务跟踪器110从主节点102的工作跟踪器108接收映射运算或化简运算请求, 并根据所接收的请求运行映射和化简运算器112,以使映射运算或化简运算得以执行。
[0086] 映射和化简运算器112根据任务跟踪器110的控制执行被分配的映射运算或化简 运算。与具体的映射运算和化简运算相关的事项为本领域中具有通常知识的技术人员所熟 知,因此在此省略说明。而且,为了区分,在以下说明中,在映射和化简运算器112执行映 射运算时称为映射运算器112a,在映射和化简运算器112执行化简运算时称为化简运算器 112b。
[0087] 映射和化简运算加速器114是用于消除由映射和化简运算器112的映射运算或化 简运算中产生的磁盘输入/输出或者网络延迟等引起的瓶颈现象,并加速整个映射和化简 运算的模块。对于映射和化简运算加速器114的详细构成在图2中进行详细的说明。
[0088] 图2为用于说明根据本发明一实施例的映射和化简运算加速器114的详细组成的 框图。如图所示,根据本发明一实施例的映射和化简运算加速器114包括映射运算加速控 制器200、映射运算加速器202、化简运算加速控制器204、化简运算加速器206。其中,映射 运算加速器202由映射运算加速控制器200生成和删除或控制其操作,化简运算加速器206 也是由化简运算加速控制器204生成、删除并控制其操作。
[0089] 映射运算加速控制器200根据主节点102的映射运算请求生成一个以上的映射运 算加速器202,并控制所生成的映射运算加速器202的操作。映射运算加速控制器200可以 存在于映射节点的任务跟踪器110内,也可以独立于任务跟踪器110而构成为单独的模块。
[0090] 映射运算加速器202合并映射节点上的映射运算之后生成的多个数据块而生成 数据流,生成用于传送所述数据流的传送信道。例如,映射运算加速器202可在映射节点的 存储器上合并多个数据块而生成所述数据流。
[0091] 化简运算加速控制器204根据主节点102的化简运算请求生成一个以上的化简运 算加速器206,并控制所生成的化简运算加速器206的操作。化简运算加速控制器204也与 映射运算加速控制器200相同,可以存在于化简节点的任务跟踪器110之内,也可以独立于 任务跟踪器110而构成为单独的模块。
[0092] 化简运算加速器206通过映射运算加速器202上生成的所述传送信道从映射运算 加速器202接收所述数据流,并从所接收的所述数据流复原所述多个数据块而提供给化简 节点的映射和化简运算器112,由此使化简运算得以执行。例如,化简运算加速器206可在 化简节点的存储器上基于数据流复原多个数据块。
[0093] 根据本发明实施例的映射和化简加速器114并不改变现有的映射和化简运算框 架的结构或增加新的模块。即,在本发明中,映射和化简运算加速器114与用于映射和化简 运算的映射和化简运算框架分开而作为单独的模块存在,在功能上位于映射和化简运算框 架的下位区域。而且,映射和化简运算加速器114位于程序库和OS内核模块的上位层,起 到使映射和化简运算框架实现利用RDMA功能的高速数据传送的一种接口的功能,其中该 程序库提供为了对通过网络传送数据的过程进行加速而使用的远程直接存取(RDMA)功能。
[0094] 图3为用于说明根据本发明一实施例的映射运算加速控制器200的详细组成的框 图。如图所示,根据本发明一实施例的映射运算加速控制器200包括映射运算加速器控制 单元300、资源请求处理单元302、重定向单元304。
[0095] 映射运算加速器控制单元300根据主节点102的映射运算请求生成一个以上的映 射运算加速器202,并按照所生成的各个映射运算加速器202分别分配存储于本地文件系 统106的数据。
[0096] 资源请求处理单元302在从所生成的映射运算加速器202接收到运算加速器追 加请求时,向映射运算加速器控制单元300请求追加生成一个以上的映射运算加速控制器 200。
[0097] 重定向单元304在从化简节点接收到针对由映射运算加速器202生成的所述数据 流的传送请求时,将所述数据流传送请求重定向(redirection)到映射运算加速器202所 生成的传送信道,据此使化简节点通过所述传送信道接收到所述数据流。
[0098] 图4为用于说明根据本发明一实施例的映射运算加速器202的详细组成的框图。 如图所示,根据本发明一实施例的映射运算加速器202包括接收单元400、资源监控单元 402、数据块输入输出单元404、数据块合并单元406、传送信道控制单元408。
[0099] 接收单元400从映射运算加速器控制单元300接收控制命令,并将该控制命令传 递给映射运算加速器202内的其他组件。
[0100] 资源监控单元402监控由映射运算加速器控制单元300请求的数据的容量和分配 到当前映射运算加速器202的内存容量等,判断是否需要增加映射运算加速器202。若进行 判断结果,判断为所请求的数据容量超出可处理容量时,资源监控单元402向资源请求处 理单元302请求追加生成映射运算加速器202。
[0101] 数据块输入输出单元404访问映射节点的本地文件系统106而读取所存储的多个 数据块。此时,所述数据块表示映射节点的映射和化简运算器112所生成的映射运算结果 数据。
[0102] 数据块合并单元406合并由数据块输入输出单元404读取的所述多个数据块而生 成数据流。
[0103] 传送信道控制单元408生成用于传送由数据块合并单元406生成的所述数据流的 传送信道,且根据化简节点的化简运算加速器206的请求通过所述传送信道将所述数据流 发送给所述化简节点。此时,所述传送信道可以是远程直接存取(RDMA)信道或以太网信道 中的某一个。即,传送信道控制单元408根据化简节点的化简运算加速器206的请求生成 RDMA信道或一般以太网信道,并通过这些信道使所述数据流产生流动。
[0104] 图5为用于说明根据本发明一实施例的化简运算加速器206的详细组成的框图。 如图所示,根据本发明一实施例的化简运算加速器206包括接收单元500、传送信道控制单 元502、数据块分离单元504、数据块输入输入单元506。
[0105] 接收单元500从化简运算加速控制器204接收控制命令,并将该控制命令传递给 化简运算加速器206之内的其他组件。
[0106] 传送信道控制单元502通过映射节点的映射运算加速器202侧生成的传送信道接 收数据流。传送信道控制单元502生成一个以上的客户机端信道连接器,并可通过所述客 户机端信道连接器从所述映射运算加速器202接收所述数据流。
[0107] 数据块分离单元504从接收到的所述数据流复原出多个数据块。
[0108] 数据块输入输出单元506将经复原的所述多个数据块提供给化简节点的映射和 化简运算器112,以使化简运算能够执行。
[0109] 图6为用于说明在根据本发明一实施例的映射运算加速控制器200中控制映射运 算加速器202的过程的图。
[0110] 首先,映射节点的任务跟踪器110根据来自工作跟踪器108的映射运算请求向 映射运算加速控制器200的映射运算加速器控制单元300请求运行映射运算加速器202 (S602)。于是,映射运算加速器控制单元300根据上述请求生成新的映射运算加速器202 并将作业分配给所生成的映射运算加速器202 (S604)。
[0111] 之后,运行的映射运算加速器202考虑到本身可吞吐的资源(最大可输入输出文 件描述符数和当前可使用的内存和数据的总量),当需要的资源超出本身所能够吞吐的资 源时,向映射运算加速控制器200的资源请求处理单元302请求追加运行映射运算加速器 202 (S606)。
[0112] 接收到所述请求的资源请求处理单元302将该请求传递给映射运算加速器控制 单元300,而映射运算加速器控制单元300追加运行映射运算加速器202 (S608)。
[0113] 之后,追加运行的映射运算加速器202点检当前剩余的数据的量和文件数,并考 虑本身能够分担的文件描述符数、可用内存等的资源,当需要追加映射运算加速器202时, 可再次向映射运算加速控制器200请求追加运行映射运算加速器202。即,上述过程直到所 生成的映射运算加速器202的处理容量能够足够处理所请求的数据的输入输出为止一直 重复。
[0114] 图7和图8为用于说明根据本发明一实施例的利用映射和化简运算加速器114的 映射和化简运算加速过程的图,图7用于说明在映射节点上的映射和化简运算加速步骤, 图8用于说明在化简节点上的映射和化简运算加速步骤。
[0115] 首先,映射节点的任务跟踪器110从主节点102的工作跟踪器108接收到映射运 算运行请求时,任务跟踪器110利用映射运算器112a执行布置到相关节点的映射运算,并 将执行结果数据存储在本地文件系统106 (S702)。
[0116] 之后,映射运算加速控制器200的映射运算加速器控制单元300生成映射运算 加速器202的一个实例(instance) (S704),将作业分配给所生成的映射运算加速器202 (S706)。生成的映射运算加速器202的资源监控单元402点检被请求的数据的块文件数、 当前节点的内存容量等,当判断为当前运行的映射运算加速器202的处理容量无法处理被 请求的数据时,向映射运算加速控制器200的资源请求处理单元302请求追加生成映射运 算加速器202(S708)。于是,映射运算加速器控制单元300根据通过资源请求处理单元302 接收的所述追加生成加速器的请求,追加生成一个以上的映射运算加速器。这样的映射运 算加速器202的追加直到生成能够充分地输入输出当前请求的数据的映射运算加速器202 为止一直重复。
[0117] 接着,所生成的每个映射运算加速器202的接收单元400从映射运算加速器控制 单元300接收针对存储在本地文件系统106的数据的处理请求,将该请求传递给数据块输 入输出单元404 (S710)。而且,映射运算加速器控制单元300通过接收单元400,使传送信 道控制单元生成RDMA信道702或以太网信道704并使其待机(S712)。
[0118] 接着,每个映射运算加速器202内的数据块输入输出单元404读取存储在所述映 射节点的本地文件系统106的映射运算的结果数据块而传递给数据块合并单元406(S714、 S716),数据块合并单元406合并所述数据块而生成一个数据流(S718)。于是,传送信道控 制单元408通过生成的RDMA信道702或以太网信道704的服务器端信道连接器706、708 传送所生成的数据流。
[0119] 另外,映射运算加速控制器200的重定向单元304从化简节点内的化简运算器 112b接收关于映射运算结果的传送请求,并将所述传送请求重定向(redirection)到所生 成的RDMA信道702或以太网信道704,以使化简运算器112b能够通过RDMA信道702或以 太网信道704接收到映射运算结果(S724、S726)。
[0120] 以下,参照图8对于在化简节点上的映射和化简运算加速步骤进行说明。
[0121] 首先,化简节点的化简运算加速控制器204根据化简节点的任务跟踪器110的请 求运行化简运算加速器206(S802),且请求化简运算器112b利用从映射节点的重定向单元 304接收的RDMA信道702或以太网信道704信息从映射节点读取数据(S804)。
[0122] 化简运算加速器206的传送信道控制单元502利用接收单元500接收所述请求 (S806),并生成客户机端RDMA信道连接器802或客户机端以太网连接器804之后,访问服 务器端RDMA信道连接器706或服务器端以太网信道连接器708而构建连接,并通过该连接 接收数据流(S808、S810)。
[0123] 数据块分离单元504从传送信道控制单元502接收所述数据流(S812),并基于所 接收的所述数据流复原多个数据块(S814)。之后,数据块输入输出单元506将复原的所述 多个数据块提供给所述化简运算器112b,以能够执行化简运算(S816)。
[0124] 图9为用于说明根据本发明一实施例的映射运算加速器202和化简运算加速器 206之间的信道生成过程的顺序图。
[0125] 首先,化简运算加速器206的传送信道控制单元502根据化简运算器112b的请求 生成信道连接器。在图示的实施例中,虽然示出了所述信道连接器为RDMA信道连接器802 的实施例,但本发明并不局限于此,所生成的信道连接器可根据映射运算节点上生成的数 据传送信道的种类可以是RDMA信道连接器802或一般的以太网信道连接器804。
[0126] 所生成的信道连接器802向映射运算加速器202端的信道事件发生器902发送信 道连接请求事件(S902),而接收此的信道事件发生器902向服务器端信道702 (RDMA服务 器信道或以太网服务器信道)传递信道连接请求事件(S904)。于是,服务器端信道702根 据所述信道连接请求事件生成信道连接器806 (RDMA信道连接器706或以太网信道连接器 708)并使其待机(S906)。
[0127] 之后,服务器端信道702向化简节点的信道事件发生器904发送连接请求同意消 息(S908)时,信道事件发生器904向信道事件处理器906产生信道连接结束事件(S910)。 于是,信道事件处理器906将信道连接结束通知发送给化简运算加速器端信道连接器802、 804而使其准备传送数据流(S912)。
[0128] 另外,当同意所述连接请求的服务器端信道702向信道事件发生器902传递信道 连接器生成事件(S914),信道事件发生器902据此向服务器端信道702产生信道连接结束 事件(S916)。之后,服务器端信道702向信道连接器706、708发送信道连接结束通知,以使 化简运算加速器206端信道连接器802、804能够接收到数据流(S918)。
[0129] 图10为用于说明根据本发明一实施例的映射或化简运算加速器之间的信道连接 被解除的过程的顺序图。在本发明的实施例中,映射运算加速器202和化简运算加速器206 之间的信道连接可通过映射运算加速器202或化简运算加速器206中的一个加速器的连 接解除请求而得以执行。在此,为了便于说明,将发送连接解除请求的映射运算加速器202 或化简运算加速器206称为第一运算加速器,将接收所述连接解除请求的映射运算加速器 202或化简运算加速器206称为第二运算加速器。
[0130] 在本发明的实施例中,各个映射运算加速器202或化简运算加速器206根据相关 的映射运算或化简运算中将要使用的数据块的数和数据量通过互不相同的数量的信道连 接器收发数据流。据此,各个映射运算加速器202和化简运算加速器206中产生数量分别 不同的信道连接器,因此为了在传送数据流之后稳定地解除连接,需要专门的协议。
[0131] 首先,第一加速器的传送信道控制单元1002接收到解除连接请求时(S1002),传 送信道控制单元1002为了解除连接于本身的第二运算加速器的连接而向第二运算加速器 的传送信道控制单元1004发送解除连接请求(S1004)。此时,传送信道控制单元1002将与 第二运算加速器建立的信道连接器的数量(连接解除消息数,sent_c 〇unt)连同所述连接解 除请求一起进行发送。
[0132] 接收到所述解除连接请求的第二运算加速器的传送信道控制单元1004直到从第 一运算加速器接收到与接收到的sent_count相当的解除连接消息为止一直待机(S1006), 当数量与解除连接消息数相等的解除连接消息到达时,向第一运算加速器端传递解除连接 准备结束的消息(S1008 ),由此解除与相关运算加速器的连接(S1010 )。接收到解除连接准 备结束的信号的第一运算加速器根据所述解除连接准备结束消息解除与第二运算加速器 的连接的同时结束数据流的传送(S1012 )。
[0133] 通过以上的过程而解除各个运算加速器之间的信道连接时,具有可防止当前正在 传送数据流的信道连接器还存在的状态下与对方的连接发生解除的优点。
[0134] 另外,本发明的实施例还可以包括计算机可读记录介质,该计算机可读记录介质 包括可在计算机执行本说明书所记述的方法的程序。所述计算机可读记录介质可单独包括 程序命令、本地数据文件、本地数据结构等或可以包括其组合。所述介质可以是为了本发明 而特意设计并构成的介质,也可以是计算机软件领域中具有通常的知识的技术人员所公知 并可以使用的介质。计算机可读记录介质的例包括硬盘、软盘、磁带之类的磁介质;CD-ROM、 DVD之类的光记录介质、软盘之类的磁-光记录介质以及ROM、RAM、闪存等的特别构成为存 储程序命令并执行的硬件装置。程序命令的例不仅包括由编译器制作的机械代码,还包括 使用解释器等而能够在计算机执行的高级语言代码。
[0135] 以上,虽然通过代表性实施例对本发明进行了详细说明,但本发明所属【技术领域】 中具有通常知识的技术人员应可以理解,在不脱离本发明的范围的情况下,可进行各种变 更。
[0136] 因此,本发明的权利范围并不能局限于所说明的实施例,不仅由权利要求书定义, 还由与权利要求书等同的内容定义。
【权利要求】
1. 一种映射和化简运算加速系统,包括:一个以上的映射节点,根据主节点的映射运 算请求执行映射运算;一个以上的化简节点,利用所述映射运算结果数据执行化简运算, 其中,所述映射节点包括将执行所述映射运算之后生成的多个数据块进行合并而生成 数据流,并生成用于传送所述数据流的传送信道的一个以上的映射运算加速器, 所述化简节点包括通过所述传送信道从所述映射运算加速器接收所述数据流,并基于 所接收的所述数据流复原所述多个数据块而提供给所述化简运算的一个以上的化简运算 加速器。
2. 根据权利要求1所述的映射和化简运算加速系统,其特征在于,所述映射节点还包 括根据所述映射运算请求生成所述一个以上的映射运算加速器的映射运算加速控制器。
3. 根据权利要求2所述的映射和化简运算加速系统,其特征在于,所述映射运算加速 控制器在接收到运算加速器追加请求时,追加生成一个以上的映射运算加速控制器。
4. 根据权利要求2所述的映射和化简运算加速系统,其特征在于,所述映射运算加速 控制器在从所述化简节点接收到所述数据流传送请求时,将所述数据流传送请求重定向到 所述传送信道。
5. 根据权利要求1所述的映射和化简运算加速系统,其特征在于,所述映射运算加速 控制器在所述映射节点的存储器上合并所述多个数据块而生成所述数据流。
6. 根据权利要求1所述的映射和化简运算加速系统,其特征在于,所述映射运算加速 器包括: 数据块输入输出单元,读取存储在所述映射节点的本地文件系统的多个数据块; 数据块合并单元,合并由所述数据块输入输出单元读取的所述多个数据块而生成数据 流; 传送信道控制单元,生成用于传送所述数据流的传送信道,并根据所述化简运算加速 器的请求通过所述传送信道将所述数据流发送至所述化简节点。
7. 根据权利要求6所述的映射和化简运算加速系统,其特征在于,所述传送信道是远 程直接存取信道或者以太网信道中的一个。
8. 根据权利要求6所述的映射和化简运算加速系统,其特征在于,所述传送信道控制 单元根据所述化简运算加速器的请求生成一个以上的服务器端信道连接器,并通过所生成 的所述服务器端信道连接器向所述化简运算加速器发送所述数据流。
9. 根据权利要求1所述的映射和化简运算加速系统,其特征在于,所述化简节点还包 括根据所述主节点的化简运算请求生成所述一个以上的化简运算加速器的化简运算加速 控制器。
10. 根据权利要求9所述的映射和化简运算加速系统,其特征在于,所述化简运算加速 控制器在从所述映射节点接收到所述传送信道信息时,利用所接收的传送信道信息向所生 成的所述化简运算加速器请求接收所述数据流。
11. 根据权利要求1所述的映射和化简运算加速系统,其特征在于,所述化简运算加速 器在所述化简节点的存储器上基于所述数据流复原所述多个数据块。
12. 根据权利要求1所述的映射和化简运算加速系统,其特征在于,所述化简运算加速 器包括: 传送信道控制单元,利用在所述映射运算加速器端生成的所述传送信道接收所述数据 流; 数据块分离单元,从所接收的所述数据流复原所述多个数据块; 数据块输入输出单元,将复原的所述多个数据块提供给所述化简节点的化简运算器。
13. 根据权利要求12所述的映射和化简运算加速系统,其特征在于,所述传送信道控 制单元生成一个以上的客户机端信道连接器,并利用所生成的所述客户机端信道连接器从 所述映射运算加速器接收所述数据流。
14. 根据权利要求13所述的映射和化简运算加速系统,其特征在于,所述化简运算加 速器在完成所述数据流的接收时,向所述映射运算加速器发送信道连接解除请求,所述信 道连接解除请求包括所生成的所述客户机端信道连接器的数量。
15. 根据权利要求14所述的映射和化简运算加速系统,其特征在于,接收到所述信道 连接解除请求的所述映射运算加速器在接收到与从所述化简运算加速器接收到的信道连 接器的数量相等的连接解除消息时,发送关于所述信道连接解除请求的响应,并解除与所 述化简运算加速器的信道连接。
16. -种映射和化简运算加速方法,其为在包括根据主节点的映射运算请求执行映射 运算的一个以上的映射节点以及利用所述映射运算结果数据执行化简运算的一个以上的 化简节点的映射和化简运算加速系统中执行的映射和化简运算加速方法,包括如下步骤: 在所述映射节点的一个以上的映射运算加速器中,将执行所述映射运算之后生成的多 个数据块进行合并而生成数据流,并生成用于传送所述数据流的传送信道; 在所述化简节点的一个以上的化简运算加速器中,通过所述传送信道从所述映射运算 加速器接收所述数据流; 在所述一个以上的化简运算加速器中,从接收的所述数据流复原所述多个数据块而提 供给所述化简运算。
17. 根据权利要求16所述的映射和化简运算加速方法,其特征在于,在执行生成所述 传送信道的步骤之前,还包括步骤:在所述映射节点的映射运算加速器中,根据所述映射运 算请求生成所述一个以上的映射运算加速器。
18. 根据权利要求17所述的映射和化简运算加速方法,其特征在于,生成所述一个以 上的映射运算加速器的步骤中还包括步骤:当接收到运算加速器追加请求时,追加生成一 个以上的映射运算加速控制器。
19. 根据权利要求17所述的映射和化简运算加速方法,其特征在于,所述映射运算加 速控制器在从所述化简节点接收到所述数据流传送请求时,将所述数据流传送请求重定向 到生成的所述传送信道。
20. 根据权利要求16所述的映射和化简运算加速方法,其特征在于,所述传送信道是 远程直接存取信道或者以太网信道中的一个。
21. 根据权利要求16所述的映射和化简运算加速方法,其特征在于,所述映射运算加 速器根据所述化简运算加速器的请求生成一个以上的服务器端信道连接器,并通过所生成 的所述服务器端信道连接器向所述化简运算加速器发送所述数据流。
22. 根据权利要求16所述的映射和化简运算加速方法,其特征在于,在执行接收所述 数据流的步骤之前还包括步骤:在所述化简节点的化简运算加速控制器中,根据所述主节 点的化简运算请求生成所述一个以上的化简运算加速器。
23. 根据权利要求22所述的映射和化简运算加速方法,其特征在于,所述化简运算加 速控制器在从所述映射运算加速控制器接收到所述传送信道信息时,利用所接收的所述传 送信道信息向所述化简运算加速器请求接收所述数据流。
24. 根据权利要求22所述的映射和化简运算加速方法,其特征在于,接收所述数据流 的步骤中,生成一个以上的客户机端信道连接器,并利用所述传送信道信息构建所述客户 机端信道连接器和所述映射运算加速器端生成的服务器端信道连接器之间的信道连接,由 此从所述映射运算加速器接收所述数据流。
25. 根据权利要求24所述的映射和化简运算加速方法,其特征在于,在执行接收所述 数据流的步骤之后,还包括步骤:在所述化简运算加速器中,向所述化简运算加速器发送信 道连接解除请求, 其中,所述信道连接解除请求包括所述化简运算加速器和所述映射运算加速器之间构 建的信道连接数量。
26. 根据权利要求25所述的映射和化简运算加速方法,其特征在于,接收到所述信道 连接解除请求的所述映射运算加速器在从所述化简运算加速器接收到与接收到的所述信 道连接数量相等的连接解除消息时,向所述化简运算加速器发送关于所述信道连接解除请 求的响应,并解除与所述化简运算加速器的信道连接。
27. -种装置,该装置包括存储有能够在计算机上执行的程序代码的存储器以及利用 所述存储器执行所述程序代码的处理器, 所述程序代码用于执行如下过程: 将执行所述映射运算之后生成的多个数据块在所述存储器内进行合并而生成数据流, 并生成用于传送所述数据流的传送信道; 通过所述传送信道收发所述数据流; 在所述存储器内分割通过传送信道接收的数据流而复原多个数据块,并将复原的所述 多个数据块提供给所述化简运算。
【文档编号】G06F17/10GK104216865SQ201310381432
【公开日】2014年12月17日 申请日期:2013年8月28日 优先权日:2013年5月31日
【发明者】金镇喆 申请人:三星Sds株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1