用于多核处理器的数据分组处理方法转让专利

申请号 : CN200880016822.1

文献号 : CN101689158A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : N·马哈德万A·Y·谢诺伊S·拉克什米纳拉亚

申请人 : 惠普发展公司有限责任合伙企业

摘要 :

一种用于在网络服务器系统中处理数据分组的方法,该系统包括至少一个具有多个核的中央处理器单元(CPU);以及网络接口,该网络接口用于在网络和指定CPU核之间形成到该网络的连接,以使得对于从该网络接收到的所有数据分组,在该指定CPU核中创建中断以便于对接收到的数据分组的处理。从该网络接收到的每一个数据分组都与基于处理器负载来选择的CPU核中所建立的应用程序连接相关联,并且在与该应用程序连接相关联的CPU核上创建用于处理该数据分组的中断线程。被发送到网络的每一个数据分组都与其中执行应用程序的CPU核或基于处理器负载来选择的替换CPU核中所建立的应用程序连接相关联。在应用程序连接在替换CPU核中建立的情况下,在与该连接相关联的CPU核上创建用于处理该数据分组的中断线程。

权利要求 :

1.一种在多核处理器平台中处理从网络接收到的数据分组的方法,所述 方法包括以下步骤:在指定中央处理器单元(CPU)核中从网络接口接收中断以便处理从所述 网络接收到的数据分组;

将所述数据分组与基于处理器负载来选择的中央处理器单元(CPU)核中 所建立的应用程序连接相关联;以及在与所述应用程序连接相关联的CPU核上创建中断线程以便于处理所接 收到的数据分组。

2.如权利要求1所述的方法,其特征在于,还包括以下步骤:

选择要在其中建立所述应用程序连接的CPU核;以及

在所选CPU核中建立所述应用程序连接。

3.如权利要求2所述的方法,其特征在于,所述CPU核基于每一个CPU 核的处理器中断负载来选择。

4.如权利要求3所述的方法,其特征在于,所述CPU核通过优先选择与 执行与所接收到的分组相关的操作的CPU核共享高速缓冲存储器的CPU核来 选择。

5.如权利要求3所述的方法,其特征在于,所述多核处理器适用于启用 超线程,其中每一个CPU核仿真两个虚拟CPU以使得能够在该CPU核的每 一个虚拟CPU中执行联合线程,并且其中用于建立所述应用程序连接的虚拟 CPU在通过优先选择非联合线程CPU核来选择的CPU核中选择。

6.如权利要求3所述的方法,其特征在于,所述处理器中断负载由操作 系统调度功能来监控。

7.如权利要求2所述的方法,其特征在于,还包括将所述应用程序的亲 和性与所选CPU核相关联的步骤。

8.如权利要求2所述的方法,其特征在于,所述选择CPU核以及建立连 接的步骤在网络栈的数据链路层执行。

9.一种处理由在多核处理器平台的一个中央处理器单元(CPU)核中执 行的应用程序发送到网络的数据分组的方法,所述方法包括以下步骤:确定是使用执行所述应用程序的CPU核还是使用替换中央处理器单元 (CPU)核来执行对传出数据分组的处理; 并且在确定使用替换CPU核的情况下:基于处理器负载来选择用于传出分组处理的替换CPU核;

在所选替换CPU核中建立应用程序连接;

将所述数据分组与所述应用程序连接相关联;以及

在所选替换CPU核上创建中断线程以便于处理到所述网络接口来通过所 述网络传输的数据分组。

10.权利要求9所述的方法,其特征在于,所述CPU核基于每一个CPU 核的处理器中断负载来选择。

11.如权利要求10所述的方法,其特征在于,所述CPU核通过优先选 择与执行与所接收到的分组相关的操作的CPU核共享高速缓冲存储器的CPU 核来选择。

12.如权利要求10所述的方法,其特征在于,所述多核处理器适用于 启用超线程,其中每一个CPU核仿真两个虚拟CPU以使得能够在该CPU核 的每一个虚拟CPU中执行联合线程,并且其中用于建立所述应用程序连接的 虚拟CPU在通过优先选择非联合线程CPU核来选择的CPU核中选择。

13.如权利要求10所述的方法,其特征在于,所述处理器中断负载由 操作系统调度功能来监控。

