From Laptop to Lambda: Outsourcing Everyday Jobs to Thousands of Transient Functional Containers

From Laptop to Lambda: Outsourcing Everyday Jobs to Thousands of Transient Functional Containers
复制标题

DOI:
--
复制
发表时间:
2019-07
期刊:
--
影响因子:
--
通讯作者:
Sadjad Fouladi;Francisco Romero;Dan Iter;Qian Li;Shuvo Chatterjee;Christos Kozyrakis;M. Zaharia;Keith Winstein
Sadjad Fouladi;Francisco Romero;Dan Iter;Qian Li;Shuvo Chatterjee;Christos Kozyrakis;M. Zaharia;Keith Winstein
中科院分区:
其他
文献类型:
--
作者:
Sadjad Fouladi;Francisco Romero;Dan Iter;Qian Li;Shuvo Chatterjee;Christos Kozyrakis;M. Zaharia;Keith Winstein

文献摘要

相似文献

我们介绍了gg,一个框架和一组命令行工具,可以帮助人们执行日常应用程序。软件编译、单元测试、视频编码或对象识别——在云功能服务上使用数千个并行线程来实现接近交互的完成时间。将来,用户可能不再需要在笔记本电脑上运行这些任务,或者在云中保持一个热集群运行,而是按下一个按钮,生成10,000个并行的云函数,从开始到几秒钟内执行一个大型作业。Gg的设计就是为了让这个过程变得简单实用。使用gg,应用程序将作业表示为轻量级操作系统容器的组合,这些容器分别是短暂的(生命周期为1-60秒)和功能性的(每个容器都是密封的和确定的)。Gg负责在云函数上实例化这些容器,加载依赖项,最小化数据移动,在容器之间移动数据,以及处理故障和掉线者。我们移植了几个对延迟敏感的应用程序在gg上运行,并评估了它的性能。在最好的情况下,基于gg构建的分布式编译器的性能比传统工具(icecc)高出2-5倍,而不需要连续运行热集群。在最坏的情况下,gg在现有视频编码工具(ExCamera)手动调整性能的20%以内。
We present gg, a framework and a set of command-line tools that helps people execute everyday applications--e.g., software compilation, unit tests, video encoding, or object recognition--using thousands of parallel threads on a cloud-functions service to achieve near-interactive completion times. In the future, instead of running these tasks on a laptop, or keeping a warm cluster running in the cloud, users might push a button that spawns 10,000 parallel cloud functions to execute a large job in a few seconds from start. gg is designed to make this practical and easy. With gg, applications express a job as a composition of lightweight OS containers that are individually transient (lifetimes of 1-60 seconds) and functional (each container is hermetically sealed and deterministic). gg takes care of instantiating these containers on cloud functions, loading dependencies, minimizing data movement, moving data between containers, and dealing with failure and stragglers. We ported several latency-sensitive applications to run on gg and evaluated its performance. In the best case, a distributed compiler built on gg outperformed a conventional tool (icecc) by 2-5×, without requiring a warm cluster running continuously. In the worst case, gg was within 20% of the hand-tuned performance of an existing tool for video encoding (ExCamera).