Cppless: Single-Source and High-Performance Serverless Programming in C++

Fuente: arXiv
Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Copik, Marcin, Möller, Lukas, Calotoiu, Alexandru, Hoefler, Torsten
Format: Preprint
Veröffentlicht: 2024
Schlagworte:
Online-Zugang:
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
_version_ 1866915505043931136
author Copik, Marcin
Möller, Lukas
Calotoiu, Alexandru
Hoefler, Torsten
author_facet Copik, Marcin
Möller, Lukas
Calotoiu, Alexandru
Hoefler, Torsten
contents The rise of serverless computing introduced a new class of scalable, elastic and widely available parallel workers in the cloud. Many systems and applications benefit from offloading computations and parallel tasks to dynamically allocated resources. However, the developers of C++ applications find it difficult to integrate functions due to complex deployment, lack of compatibility between client and cloud environments, and loosely typed input and output data. To enable single-source and efficient serverless acceleration in C++, we introduce Cppless, an end-to-end framework for implementing remote functions which handles the creation, deployment, and invocation of serverless functions. Cppless is built on top of LLVM and requires only two compiler extensions to automatically extract C++ function objects and deploy them to the cloud. We demonstrate that offloading parallel computations, such as from a C++ application to serverless workers, can provide up to 59x speedup with minimal cost increase while requiring only minor code modifications.
format Preprint
id arxiv_https___arxiv_org_abs_2401_10834
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Cppless: Single-Source and High-Performance Serverless Programming in C++
Copik, Marcin
Möller, Lukas
Calotoiu, Alexandru
Hoefler, Torsten
Distributed, Parallel, and Cluster Computing
The rise of serverless computing introduced a new class of scalable, elastic and widely available parallel workers in the cloud. Many systems and applications benefit from offloading computations and parallel tasks to dynamically allocated resources. However, the developers of C++ applications find it difficult to integrate functions due to complex deployment, lack of compatibility between client and cloud environments, and loosely typed input and output data. To enable single-source and efficient serverless acceleration in C++, we introduce Cppless, an end-to-end framework for implementing remote functions which handles the creation, deployment, and invocation of serverless functions. Cppless is built on top of LLVM and requires only two compiler extensions to automatically extract C++ function objects and deploy them to the cloud. We demonstrate that offloading parallel computations, such as from a C++ application to serverless workers, can provide up to 59x speedup with minimal cost increase while requiring only minor code modifications.
title Cppless: Single-Source and High-Performance Serverless Programming in C++
topic Distributed, Parallel, and Cluster Computing
url https://arxiv.org/abs/2401.10834