Floem: A Programming System for NIC-Accelerated Network Applications.

OSDI(2018)

引用 128|浏览328
暂无评分
摘要
Developing server applications that offload computation to a NIC accelerator is complex and laborious. Developers have to explore the design space, which includes semantic changes for different offloading strategies, as well as variations on parallelization, programto-resource mapping, and communication strategies for program components across devices. We therefore design FLOEM - a language, compiler, and runtime - for programming NIC-accelerated applications. FLOEM enables offload design exploration by providing programming abstractions to assign computation to hardware resources; control mapping of logical queues to physical queues; access fields of a packet and its metadata without manually marshaling a packet; use a NIC to memoize expensive computation; and interface with an external application. The compiler infers which data must be transferred between the CPU and NIC and generates a complete cache implementation, while the runtime transparently optimizes DMA throughput. We use FLOEM to explore NIC-offloading designs of realworld applications, including a key-value store and a distributed real-time data analytics system; improve their throughput by 1.3-3.6 x and by 75-96%, respectively, over a CPU-only implementation.
更多
查看译文
关键词
network,programming system,nic-accelerated
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要