論文閱讀:Offloading Distributed Applications onto SmartNICs using iPipe


摘要:

包含豐富計算資源的新興多核SoC SmartNIC具有卸載通用數據中心服務器任務的潛力,但是目前尚不清楚如何有效地使用SmartNIC並最大程度地減少卸載收益,尤其是對於分布式應用程序。

為此,我們描述了四個商用SmartNIC的特性,並從四個角度總結了卸載性能的影響:

  • 流量控制

  • 計算能力

  • 板載內存

  • 主機通信

根據我們的特征,我們構建了iPipe,這是一個基於參與者的框架,用於將分布式應用程序卸載到SmartNIC上。 iPipe的核心是混合調度程序,它結合了基於FCFS和基於DRR的處理器共享,可以容忍具有可變執行成本的任務,並最大限度地提高NIC計算的利用率。

使用iPipe,我們構建了一個實時數據分析引擎,一個分布式交易系統和一個復制的鍵值存儲,並在商用SmartNIC上對其進行了評估。我們的評估表明,當處理10 / 25Gbps的應用程序帶寬時,NIC端卸載可以節省多達3.1 / 2.2強大的Intel內核,並將應用程序延遲降低23.0 / 28.0 µs。

背景/問題:

多核SoC(片上系統)SmartNIC已經出現在數據中心中,旨在緩解網絡帶寬增加和CPU計算能力停滯之間的差距。它們不僅針對協議處理的加速,而且還為數據中心帶來了新的計算基礎,以低成本擴展了服務器的計算能力——SmartNICs通常用簡單的微體系結構封裝計算核心,從而使其具有成本效益。

通常,這些SmartNIC包括多核處理器,板載SRAM / DRAM,數據包處理和特定於域的加速器以及可編程DMA引擎,不同的組件通過高帶寬相干內存總線或互連連接。如今,大多數SmartNIC都配備了一個或兩個10 / 25GbE端口,並且即將推出100 / 200GbE產品,這些計算資源使主機可以在不犧牲性能和程序通用性的情況下減輕通用計算(包括復雜的算法和數據結構)的負擔。

最近有一些研究工作將網絡功能轉移到基於FPGA的SmartNIC上,他們采用常規的特定領域加速方法,將大多數應用程序邏輯整合到FPGA可編程邏輯模塊中。這種方法適用於特定類別的應用程序,這些應用程序具有足夠的並行性,確定性的程序邏輯以及可以在FPGA上有效合成的常規數據結構。但是針對具有復雜數據結構和算法的分布式應用程序,還沒有相關的方法,因為這些應用程序不能在基於FPGA的SmartNIC上有效實現。

解決方法:

我們將SmartNIC分為四個架構組件:流量控制,計算單元,板載內存和主機通信,並使用微基准來表征其性能。實驗確定了我們必須認識到的資源約束,說明了硬件加速單元的效用,並為如何有效利用資源提供了指導。

我們基於特征研究設計和實現iPipe框架。

iPipe引入了用於分布式應用程序開發的參與者編程模型,每個參與者都有自己獨立的私有狀態,並通過消息與其他參與者進行通信。我們的框架提供了分布式內存對象抽象,並支持角色遷移,響應動態工作負載變化並確保線速流量的傳遞。iPipe的核心是Actor調度程序,該調度程序結合了基於FCFS和DRR的處理器共享,從而可以承受具有可變執行成本的任務,並最大限度地提高SmartNIC的資源利用率。 iPipe允許來自不同應用程序的多個參與者安全地共存於SmartNIC,從而防止參與者狀態損壞和拒絕服務攻擊。

iPipe的機制可實現對任意應用程序邏輯的動態且可感知工作負載的卸載,這與以往專注於專門任務的靜態卸載的工作並不相同。

實現細節:

多核SoC SmartNIC包括四個主要部分(如上圖所示):

  • 計算單元,包括通用ARM / MIPS多核處理器,以及用於數據包處理的加速器(例如,深度處理、數據包檢查,數據包緩沖區管理)和專用功能(例如加密/解密,哈希,模式匹配,壓縮)

  • 板載內存,其中包含快速的自我管理暫存器和較慢的L2 / DRAM

  • 流量控制模塊,用於在TX / RX端口和數據包緩沖區之間傳輸數據包,並帶有將數據包發送到NIC核心的內部流量管理器或NIC交換機

  • 用於與主機通信的DMA引擎

根據SmartNIC核心與流量的交互方式,我們將SmartNIC進一步分為兩種類型:路徑上和路徑外SmartNIC。

路徑上SmartNIC的核心位於數據包通信路徑上,並具有處理每個傳入/傳出數據包的功能,偏離路徑的SmartNIC根據安裝在NIC交換機上的轉發規則將流量流傳遞到主機核心(繞過NIC核心)。

iPipe框架的設計和實現

我們使用從實驗中收集到的見解來分析,任務應從以下幾個方面出發:

  • 可編程性:配備SmartNIC的商用服務器是具有非對稱計算能力的非緩存一致性異構計算平台。我們需要可用於開發通用分布式應用程序的簡單編程抽象。

  • 計算效率:SmartNIC上有大量計算資源(例如,多核處理器,適度的L2 / DRAM和大量加速器),但應該高效地使用它們,不適當的卸載可能會導致NIC內核超載,帶寬損失和浪費的執行停頓。

  • 隔離:SmartNIC可以同時容納多個應用程序,應該保證不同的應用程序不能互相影響狀態,應用程序之間不存在性能干擾,並且尾部延遲是適度的。

iPipe具有三個關鍵系統組件:

  • 一個actor調度程序,該調度程序可跨SmartNIC和主機核心工作,並使用混合FCFS / DRR調度規則來啟用執行演員處理程序,執行成本各不相同

  • 分布式對象抽象,支持靈活的參與者遷移並支持軟件管理的緩存,以減輕SmartNIC承載主機通信的成本

  • 一種安全隔離機制,可保護參與者狀態免受損壞和拒絕服務攻擊

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM