EASL

Efficient Architectures and Systems Lab (EASL)

EASL Logo

We design and build computer systems for large-scale applications, such as cloud computing services, data analytics, and machine learning. We aim to improve the performance and resource efficiency of cloud computing while making it easier for users to deploy and manage their applications. Our research work spans operating systems, computer architecture, and their intersection with machine learning.

Research Focus Areas

Training and serving AI models requires large compute clusters, which have high cost, consume significant energy, and can experience frequent failures. As models continue to grow in size, scaling the underlying system infrastructure while ensuring it remains reliable and efficient is challenging. Improving the resource efficiency and data efficiency of AI model training and serving is key to making AI more sustainable, scalable, and ubiquitous.

Research topics: How can we improve AI serving latency and throughput per Watt, particularly as AI inference increasingly involves models interacting with databases (e.g., for retrieval augmented generation) and a variety of other tools (e.g., search engines and code interpreters)? How can we efficiently customize model inference for different users and types of requests in a multi-tenant setting while exposing an intuitive, declarative API to users? How can we make AI training more resource-efficient, fault-tolerant, and elastic? How should we build distributed storage services to manage AI training data and enable efficient data selection and ingestion during training?

Developing correct, high-performance, and scalable distributed cloud applications is notoriously difficult for programmers as it requires reasoning about parallelism, durability, and consistency. The code generation capabilities of large language models (LLMs) and AI agents offer exciting opportunities to automate the development of cloud applications and cloud system software.

Research topics: How to design programming abstractions for cloud application developers to specify their functionality, performance, consistency, and durability requirements in a declarative way? How to go from declarative specifications to correct and scalable implementations? How can we teach LLMs to optimize for performance and efficiency without sacrificing correctness and safety?

Modern applications increasingly need to process large, dynamic datasets under bursty and unpredictable demand. At the same time, cloud platforms now provide increasingly elastic and heterogeneous pools of compute, memory, and storage. This creates an opportunity to rethink data processing systems for the cloud: rather than provisioning clusters with static resource ratios, systems should automatically compose and scale fine-grained resources around the needs of each individual query, workflow, or application. A key challenge is to design abstractions that let users express high-level data processing logic while giving the system enough information to optimize placement, scheduling, communication, caching, and resource allocation across heterogeneous cloud infrastructure.

Research topics: How should the traditional database engine design evolve to a cloud-native data processing system design to leverage the elasticity and scale-out benefits of the cloud? How should we design the interface between data processing engines and the underlying cloud execution system? How can we provide predictable performance, fault tolerance, and isolation when many tenants share an elastic pool of cloud resources?

Post-docs:

PhD Students:

JavaScript has been disabled in your browser