14.如权利要求9所述的方法,其特征在于,所述选择替换CPU核以 及建立应用程序连接的步骤在网络栈的会话层执行。

15.一种网络服务器系统,包括:

至少一个具有多个核的中央处理器单元(CPU);以及

网络接口,其用于连接到网络,并适用于在指定CPU核中创建中断以便 处理从所述网络接收到的每一个数据分组, 其中:从所述网络接收到的每一个数据分组都与所选CPU核中所建立的应用程 序连接相关联;

所述CPU核基于处理器负载来选择;并且

在与所述应用程序连接相关联的CPU核上创建中断线程以便于处理所述 数据分组。

16.如权利要求15所述的网络服务器系统,其特征在于,所述CPU核 基于每一个CPU核的处理器中断负载来选择。

17.如权利要求16所述的网络服务器系统,其特征在于,所述CPU核 通过优先选择与执行与所接收到的分组相关的操作的CPU核共享高速缓冲存 储器的CPU核来选择。

18.权利要求16所述的网络服务器系统,其特征在于,每一个CPU核 的处理器中断负载由操作系统调度器功能来监控。

19.如权利要求16所述的网络服务器系统,其特征在于,所述多核处 理器适用于启用超线程,其中每一个CPU核仿真两个虚拟CPU以使得能够在 该CPU核的每一个虚拟CPU中执行联合线程,并且其中用于建立所述应用程 序连接的虚拟CPU在通过优先选择非联合线程CPU核来选择的CPU核中选 择。

20.如权利要求15所述的网络服务器系统,其特征在于,对于从所述 网络接收到的数据分组,所述处理器适用于在网络栈的数据链路层选择CPU 核并建立所述应用程序连接。

21.一种网络服务器系统,包括:

至少一个具有多个核的中央处理器单元(CPU);以及

网络接口,其用于形成到网络的连接,并适用于在指定CPU核中创建中 断以便处理从所述网络接收到的每一个数据分组,并且还被修改以使得每一个 CPU核都可访问用于将数据分组传送到所述网络的网络接口, 其中:被发送到所述网络的每一个数据分组都与其中执行所述应用程序的CPU 核或基于处理器负载来选择的替换CPU核中所建立的应用程序连接相关联; 并且在所述应用程序连接在替换CPU核中建立的情况下,在与所述应用程序 连接相关联的CPU核上创建中断线程以便处理所述数据分组。

22.如权利要求21所述的网络服务器系统,其特征在于,所述CPU核 基于每一个CPU核的处理器中断负载来选择。

23.如权利要求22所述的网络服务器系统,其特征在于,所述CPU核 通过优先选择与执行与所接收到的分组相关的操作的CPU核共享高速缓冲存 储器的CPU核来选择。

24.如权利要求22所述的网络服务器系统,其特征在于,每一个CPU 核的处理器中断负载由操作系统调度器功能来监控。

25.如权利要求22所述的网络服务器系统,其特征在于,所述多核处 理器适用于启用超线程,其中每一个CPU核仿真两个虚拟CPU以使得能够在 该CPU核的每一个虚拟CPU中执行联合线程,并且其中用于建立所述应用程 序连接的虚拟CPU在通过优先选择非联合线程CPU核选择的CPU核中选择。

26.如权利要求21所述的网络服务器系统,其特征在于,对于被发送 到所述网络的数据分组,所述处理器适用于在网络栈的会话层选择CPU核并 建立所述应用程序连接。

说明书 :

介绍:

已知的多核处理器平台包括一个或多个中央处理器单元(CPU),这些 CPU各自可具有共享存储器和I/O(输入和输出)资源的多个处理核。该多核 体系结构使得能够在不止一个核上同时执行多个进程或“线程”。已经开发出 这些多核处理器以增加胜过单核处理器的平台处理容量。

在多核对称多处理处理(SMP)体系结构中,共享系统存储器以使得任一 个处理器核可操作任一任务而不管用于该任务的数据在系统存储器中驻留在 哪里。多核系统利用在一个CPU的多个核之间共享的高速缓存存储器也是已 知的。

