提高OPENFABRICS环境中的吞吐量制造技术

技术编号:20596303 阅读:20 留言:0更新日期:2019-03-16 11:56
本文公开了用于提高OpenFabrics和远程直接存储器存取(RDMA)计算环境中的吞吐量的系统、方法和过程。接收数据和标头。标识要在其中写入数据和标头的缓冲区。基于每个缓冲区的大小、数据的页面边界对齐以及标头的标头对齐来确定用于数据和标头的放置信息。使用放置信息将数据和标头写入缓冲区。在此类计算环境中,可以通过在倒数第二缓冲区中将数据写在页面边界上并且将标头写在标头边界上来提高吞吐量。

Improving throughput in OPENFABRICS environment

This paper discloses systems, methods and processes for improving throughput in OpenFabrics and RDMA computing environments. Receive data and headers. Identify the buffer in which you want to write data and headers. The placement information for data and headers is determined based on the size of each buffer, page boundary alignment of data, and header alignment of headers. Use placement information to write data and headers to the buffer. In such computing environments, throughput can be improved by writing data on page boundaries in the penultimate buffer and headers on header boundaries.

【技术实现步骤摘要】
【国外来华专利技术】提高OPENFABRICS环境中的吞吐量
本公开涉及吞吐量。具体地讲,本公开涉及提高OpenFabrics计算环境中的吞吐量。相关技术描述OpenFabricsEnterpriseDistribution(OFEDTM)是用于远程直接存储器存取(RDMA)和内核旁路应用程序的开源计算技术。OFED可以在需要高效网络、存储连接和并行计算的计算环境中使用。OFED提供内核级驱动器、RDMA发送/接收操作、并行消息传递(MPI)服务、操作系统(OS)的内核旁路以及内核和用户级应用程序编程接口(API)。因此,OFED可用于需要高效计算、线速消息传递、微秒延迟以及存储和文件系统的快速输入/输出(I/O)的应用程序。RDMA涉及从一个计算系统的存储器进入另一计算系统的存储器的直接存储器存取(DMA),而不涉及计算系统的OS。除其他功能之外,RDMA还提供远程直接存储器存取、异步工作队列和内核旁路。RDMA实现了增加的吞吐量以及低延迟。OFEDAPI可以接受输入参数(例如,以标头和一个或多个数据分组的形式)。因为标头通常较小(例如,与数据相比),因此合并数据和标头以使RDMA写入的数量最小化是有效的。然而,合并数据和标头同时保持数据页面边界对齐可能引起线上浪费(例如,通过网络发送或传送的数据的量)。
技术实现思路
本文公开了用于提高OpenFabrics计算环境中的吞吐量的方法、系统和过程。一种这样的方法涉及接收数据和标头,以及标识要在其中写入数据和标头的缓冲区。至少部分地基于每个缓冲区的大小、数据的页面边界对齐以及标头的标头对齐来确定用于数据和标头的放置信息。然后,使用放置信息来将数据和标头写入一个或多个缓冲区。在此示例中,将数据写在页面边界上,并且将标头写在标头边界上。在某些实施方案中,使用放置信息导致:利用最小数量的缓冲区;以及当数据被写入最小数量的缓冲区时,该数据是页面边界对齐的;并且使线上浪费最少(或为零)。放置信息包括用于将数据和标头写入倒数第二缓冲区的指令。在一些实施方案中,通过基于放置信息将包含在多个源缓冲区中的标头和数据映射到一个(或多个)目标缓冲区来将标头和数据合并(组合)到远程直接存储器存取(RDMA)写入中。将RDMA写入(其包括并伴有包含元数据的32位数据空间)连同放置信息一起发送或传输到目标。在其他实施方案中,如果数据不能在最小数量的缓冲区中页面边界对齐,则可以选择一个或多个附加缓冲区。在此示例中,缓冲区包括多个目标缓冲区,并且最小数量的缓冲区包括一个或多个目标缓冲区。以上内容是概述,因此必然包含对细节的简化、概括和省略;因此本领域的技术人员将会理解,该概述仅是说明性的,并不意图以任何方式进行限制。如由权利要求单独定义的那样,本公开的其他方面、特征和优点将在以下阐述的非限制性详细描述中变得显而易见。附图说明通过参考附图,可以更好地理解本公开,并且其多个目的和特征对于本领域的技术人员而言是显而易见的。图1是根据本公开的一个实施方案的OFED计算系统的框图。图2是根据本公开的一个实施方案的实现OFEDAPI的源计算系统的框图。图3A是根据本公开的一个实施方案的未合并的数据单元和标头的框图。图3B是根据本公开的一个实施方案的在缓冲区的起点写入的标头的框图。图3C是根据本公开的一个实施方案的紧接在数据之后写入的标头的框图。图3D是根据本公开的一个实施方案的由OFEDAPI提供的32位数据空间的框图。图3E是根据本公开的一个实施方案的在对齐的末尾写入的标头的框图。图4A是根据本公开的一个实施方案的在倒数第二缓冲区中在对齐的末尾写入的标头的框图。图4B是根据本公开的一个实施方案的在不存在附加缓冲区的情况下在对齐的末尾写入的标头的框图。图4C是根据本公开的一个实施方案的写入倒数第二缓冲区的标头的框图。图5A是示出根据本公开的一个实施方案的用于用数据和标头填充缓冲区的过程的流程图。图5B是示出根据本公开的一个实施方案的用于组合标头和数据的过程的流程图。图6是示出根据本公开的一个实施方案的用于确定标头和数据的放置/映射信息的过程的流程图。图7是示出根据本公开的一个实施方案的用于使用RDMA生成和传输数据和标头的过程的流程图。图8是根据本公开的一个实施方案的计算系统的框图,示出了如何在软件中实现某些模块。图9是根据本公开的一个实施方案的联网系统的框图,示出了各种设备可如何经由网络进行通信。虽然本公开容许各种修改,但是在附图和详细描述中作为示例提供了本公开的特定实施方案。附图和详细描述并非旨在将本公开限制于所公开的特定形式。相反,意图是覆盖落入由所附权利要求书定义的本公开的精神和范围内的所有修改、等同物和替代物。具体实施方式介绍在某些计算环境中,两个(或更多个)计算系统之间的数据传送可以涉及将数据和伴随标头(以及其他元数据)从一个计算系统的存储器(例如,从多个源缓冲区)直接发送到另一计算系统的存储器(例如,到一个或多个目标缓冲区)。因为标头通常较小(例如,1k),因此仅执行写入操作以将标头从一个计算系统的存储器传送到另一计算系统的存储器是低效的,更不用说是资源密集型的。因此,合并(或组合)数据和标头以减少所执行的写入操作的数量并提高应用程序吞吐量可能是有利的。作为合并的一部分,可以将包含在多个源缓冲区中的数据和标头映射到单个目标缓冲区(或多个目标缓冲区)。然后,作为单个写入操作的一部分,可以将该放置(或映射)信息连同数据和标头一起从源缓冲区传输到一个或多个目标缓冲区。其中可以有利地使用上述方法的系统的示例是实现OpenFabricsEnterpriseDistribution(OFEDTM)(或OpenFabricsSoftware(OFS))的系统。OFED是用于远程直接存储器存取(RDMA)和内核旁路应用程序的开源软件。OFED可以在需要高效网络、存储连接和并行计算的计算环境中实现。除其他特征之外,OFED还提供内核级驱动器、面向信道的RDMA和发送/接收操作、操作系统(OS)的内核旁路以及内核和用户级应用程序编程接口(API)(例如,用于RDMA传送的OFEDAPI)。OFED还提供用于并行消息传递(MPI)、套接字数据交换(例如,会话描述协议(SDP))、网络附加存储(NAS)和存储区域网络(SAN)存储以及文件系统的服务。RDMA涉及从一个计算系统(例如,源计算系统)的存储器进入另一计算系统(例如,目标计算系统)的存储器的直接存储器存取(DMA),而不涉及目标计算系统的OS。例如,源计算系统的网络适配器可以向目标计算系统的网络适配器发送消息,所述消息允许目标计算系统的网络适配器向(或从)目标计算系统直接存取数据。RDMA中的消息可以包含至少两种类型的消息。第一类型为RDMA写入。RDMA写入包括地址和要在该地址处放置(或写入)的数据。RDMA写入允许接收RDMA写入的网络适配器在指定地址处写入(或放置)所提供的数据。第二类型为RDMA读出。RDMA读出包括地址和长度。RDMA读出允许网络适配器生成回复,该网络适配器接收RDMA读出,该回复指示在所请求的地址处发送回数据。在RDMA中,这两种类型的消息都为“单边的”,所述消息由接收它们的网络适配器处理,而不涉及计算系统上的接收消息的中央本文档来自技高网...

