注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号
x
打算下学期在学校里做一个项目,目前有2个感兴趣的项目1. Serverless C++ executor
Function-as-a-Service (FaaS, serverless) is a new cloud paradigm focused on the execution of stateless and short-running functions in dynamically allocated execution environments (containers, microVMs). Serverless has gained significant traction as a backend for websites, data analytics platforms, machine learning inference serving, and all tasks that can benefit from elastic resource allocation and pay-as-you-go billing. However, the elastic parallelism of FaaS has not gained enough attention in the world of high-performance applications. One of the reasons is the lack of native integration of serverless functions with C/C++ and high invocation costs.
We are developing low-latency serverless systems for the cloud and clusters. In this project, we want to examine the most recent development of parallel algorithms and executors in the C++ standard (C++20 and beyond) and integrate functions as a new, experimental executor for parallel C++ applications.
You are going to build a C++ executor based on our prototype of the low-latency functions platform and the standards committee's most recent work on parallel C++. You will design a new executor interface, compare it with existing parallel executors, e.g., HPX, and implement a prototype. The performance and efficiency will be compared with the leading cloud providers (AWS, Azure, Google) and serverless frameworks for high-level programming languages (Python, Node.js).
Relevance: The project is focused on the cutting edge cloud technologies and gives you an ability to become an expert in C++.
Composition: 70% systems and performance programming, 30% C++ language analysis and development. Waral dи,
2.Memory Deduplication for Serverless Systems
Function-as-a-Service (FaaS, serverless) is a new and promising cloud service that has been designed to support the execution of stateless and short-lived functions. Serverless systems support dozens of instances of functions simultaneously. Each instance requires the allocation of memory for the sandbox environment and user application. The amount of memory needed to support function’s containers is a major bottleneck preventing servers from handling more requests. While each function instance could have different code, input data, or different owner, the standardized execution environment of languages such as Python or NodeJS implies that various functions could use the same runtime and the libraries. Such duplication of memory contents has been resolved in the past on servers handling virtual machines, where many VMs could have used the same operating system and libraries. However, these solutions don’t support serverless systems where many functions are short-lived (< 1-5s).
In SPCL, we are working on improving the scalability of FaaS systems by reducing memory overheads of duplicated contents of function’s containers. We are analyzing the distribution of identical memory pages across serverless applications and the effectiveness of existing deduplication systems to locate and replace them. The goal of this project is to design new fine-grained memory deduplication and compression techniques that can handle variable and quickly changing FaaS workloads.
In this project, you will learn how memory pages are allocated, managed, and shared between processes. You are going to study the internals of containers (Docker) and checkpointing systems (CRIU) and find ways to use them to analyze the similarity of memory pages and the frequency of their changes. In addition, you will work on studying the effects of address space layout randomization (ASLR) on the deduplication effectiveness. As a result of a large-scale study on our serverless benchmark suite, you are going to evaluate the effectiveness of deduplication systems, and you will work on the novel approaches for handling memory deduplication for FaaS workloads.
Relevance: The project is focused on cutting-edge cloud technologies and develops software and hardware improvements to modern container technologies.
Composition: 10% theory, 70% programming, 20% hacking
求教哪个项目写在简历上更好,哪个预计会更难一点?想多做一点coding,目前偏向C++ executor,但是不确定内容有不有趣。
|