当前位置: X-MOL 学术arXiv.cs.PF › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Architecture-Specific Performance Optimization of Compute-Intensive FaaS Functions
arXiv - CS - Performance Pub Date : 2021-07-21 , DOI: arxiv-2107.10008
Mohak Chadha, Anshul Jindal, Michael Gerndt

FaaS allows an application to be decomposed into functions that are executed on a FaaS platform. The FaaS platform is responsible for the resource provisioning of the functions. Recently, there is a growing trend towards the execution of compute-intensive FaaS functions that run for several seconds. However, due to the billing policies followed by commercial FaaS offerings, the execution of these functions can incur significantly higher costs. Moreover, due to the abstraction of underlying processor architectures on which the functions are executed, the performance optimization of these functions is challenging. As a result, most FaaS functions use pre-compiled libraries generic to x86-64 leading to performance degradation. In this paper, we examine the underlying processor architectures for Google Cloud Functions (GCF) and determine their prevalence across the 19 available GCF regions. We modify, adapt, and optimize three compute-intensive FaaS workloads written in Python using Numba, a JIT compiler based on LLVM, and present results wrt performance, memory consumption, and costs on GCF. Results from our experiments show that the optimization of FaaS functions can improve performance by 12.8x (geometric mean) and save costs by 73.4% on average for the three functions. Our results show that optimization of the FaaS functions for the specific architecture is very important. We achieved a maximum speedup of 1.79x by tuning the function especially for the instruction set of the underlying processor architecture.

中文翻译:

计算密集型 FaaS 功能的特定架构性能优化

FaaS 允许将应用程序分解为在 FaaS 平台上执行的功能。FaaS平台负责功能的资源提供。最近,执行运行几秒钟的计算密集型 FaaS 功能的趋势越来越大。然而,由于商业 FaaS 产品遵循的计费政策,这些功能的执行可能会产生更高的成本。此外,由于执行功能的底层处理器架构的抽象,这些功能的性能优化具有挑战性。因此,大多数 FaaS 功能使用 x86-64 通用的预编译库,从而导致性能下降。在本文中,我们检查了 Google Cloud Functions (GCF) 的底层处理器架构,并确定了它们在 19 个可用 GCF 区域中的普遍性。我们使用 Numba(一种基于 LLVM 的 JIT 编译器)修改、调整和优化了三个用 Python 编写的计算密集型 FaaS 工作负载,并展示了 GCF 上的性能、内存消耗和成本结果。我们的实验结果表明,FaaS 功能的优化可以将三个功能的性能提高 12.8 倍(几何平均值)并平均节省 73.4% 的成本。我们的结果表明,针对特定架构优化 FaaS 功能非常重要。通过特别针对底层处理器架构的指令集调整功能,我们实现了 1.79 倍的最大加速。并使用基于 LLVM 的 JIT 编译器 Numba 优化用 Python 编写的三个计算密集型 FaaS 工作负载,并在 GCF 上展示性能、内存消耗和成本的结果。我们的实验结果表明,FaaS 功能的优化可以将三个功能的性能提高 12.8 倍(几何平均值)并平均节省 73.4% 的成本。我们的结果表明,针对特定架构优化 FaaS 功能非常重要。通过特别针对底层处理器架构的指令集调整功能,我们实现了 1.79 倍的最大加速。并使用基于 LLVM 的 JIT 编译器 Numba 优化用 Python 编写的三个计算密集型 FaaS 工作负载,并在 GCF 上展示性能、内存消耗和成本的结果。我们的实验结果表明,FaaS 功能的优化可以将三个功能的性能提高 12.8 倍(几何平均值)并平均节省 73.4% 的成本。我们的结果表明,针对特定架构优化 FaaS 功能非常重要。通过特别针对底层处理器架构的指令集调整功能,我们实现了 1.79 倍的最大加速。我们的实验结果表明,FaaS 功能的优化可以将三个功能的性能提高 12.8 倍(几何平均值)并平均节省 73.4% 的成本。我们的结果表明,针对特定架构优化 FaaS 功能非常重要。通过特别针对底层处理器架构的指令集调整功能,我们实现了 1.79 倍的最大加速。我们的实验结果表明,FaaS 功能的优化可以将三个功能的性能提高 12.8 倍(几何平均值)并平均节省 73.4% 的成本。我们的结果表明,针对特定架构优化 FaaS 功能非常重要。通过特别针对底层处理器架构的指令集调整功能,我们实现了 1.79 倍的最大加速。
更新日期:2021-07-22
down
wechat
bug