People have shown that in-network computation (INC) significantly boosts performance in many application scenarios include distributed training, MapReduce, agreement, and network monitoring. However, existing INC programming is unfriendly to the normal application developers, demanding tedious network engineering details like flow control, packet organization, chip-specific programming language, and ASIC architecture with many limitations. We propose a general INC-enabled RPC system, NetRPC. NetRPC provides a set of familiar and lightweight interfaces for software developers to describe an INC application using a traditional RPC programming model. NetRPC also proposes a general-purpose INC implementation together with a set of optimization techniques to guarantee the efficiency of various types of INC applications running on a shared INC data plane. We conduct extensive experiments on different types of applications on the real testbed. Results show that using only about 5% or even fewer human-written lines of code, NetRPC can achieve performance similar to the state-of-the-art INC solutions.
翻译:人们已经表明,在许多应用情景中,网络内计算(INC)大大提升了绩效,包括分布式培训、地图显示、协议和网络监测,然而,现有的INC编程对正常应用开发者不友好,要求提供流动控制、数据包组织、芯片专用编程语言和ACIC架构等无聊的网络工程细节,有许多限制。我们提议了由INC支持的一般RPC系统,NetRPC。 NetRPC为软件开发者提供了一套熟悉和轻量级的界面,以便使用传统的RPC编程模式描述INC的应用。 NetRPC还提议采用一套通用的INC实施方法,连同一套优化技术,以保障在共享的INC数据平板上运行的各种类型的INC应用程序的效率。我们在实际测试板上对不同类型的应用进行了广泛的实验。结果显示,使用大约5%甚至更少的人写代码线,NetRPC能够取得与最先进的INC解决方案相似的业绩。