Cppless: Productive and Performant Serverless Programming in C++

2024年01月19日
  • 简介
    无服务器计算的兴起引入了一类新型的可扩展、弹性和高可用性的云并行工作者。许多系统和应用程序从将计算和并行任务卸载到动态分配的资源中受益。然而,C++应用程序的开发人员发现由于部署复杂、客户端和云环境之间缺乏兼容性以及松散类型的输入和输出数据而难以集成函数。为了在C++中实现单一源和高效的无服务器加速,我们介绍了Cppless,这是一个端到端框架,用于实现服务器函数,处理函数的创建、部署和调用。Cppless是基于LLVM构建的,只需要两个编译器扩展即可自动提取C++函数对象并将其部署到云中。我们证明,将并行计算从C++应用程序卸载到无服务器工作者可以提供高达30倍的加速,只需要进行轻微的代码修改,每次计算的成本不到一分钱。
  • 图表
  • 解决问题
    Cppless: Enabling Efficient Serverless Acceleration in C++
  • 关键思路
    Cppless is an end-to-end framework for implementing serverless functions in C++ which handles the creation, deployment, and invocation of functions. It is built on top of LLVM and requires only two compiler extensions to automatically extract C++ function objects and deploy them to the cloud. Offloading parallel computations from a C++ application to serverless workers can provide up to 30x speedup, requiring only minor code modifications and costing less than one cent per computation.
  • 其它亮点
    Cppless provides a solution for integrating C++ functions with serverless computing, which was previously difficult due to complex deployment and lack of compatibility between client and cloud environments. The framework is built on top of LLVM and requires only two compiler extensions, making it easy to use. The experiments demonstrate that offloading parallel computations to serverless workers can provide significant speedup and cost savings. The paper also discusses potential future work, such as adding support for more complex data types and optimizing function deployment.
  • 相关研究
    Related work in this field includes the use of serverless computing for other programming languages, such as Python and Java, as well as research on optimizing function deployment and improving compatibility between client and cloud environments. Some related papers include "Serverless Computing: Current Trends and Open Problems" and "Serverless Computing: An Overview of Techniques and Challenges".
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论