【技术保护点】
1.一种方法,包括:接收数据和标头;标识要在其中写入所述数据和所述标头的多个缓冲区;确定用于所述数据和所述标头的放置信息,其中所述放置信息至少部分地基于以下项来确定:所述多个缓冲区中的每个缓冲区的大小,所述数据的页面边界对齐,以及所述标头的标头对齐;并且将所述数据和所述标头写入所述多个缓冲区,其中所述数据的所述写入使用所述放置信息,所述数据被写在页面边界上,并且所述标头被写在标头边界上。

【技术特征摘要】
【国外来华专利技术】2016.05.31 US 15/1684491.一种方法,包括:接收数据和标头;标识要在其中写入所述数据和所述标头的多个缓冲区;确定用于所述数据和所述标头的放置信息,其中所述放置信息至少部分地基于以下项来确定:所述多个缓冲区中的每个缓冲区的大小,所述数据的页面边界对齐,以及所述标头的标头对齐;并且将所述数据和所述标头写入所述多个缓冲区,其中所述数据的所述写入使用所述放置信息,所述数据被写在页面边界上,并且所述标头被写在标头边界上。2.根据权利要求1所述的方法,其中所述使用所述放置信息导致利用所述多个缓冲区中的最小数量的缓冲区,当所述数据被写入所述最小数量的缓冲区时,所述数据是页面边界对齐的,并且使线上浪费最小化。3.根据权利要求1所述的方法,其中所述放置信息包括用于将所述数据和所述标头写入倒数第二缓冲区的指令。4.根据权利要求1所述的方法,还包括:通过基于所述放置信息将包含在多个源缓冲区中的所述标头和所述数据映射到所述多个缓冲区来将所述标头和所述数据合并到远程直接存储器存取(RDMA)写入中。5.根据权利要求1所述的方法,还包括:如果所述数据不能在所述最小数量的缓冲区中页面边界对齐,则选择所述多个缓冲区中的一个或多个附加缓冲区。6.根据权利要求1所述的方法,其中所述多个缓冲区包括多个目标缓冲区,并且所述最小数量的缓冲区包括一个或多个目标缓冲区。7.根据权利要求4所述的方法,其中所述RDMA写入包括32位数据空间。8.根据权利要求7所述的方法,还包括:将所述标头的偏移包括在所述32位数据空间中。9.一种非暂态计算机可读存储介质(CRM),所述非暂态CRM存储程序指令,所述程序指令能够执行以:接收数据和标头;标识要在其中写入所述数据和所述标头的多个缓冲区;确定用于所述数据和所述标头的放置信息,其中所述放置信息至少部分地基于以下项来确定:所述多个缓冲区中的每个缓冲区的大小,所述数据的页面边界对齐,以及所述标头的标头对齐;并且将所述数据和所述标头写入所述多个缓冲区,其中所述数据的所述写入使用所述放置信息,所述数据被写在页面边界上,并且所述标头被写在标头边界上。10.根据权利要求9所述的非暂态CRM,其中:所述使用所述放置信息导致利用所述多个缓冲区中的最小数量的缓冲区,当所述数据被写入所述最小数量的缓冲区时,所述数据是页面边界对齐的,并且使线上浪费最小化。11.根...

【专利技术属性】
技术研发人员:A·乔希A·托利
申请(专利权)人:华睿泰科技有限责任公司
类型:发明
国别省市:美国,US

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

1