多核处理器平台可在诸如以太网局域网(LAN)等网络中用作服务器。服 务器体系结构可包括多个处理器,然而,这些处理器仅使用连接到一个处理器 核的一个LAN接口或网络接口卡(NIC)来物理地连接到网络。该网络接口在 从网络接收分组时只可中断一个处理器。接收到的分组然后通过中断的核中的 网络栈来进行处理直到该分组到达应用程序。由此,对于所有从网络接收到的 数据使用连接该网络的处理器核。在高速TCP/IP应用程序或任何网络栈应用 程序和诸如千兆位和万兆位以太网网络等高带宽网络的情况下,全服务器处理 容量可能由于网络和服务器之间的数据吞吐量受到连接该网络的处理器核的 饱和度的限制而无法实现。

当前克服该问题的解决方案要求服务器具备连接到更多处理器的更多网 络接口以便将网络接口处理负载分布在多个处理器上。该解决方案可提高服务 器和网络之间的吞吐量,但由于其需要附加网络接口卡而是低效的。该解决方 案还引入用于协调多个网络接口的额外开销。

另一建议的针对该问题的解决方案是通过网络接口将对入站数据的网络 栈操作重新分发给各个核。该解决方案需要LAN或网络接口和处理器操作系 统之间的互操作性。由此,需要修改网络接口和操作系统以实现这一解决方案, 因此该解决方案无法用标准的当前可得到的网络接口来实现。

存在对提高网络和具有多核处理器体系结构的服务器之间的吞吐量的服 务器体系结构的需求。

附图简述

现在将仅作为示例,参考所附附图描述本发明的各实施例,附图中:

图1示出了多核处理器体系结构的示例;

图2示出了根据本发明的一实施例的、通过多核处理器的网络栈来处理分 组的示例;

图3是示出选择处理器核并将分组处理移交给所选核的内核过程的流程 图;

图4示出了比较性测试示例1中所使用的常规多核处理器网络栈体系结构 测试模型;

图5示出了根据本发明的一实施例的、比较性测试示例1中所使用的多核 处理器网络栈体系结构;以及

图6是示出比较性测试示例1的结果的图。

详细描述

根据一实施例,提供了一种在多核处理器平台中处理从网络接收到数据分 组的方法,该方法包括以下步骤:

在指定中央处理器单元(CPU)核中从网络接口接收中断以便处理从网络 接收到的数据分组;

将该数据分组与基于处理器负载来选择的中央处理器单元(CPU)核中所 建立的应用程序连接相关联;以及

在与该应用程序连接相关联的CPU核上创建中断线程以便处理所接收到 的数据分组。

根据一实施例,提供了一种处理由在多核处理器平台的一个中央处理器单 元(CPU)核中执行的应用程序发送到网络的数据分组的方法,该方法包括以 下步骤:

确定是使用执行应用程序的CPU核还是使用替换中央处理器单元(CPU) 核来执行对数据分组的传出处理;

并且在确定使用替换CPU核的情况下:

基于处理器负载来选择用于传出分组处理的替换CPU核;

在所选替换CPU核中建立应用程序连接;

将数据分组与该应用程序连接相关联;以及

在所选替换CPU核上创建中断线程以便处理到网络接口来通过网络传输 的数据分组。

根据一实施例,提供了一种网络服务器系统,该系统包括至少一个具有多 个核的中央处理器单元(CPU)以及网络接口,该网络接口用于连接到网络, 并且适用于在指定CPU核中创建中断以便处理从该网络接收到的每一个数据 分组。从网络接收到的每一个数据分组都与基于处理器负载来选择的所选CPU 核中所建立的应用程序连接相关联。在与该应用程序连接相关联的CPU核上 创建用于处理数据分组的中断线程。

根据一实施例,提供了一种网络服务器系统,该系统包括至少一个具有多 个核的中央处理器单元(CPU)以及网络接口,该网络接口用于连接到网络, 并且适用于在指定CPU核中创建中断以便从该网络接收到的每一个数据分组, 并且还可被修改以使得每一个CPU核都可访问网络接口以便将数据分组传送 到网络。发送到网络的每一个数据分组都与其中执行应用程序的CPU核或基 于处理器负载来选择的替换CPU核中所建立的应用程序连接相关联。在应用 程序连接在替换CPU核中建立的情况下,在与该应用程序连接相关联的CPU 核上创建用于处理数据分组的中断线程。

