CN102185672A - 进程间通信方法和高速网络设备 - Google Patents
进程间通信方法和高速网络设备 Download PDFInfo
- Publication number
- CN102185672A CN102185672A CN2011100500386A CN201110050038A CN102185672A CN 102185672 A CN102185672 A CN 102185672A CN 2011100500386 A CN2011100500386 A CN 2011100500386A CN 201110050038 A CN201110050038 A CN 201110050038A CN 102185672 A CN102185672 A CN 102185672A
- Authority
- CN
- China
- Prior art keywords
- interprocess communication
- speed network
- communication packet
- inter
- network appliance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种进程间通信方法和高速网络设备。涉及计算机领域;解决了进程间通信任务影响CPU运算效率的问题。该方法包括:高速网络设备在检测到进程间通信数据包时,对所述进程间通信数据包进行高速网络协议堆栈处理;所述高速网络设备向所述进程间通信数据包的目的处理器内存发送该进程间通信数据包。本发明提供的技术方案适用于超级计算机,实现了不占用CPU运算资源的进程间通信。
Description
技术领域
本发明涉计算机领域,尤其涉及一种进程间通信方法和高速网络设备。
背景技术
为了满足科学研究和工程模拟计算,超级计算机正在不断发展。超级计算机的规模从仅仅数千个处理器核心发展到数十万个处理器核心,新的性能和扩展性挑战随之诞生。在过去,并行计算应用的性能调优,可以通过分别优化其算法、通讯和计算等方面较轻松的完成。但是,随着采用高速网络的更大规模高性能计算集群的涌现,这些问题混杂在一起,必须综合起来解决。
进程间通讯对基于高速网络的超级计算机的扩展性有重要影响,这是因为超级计算应用的操作,如发送周遭初始输入数据的网络广播,减少多处整合数据及整体同步的障碍,会经常用到进程间通信。
进程间通信尤其是其中的整体通信操作,负责整合***中的全部进程/节点,因此对进程间通信必须尽快和高效地处理。目前进程间通信的扩展性处理得并不好,受制于***噪音,处理网络协议也占据过多CPU处理时间,导致超级计算机的规模扩大后,其运算效率却无法得到相应提升。
发明内容
本发明提供了一种进程间通信方法和高速网络设备,解决了进程间通信任务影响CPU运算效率的问题。
一种进程间通信方法,包括:
高速网络设备在检测到进程间通信数据包时,对所述进程间通信数据包进行高速网络协议堆栈处理;
所述高速网络设备向所述进程间通信数据包的目的处理器内存发送该进程间通信数据包。
优选的,所述高速网络设备在检测到进程间通信数据包时,对所述进程间通信数据包进行高速网络协议堆栈处理的步骤之前还包括:
所述高速网络设备卸载全部经由该高速网络设备发送的数据包,从中进行进程间通信数据包的检测。
优选的,所述高速网络设备向所述进程间通信数据包的目的处理器内存发送该进程间通信数据包的步骤之后,还包括:
所述目的处理器内存上的缓存与所述进程间通信数据包直接交换数据。
本发明还提供了一种高速网络设备,包括:
数据包处理模块,用于在检测到进程间通信数据包时,对所述进程间通信数据包进行高速网络协议堆栈处理;
数据发送模块,用于向所述进程间通信数据包的目的处理器内存发送该进程间通信数据包。
优选的,所述高速网络设备还包括:
数据包检测模块,用于卸载全部经由所述高速网络设备发送的数据包,从中进行进程间通信数据包的检测。
优选的,所述数据发送模块具体为高速网络适配器或交换模块。
本发明提供了一种进程间通信方法和高速网络设备,高速网络设备在检测到进程间通信数据包时,对所述进程间通信数据包进行高速网络协议堆栈处理,所述高速网络设备向所述进程间通信数据包的目的处理器内存发送该进程间通信数据包,解决了进程间通信任务影响CPU运算效率的间题。
附图说明
图1为***噪音对高速网络的进程间通信操作的影响示意图;
图2为本发明的实施例一提供的一种高速网络设备的结构示意图;
图3为本发明的实施例一提供的又一种高速网络设备的结构示意图;
图4为本发明的实施例二提供的一种进程间通信方法的流程图。
具体实施方式
操作***噪音的存在是扩展大型应用的主要障碍之一。CPU必须同时处理计算和通信任务(主要是协议处理),一般是串行处理。在多数服务器上,IO操作要求数据在CPU的控制下,从入口被映射到IO内存上,然后再传输到用户空间内存。同时需要服务器挂起活动线程,进行背景转换来处理通讯线程,以保证及时回应其他进程。进程间操作会对CPU运作时间造成显著损耗,因此***噪音会对CPU任务的处理时间造成额外的延迟。***噪音对高速网络的进程间通信操作的影响如图1所示,假设一个超级计算机有8个节点,每一横排代表***运行的一个阶段,箭头代表信息通讯方向。在节点1的***噪音造成了预期信息到达节点2的延迟。这不仅仅造成节点1的执行时间延长,而且间接提升了3,5,7节点的执行时间,并因此影响了整体应用的运行时间,降低了整体***的性能。
为了解决上述问题,本发明的实施例提供了一种进程间通信方法和高速网络设备。下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
首先结合附图,对本发明的实施例一进行说明。
本发明实施例提供了一种高速网络设备,其结构如图2所示,包括:
数据包处理模块201,用于在检测到进程间通信数据包时,对所述进程间通信数据包进行高速网络协议堆栈处理;
数据发送模块202,用于向所述进程间通信数据包的目的处理器内存发送该进程间通信数据包。
进一步,如图3所示,本发明实施例还提供了一种高速网络设备,在图2所示高速网络设备的基础上,还包括:
数据包检测模块203,用于卸载全部经由所述高速网络设备发送的数据包,从中进行进程间通信数据包的检测。
优选的,所述数据发送模块202具体为高速网络适配器或交换模块。
其中,数据包处理模块201和数据包检测模块203可集成于一芯片或通过ASIC实现。
下面结合附图,对本发明的实施例二进行说明。
本发明实施例提供了一种进程间通信方法,利用具通信卸载功能(如芯片或ASIC)的高速网络适配器和交换模块,将管理进程间通信的任务从CPU转移到高速网络,从而减轻了CPU管理通讯这一部分的工作负担,允许进程间通信和计算重叠/并行的增加。
结合本发明实施例一提供的高速网络设备,使用本发明的实施例提供的进程间通信方法完成进程间通信的流程如图4所示,包括:
步骤401、所述高速网络设备卸载全部经由该高速网络设备发送的数据包,从中进行进程间通信数据包的检测;
本发明实施例所涉及的超级计算机均为小型机或大型机,在该超级计算机内又包含多台设备,各设备均有一独立的网络模块。本发明实施例中,该网络模块即为高速网络设备。
本发明中,高速网络设备通过其数据包卸载功能,将发往其对应的设备的数据包全部卸载,并对卸载下来的数据包进行检测。具体的,主要进行数据校验,并对属于同一应用程序的不同进程间通信进行标注,以便于在接收端进行分析和处理。
步骤402、高速网络设备在检测到进程间通信数据包时,对所述进程间通信数据包进行高速网络协议堆栈处理;
通常意义上说网络协议栈是软件上用于处理网络协议的堆栈,高速网络通常指带宽在1000Mb/s以上的网络。本步骤中,网络协议栈即对通信数据进行网络协议处理,包括解包,分析头地址等等过程。
与协议相关的数据包处理(如本步骤中的高速网络协议堆栈处理)只占高速网络总开销的35%到40%,操作***的开销和中间缓冲复制等等占用剩下的开销。即由高速网络中的设备完成进程间通信的处理并不会影响正常的其他通信业务。
步骤403、所述高速网络设备向所述进程间通信数据包的目的处理器内存发送该进程间通信数据包;
本步骤中,高速网络设备在处理完成后,将进程间通信数据包根据其目的地址,直接向相应的处理器内存发送。
步骤404、所述目的处理器内存上的缓存与所述进程间通信数据包直接交换数据;
本步骤中,具通信卸载功能的高速网络设备接收到通信数据包后,将其卸载到本地FLASH缓存中,并利用自身处理模块如芯片或ASIC等对其进行协议堆栈处理,将处理后的数据直接与本机内存进行交互。
将数据包直接发往处理器的内存,与应用软件在内存上的缓存直接交换数据,可以消减缓存开销,避免CPU中断等等,提高CPU利用率,从而增强基于高速网络的超级计算机的扩展性和计算效率。
本发明的实施例提供了一种进程间通信方法和高速网络设备,高速网络设备在检测到进程间通信数据包时,对所述进程间通信数据包进行高速网络协议堆栈处理,所述高速网络设备向所述进程间通信数据包的目的处理器内存发送该进程间通信数据包,解决了进程间通信任务影响CPU运算效率的问题。将高速网络协议堆栈处理转移到高速网络中来处理,能够令***噪音的影响最小化,且保证了超级计算机最大的扩展性,减少CPU损耗。进一步,通信卸载引擎负责CPU的部分运算,达成了通信和计算复用(同时进行)。
本领域普通技术人员可以理解上述实施例的全部或部分步骤可以使用计算机程序流程来实现,所述计算机程序可以存储于一计算机可读存储介质中,所述计算机程序在相应的硬件平台上(如***、设备、装置、器件等)执行,在执行时,包括方法实施例的步骤之一或其组合。
可选地,上述实施例的全部或部分步骤也可以使用集成电路来实现,这些步骤可以被分别制作成一个个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
上述实施例中的各装置/功能模块/功能单元可以采用通用的计算装置来实现,它们可以集中在单个的计算装置上,也可以分布在多个计算装置所组成的网络上。
上述实施例中的各装置/功能模块/功能单元以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。上述提到的计算机可读取存储介质可以是只读存储器,磁盘或光盘等。
任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求所述的保护范围为准。
Claims (6)
1.一种进程间通信方法,其特征在于,包括:
高速网络设备在检测到进程间通信数据包时,对所述进程间通信数据包进行高速网络协议堆栈处理;
所述高速网络设备向所述进程间通信数据包的目的处理器内存发送该进程间通信数据包。
2.根据权利要求1所述的进程间通信方法,其特征在于,所述高速网络设备在检测到进程间通信数据包时,对所述进程间通信数据包进行高速网络协议堆栈处理的步骤之前还包括:
所述高速网络设备卸载全部经由该高速网络设备发送的数据包,从中进行进程间通信数据包的检测。
3.根据权利要求1所述的进程间通信方法,其特征在于,所述高速网络设备向所述进程间通信数据包的目的处理器内存发送该进程间通信数据包的步骤之后,还包括:
所述目的处理器内存上的缓存与所述进程间通信数据包直接交换数据。
4.一种高速网络设备,其特征在于,包括:
数据包处理模块,用于在检测到进程间通信数据包时,对所述进程间通信数据包进行高速网络协议堆栈处理;
数据发送模块,用于向所述进程间通信数据包的目的处理器内存发送该进程间通信数据包。
5.根据权利要求4所述的高速网络设备,其特征在于,该高速网络设备还包括:
数据包检测模块,用于卸载全部经由所述高速网络设备发送的数据包,从中进行进程间通信数据包的检测。
6.根据权利要求4所述的高速网络设备,其特征在于,所述数据发送模块具体为高速网络适配器或交换模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011100500386A CN102185672A (zh) | 2011-03-02 | 2011-03-02 | 进程间通信方法和高速网络设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011100500386A CN102185672A (zh) | 2011-03-02 | 2011-03-02 | 进程间通信方法和高速网络设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102185672A true CN102185672A (zh) | 2011-09-14 |
Family
ID=44571748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011100500386A Pending CN102185672A (zh) | 2011-03-02 | 2011-03-02 | 进程间通信方法和高速网络设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102185672A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023093065A1 (zh) * | 2021-11-25 | 2023-06-01 | 华为技术有限公司 | 数据传输方法、计算设备及计算*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101247266A (zh) * | 2008-03-21 | 2008-08-20 | 深圳国人通信有限公司 | 以太网中进行数据处理的方法 |
CN101448018A (zh) * | 2008-12-26 | 2009-06-03 | 中兴通讯股份有限公司 | 进程间通信方法和装置 |
CN101645832A (zh) * | 2009-05-07 | 2010-02-10 | 曙光信息产业(北京)有限公司 | 一种基于fpga的虚拟机网络数据包处理方法 |
-
2011
- 2011-03-02 CN CN2011100500386A patent/CN102185672A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101247266A (zh) * | 2008-03-21 | 2008-08-20 | 深圳国人通信有限公司 | 以太网中进行数据处理的方法 |
CN101448018A (zh) * | 2008-12-26 | 2009-06-03 | 中兴通讯股份有限公司 | 进程间通信方法和装置 |
CN101645832A (zh) * | 2009-05-07 | 2010-02-10 | 曙光信息产业(北京)有限公司 | 一种基于fpga的虚拟机网络数据包处理方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023093065A1 (zh) * | 2021-11-25 | 2023-06-01 | 华为技术有限公司 | 数据传输方法、计算设备及计算*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10346326B2 (en) | Adaptive interrupt moderation | |
CN108200086B (zh) | 一种高速网络数据包过滤装置 | |
US20160378570A1 (en) | Techniques for Offloading Computational Tasks between Nodes | |
US11750699B2 (en) | Small message aggregation | |
CN113992588B (zh) | 数据传输方法、装置、电子设备及可读存储介质 | |
US20160087894A1 (en) | Method and system for changing path and controller thereof | |
CN110519079B (zh) | 一种数据转发方法、装置、网板、网络设备和存储介质 | |
WO2011142227A1 (ja) | コンピュータ・システム、方法及びプログラム | |
US8203964B2 (en) | Asynchronous event notification | |
CN101527719B (zh) | 一种tcp数据流并行分析方法 | |
CN103368872A (zh) | 数据包转发***和方法 | |
CN111209112A (zh) | 一种异常处理方法及装置 | |
CN102185672A (zh) | 进程间通信方法和高速网络设备 | |
CN114189368B (zh) | 一种多推理引擎兼容的实时流量检测***和方法 | |
CN113395183B (zh) | 网络仿真平台vlan互联的虚拟节点调度方法与*** | |
CN115134304A (zh) | 云计算数据中心避免数据包乱序的自适应负载均衡方法 | |
KR101014977B1 (ko) | 링크통합 기능에서 로드밸런싱 방법 | |
CN103532758A (zh) | 适合下一代传输、数据设备融合的配置处理方法 | |
US20100080132A1 (en) | Dynamic configuration of potential links between processing elements | |
US10652162B2 (en) | Scalable packet processing | |
US20190391856A1 (en) | Synchronization of multiple queues | |
CN107113244B (zh) | 一种数据转发的方法、装置和*** | |
CN114039894B (zh) | 一种基于矢量包的网络性能优化方法、***、设备、介质 | |
CN117527689B (zh) | 流表卸载方法、***、设备、集群以及介质 | |
Luo et al. | Design and implementation of a scalable sdn-of controller cluster |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110914 |