Skip to main content
QUICK REVIEW

[论文解读] $\lambda$-NIC: Interactive Serverless Compute on Programmable SmartNICs

Sean Choi, Muhammad Shahbaz|arXiv (Cornell University)|Sep 26, 2019
Cloud Computing and Resource Management参考文献 46被引用 6
一句话总结

本文提出 $λ$-NIC,一种无服务器计算框架,通过创新的 Match+Lambda 抽象和专用机器模型,直接在可编程 SmartNIC 上执行交互式工作负载。通过利用 SmartNIC 的高核心数 NPU 架构,$λ$-NIC 实现了相较于基于 CPU 的无服务器系统的最高 880 倍低延迟和 736 倍高吞吐量,同时显著降低主机 CPU 和内存使用率。

ABSTRACT

There is a growing interest in serverless compute, a cloud computing model that automates infrastructure resource-allocation and management while billing customers only for the resources they use. Workloads like stream processing benefit from high elasticity and fine-grain pricing of these serverless frameworks. However, so far, limited concurrency and high latency of server CPUs prohibit many interactive workloads (e.g., web servers and database clients) from taking advantage of serverless compute to achieve high performance. In this paper, we argue that server CPUs are ill-suited to run serverless workloads (i.e., lambdas) and present $\\lambda$-NIC, an open-source framework, that runs interactive workloads directly on a SmartNIC; more specifically an ASIC-based NIC that consists of a dense grid of Network Processing Unit (NPU) cores. $\\lambda$-NIC leverages SmartNIC's proximity to the network and a vast array of NPU cores to simultaneously run thousands of lambdas on a single NIC with strict tail-latency guarantees. To ease development and deployment of lambdas, $\\lambda$-NIC exposes an event-based programming abstraction, Match+Lambda, and a machine model that allows developers to compose and execute lambdas on SmartNICs easily. Our evaluation shows that $\\lambda$-NIC achieves up to 880x and 736x improvements in workloads' response latency and throughput, respectively, while significantly reducing host CPU and memory usage.

研究动机与目标

  • 为解决基于 CPU 的无服务器计算的局限性,例如高上下文切换开销和较差的并发性,特别是针对低延迟、交互式工作负载。
  • 探索在 SmartNIC 上直接运行无服务器函数的可行性及其性能优势,利用其高核心、低延迟的架构。
  • 通过高级事件驱动编程模型抽象底层硬件复杂性,简化 SmartNIC 编程。
  • 通过利用 ASIC 基 SmartNIC 上 NPU 核心的海量并行性,实现严格的尾部延迟保证和高吞吐量。
  • 通过将整个无服务器工作负载从主机卸载到 SmartNIC,减少主机 CPU 和内存开销。

提出的方法

  • 引入 Match+Lambda 抽象,一种高级编程模型,允许开发人员定义由网络数据包匹配触发的事件驱动 Lambda 函数。
  • 采用扩展了 P4 的匹配-动作范式的机器模型,支持更丰富的动作,以实现在 SmartNIC 上执行复杂、有状态的无服务器函数。
  • 使用 RDMA 实现客户端与 SmartNIC 托管的 Lambda 函数之间多数据包消息的可靠、低延迟传输。
  • 将 Match+Lambda 函数编译并优化为高效的 NPU 代码,管理 NPU 网格上的资源分配、调度和内存访问。
  • 实现在 SmartNIC 上完整的无服务器函数执行,无需主机 CPU 干预和虚拟化层。
  • 通过与可终止 TCP 并处理完整消息的现代网卡集成,支持数据包级和消息级处理。

实验结果

研究问题

  • RQ1具有数百个 NPU 核心的 SmartNIC 是否能够有效替代主机 CPU,以运行数千个并发、低延迟的无服务器函数?
  • RQ2如何设计一种高级、对开发人员友好的抽象,以隐藏 SmartNIC 硬件的复杂性,同时实现无服务器工作负载的高效执行?
  • RQ3将无服务器函数卸载到 SmartNIC 能在多大程度上减少主机 CPU 和内存使用,同时提升延迟和吞吐量?
  • RQ4在真实交互式工作负载中,与在 CPU 上执行相比,在 SmartNIC 上直接运行无服务器函数可实现多大的性能提升?
  • RQ5在高度并行、分布式的 SmartNIC 环境中,能否为交互式工作负载实现严格的尾部延迟保证?

主要发现

  • $\lambda$-NIC 框架相较于传统的基于 CPU 的无服务器执行,响应延迟最高可降低 880 倍。
  • 吞吐量最高提升 736 倍,证明了 SmartNIC 上 NPU 核心的海量并行性具有显著有效性。
  • 主机 CPU 使用率显著降低,因为整个工作负载被卸载到 SmartNIC,消除了虚拟化和上下文切换开销。
  • 主机内存使用量大幅减少,因为无服务器函数在 SmartNIC 的隔离本地内存中运行,无需容器或虚拟机开销。
  • Match+Lambda 抽象实现了 Lambda 在 SmartNIC 上的高效编译与部署,抽象了底层硬件复杂性,同时不牺牲性能。
  • 该框架支持数据包级和消息级处理,可与现代传输协议(如 TCP)集成,这些协议如今已在网卡上终止。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。