本发明的各实施例提供了一种用于在多核处理器平台100中处理发往网 络110和从网络110接收到的分组以减少由于网络接口对于所有接收到的分组 中断一个CPU核而引起的对发往和来自网络110的数据的吞吐量的限制的方 法和系统。将接收到的分组与所选中央处理器单元(CPU)核中所建立的应用 程序连接相关联,其中该CPU核基于处理器负载来选择。然后在与该应用程 序连接相关联的CPU核上创建用于所接收到的分组的中断线程。这使得能够 将分组处理移交给除了网络接口中断的CPU核之外的核,其中存在或建立应 用程序连接以减少用于分组处理的连接网络接口的核中所使用的处理容量。

用于实现该方法的网络服务器系统的示例在图1中示出。系统100包括至 少一个中央处理器单元(CPU)120、122,这些CPU各自具有多个核130、131、 132、133,可任选地,一个处理器120中的核130、131具有共享高速缓存145 并且每一个核130、131都具有其自己相应的高速缓存140、141。对于对称多 处理(SMP),共享系统存储器160以使得任何处理器都可访问系统存储器160 中的任何数据。提供用于在服务器100和网络110之间形成连接的网络接口 150。网络接口150连接到预定CPU核130以使得将在该预定CPU核130中 创建中断以便处理从网络接收到的每一个数据分组。预定CPU核130基于处 理器负载来将从网络接收到的每一个数据分组分发给多个处理器核130、131、 132、133中的所选处理器核,在那里处理分组直到该分组到达目的地应用程序 170、171、172。

高速网络和接口的进步已导致以下情况:网络接口驱动程序能够比具有通 过网络栈来处理分组并将数据传递给目的地应用程序170、171、172的能力的 处理器更快地将分组传递给处理器。在其中网络接口150被编程为在接收到分 组后只中断一个处理器核130并且对该分组的所有进一步的处理在同一个核 130上发生直到该数据到达应用程序的SMP网络体系结构中这是个问题。在这 种情况下,从网络接口150接收中断的CPU核130成为瓶颈,从而限制了到 应用程序的数据吞吐量。

本发明的实施例通过在网络栈接收到分组时解除被网络接口150中断的 CPU核130进行分组处理的负担并且并行化网络栈操作来缓解该问题。由此, 对接收到的分组的处理可被分发给其他CPU核131、132、133以使得网络接 口核130能够不再从网络接口150接收更多数据。

用于分发每一个接收到的分组230、231、232的过程在图2中示出。最初 在连接网络接口150的CPU核130的网络栈210中处理从网络接收到的每一 个分组然后将所接收到的分组与所选CPU核130、131、132中的对于目的地 应用程序220、221、222的应用程序连接240、241、242相关联。在与应用程 序连接相关联的CPU核上创建中断以便通过各个核130、131、132的网络栈 210、211、212来处理所接收到的分组。

当网络接口150从网络110接收到每一个分组时,生成中断以开始通过连 接网络接口的CPU核130的网络栈210来处理所接收到的分组。

将该分组与所选CPU核中的应用程序连接相关联并且在接收到该分组后 尽可能快地在网络栈的底部将对该分组的处理移交给所选CPU核。

将分组与所选CPU核中的应用程序相关联并移交分组处理的过程在图3 的流程图中示出。例如,执行图3的过程以便进行数据传输、数据接收、新传 出连接请求或新传入连接请求,然而,处理取决于正在处理传入还是传出请求 而在网络栈中的不同层处发生。对于传入请求,该过程在网络栈的底部发生, 例如在数据链路层或紧接的上一层中,而对于传出请求,该过程在网络栈的顶 部发生,例如在会话层中。在网络栈的相关层中接收传入或传出请求310,然 后确定对于该请求是否需要新的应用程序连接320。

在连接已经存在并且对于该连接的CPU核是已知的情况下330,则中断 该已知CPU 350并将处理移交给该CPU核,以使得分组与该连接相关联并且 所有进一步的处理继续使用该中断的CPU核中的连接360。

应用程序连接可能存在并且可在不止一个核中处理并且在这种情况下,用 于处理数据分组的优选CPU核可能不是已知的330。如果优选CPU核并非已 知,则基于处理器负载和其他优选准则来从已建立应用程序连接的CPU核中 选择CPU核340。例如,对于发送请求,优选在正用于执行应用程序的CPU 中建立应用程序连接。如果优选CPU核并非已知,则可只基于处理器负载来 选择CPU核340。然后创建将数据处理与所选核中的连接相关联的中断350 并且处理在所选核中继续360。

在尚未建立连接的情况下320,例如对于对新连接的传出请求,基于处理 器负载来选择对于该连接的CPU核340。然后创建中断350以便在所选核中建 立连接并将数据处理与该连接相关联,然后处理在所选核中继续360。

一旦已中断所选核并根据所建立的连接来将处理移交给该核360,于是对 于原始核就完成对传入或传出请求的处理370,这使得该原始核不再继续处理 下一操作。

在一优选实施例中,为对连接的每一个传出或传入请求创建单独的中断线 程。在该实施例中,按照连接技术来选定处理器核并且一旦接收到的分组与连 接相关联,在所选CPU核上为该传入或传出请求创建的软件中断线程就完成 了所有进一步的工作。该中断线程将对所接收到或所传送的数据进行所有进一 步的处理直到该数据到达应用程序或被传送到网络。尽可能早地利用该中断线 程以便在传入请求期间释放连接网络接口的CPU核。

在接收到的分组的情况下,对用于连接的处理器核的选择在连接建立期间 在网络栈的底部发生,例如在数据链路层或紧接的上一层中。该核基于负载来 选择,然而,可优先选择其上运行对于分组的目的地应用程序的核。这可通过 将例如用于数据传输的将来的中断和网络栈处理移交减到最少来提供优点,并 提高高速缓存利用率或将高速缓存未中减到最少。此外,在一优选实施例中, 应用程序的亲和性(affinity)被设为与所选核在一起以使得应用程序不在另一 个核上重新调度。

上述方法的另一优点是将锁定以及等待锁的相关联的浪费的CPU周期减 到最少。在数据在常规服务器体系结构中由应用程序来通过网络传送的情况 下,网络栈必须获得自旋锁(spin lock)以同步对数据结构的访问并且避免对 传入和传出分组的处理之间的争用。这可导致浪费的CPU周期自旋同时等待 获得锁。

本发明的各实施例通过按连接来选择处理器核的方法来减轻对网络栈自 旋锁的需求及相关联的开销。对CPU核的选择以及对用于数据传输的连接的 建立在网络栈的顶部执行。如图2所示,一旦标识了用于连接的处理器核,对 于该连接的对出站和入站数据的分组处理就在该核上以相同的中断优先级 (IPL)发生。这通过处理器核的网络栈提供了对每一个连接的自然同步。由 此解除网络栈锁定的负担,这避免了由于CPU自旋而浪费CPU周期。

核选择过程和算法中变化可取决于服务器体系结构来作出。例如,在超线 程环境中,可建立多个联合线程(co-thread)以便进行并行处理,但每一个CPU 核都如每一个联合线程在CPU核中所仿真的单独的虚拟CPU中执行的样子出 现。在该示例中,可实现其中由于联合线程而引起的CPU争用的概率通过尽 可能地保持联合线程CPU核空闲来最小化的实施例。在该实施例中,在连接 建立期间,优先选择除了联合线程CPU核之外的核。

或者,在适用于具有在伙伴核之间共享的高速缓存的体系结构的实施例 中,可选择伙伴核以利用共享高速缓存的益处。例如,在共享高速缓存的情况 下,于是通过如上所述地将接收到的分组处理移交给伙伴核可将高速缓存更新 减到最少。

对处理器核的选择可使用与操作系统(OS)调度器集成的算法来实现以 基于所有CPU核上的软件中断负载来选择处理器核。由于网络连接数增加, 因此期望将栈处理均匀地分布在所有可用的处理器核上。

操作系统调度进程但不调度软件中断。在一实施例中,使用软件中断负载 检测算法,通过标识具有最少软件中断负载的CPU核来均匀地分布负载,该 算法与OS调度器耦合并由网络栈用来选择要在其中建立连接的CPU核。所建 立的连接在一个CPU核上维护或者在中断负载改变时迁移到不同的CPU。由 此,将全部负载分布在多个核上以使得能够处理更多的数据。

对选择用于连接的特定核的判定取决于负载最轻的CPU核,该CPU核也 可被标识为在执行网络栈的软件中断中或在其上花费的时间量最少的CPU。可 用于找出对于每一个连接的最优CPU核的数学模型的示例在下文中描述。

花费在其中网络栈对于样本n执行的软件中断优先级(IPL)处和在其上 的时间被表示为

表示CPU核在n和n-1之间的时间间隔期间在软件IPL处和在其上 花费的总时间。

Δ n = n - n - 1 - - - [ 1 ]

一段时间内的的平均值被表示为λ,即,这是CPU核在一段时间内花 费在所需软件IPL中及其上的平均时间。

λavg n cpu x = Δ n + λavg n - 1 cpu x * ( n - 1 ) N - - - [ 2 ]

下一内核作业将在具有最低λavgncpux的cpux上触发。这意味着为建立应用程序 连接,下一内核作业在已在执行网络栈的软件中断上及其上花费最少时间量的 CPU核上触发。

每一个CPU核的平均时间与前一值的偏差被表示为Γcpux,其中

[λavgncpux-λavgn-1cpux]^2<Γcpux    [3]

这表示与前一计算的偏差。为了最小化开销,一实施例将偏差用作对于决定是 否在下一采样时间段期间重新计算CPU平均值的度量。如果λ的前一偏差小 于阈值Γ,则对于两倍前一时间间隔不进行对该CPU的平均值计算

σcpux=2*σcpux    [4]

其中是对CPUx的采样频率。

此外,处理器总数可被分成相等数量的分区并且对于每一个样本,可使用 该集合中的一个分区来进行平均值计算。λavgncpux在表示每一个CPU的平均 中断负载值的经排序的数组中维护并且可由网络栈用来确定对于特定连接的 最优CPU。

示例1:

该示例使用概念测试试验的结果,该测试将使用如图5所示的SMP体系 结构来被实现为测试模型的本发明的一实施例的性能与使用如图4所示的包括 四个CPU核430、431、432、433的常规多核服务器体系结构来实现的测试模 型进行比较。

在图4的常规SMP服务器体系结构中,所有接收到的分组460-463都通 过连接LAN卡450的核431的网络栈410来处理,而所发送的分组(未示出) 通过需要自旋锁定的、其上执行应用程序420、421、422、423的核430、431、 432、433的各自网络栈来处理。在图4的服务器中,接收到的分组460、461、 462、463通过连接LAN的CPU核431的网络栈410来顺序地处理440、441、 442、443直到这些数据到达其各自的目的地应用程序420、421、422、423并 且这些数据由调度应用程序的核上的应用程序使用。

在图5的概念分布式栈体系结构的试验中,将接收到的分组560-563与各 自的连接540、541、542、543相关联并在必要时将处理从连接网络接口550 的核531中的网络栈511移交至各自的网络栈510、511、512、513以便进行 处理直到到达各自的目的地应用程序520、521、522、523。所发送的分组与应 用程序连接540、541、542、543相关联并通过各自的CPU核530、531、532、 533的相应的网络栈510、511、512、513来处理并且经由网络接口550来发送。

表1提供了相比于图4的常规栈的图2的分布式网络栈的试验结果。

  栈   CPU自   旋等待   %   传输层   中的自   旋等待   %   平均   吞吐量   %   系统   利用率   %   总中断   事件/秒   CPU   0   (IPL   事件)   CPU   1   LAN   CPU   IPL   事件   CPU   2   IPL   事件   CPU   IPL   事件   常规栈   33   40   43   15   1162   36.4   1121   .1   5.3   分布式   网络栈   23   0   46   17   1457   105   1146   106   100

表1:软件中断在所有CPU上的有效分布、自旋等待和CPU利用率

如相关领域的技术人员可以理解的,图5的分布式栈体系结构通过在每一 个CPU核530-533中放置连接来实现传输层中的并发性。通过将诸中断分配到 所有CPU核530-531,连接网络接口的CPU核531已解除分组处理的负担, 如表1的结果所展示的。结果示出CPU自旋等待状态减少了10%。

对于分布式栈体系结构所实现的吞吐量至少可与常规网络栈体系结构相 比并且如图6所示,分布式栈体系结构610随着连接数和数据量的增加开始比 常规体系结构620表现得更好。

分布式栈体系结构的CPU利用率由于在与每一个连接相关联的CPU中创 建中断线程时所涉及的开销而或多或少地高于常规体系结构的CPU利用率。 一旦在所有层中实现并发性,分布式栈体系结构测试模型就预示更多的潜力。