Alistarh Group

Distributed Algorithms and Systems

Distribution has been a major trend in computing over the last decade. This change affects the way we compute in several ways: microprocessor architectures are now multi-core, offering several parallel threads of computation, while large-scale systems distribute storage and computation across several processors, machines, or data centers. To be efficient, software now has to scale, that is, improve its performance when more computation is available.

This fundamental change in the way computation is performed puts forward exciting open questions. How do we design algorithms to extract every last bit of performance from the current generation of architectures? How do we design future architectures to support more scalable algorithms? Are there clean abstractions to render high-performance distribution accessible to programmers?

Our group’s research is focused on answering these questions. In particular, we are interested in designing efficient, practical algorithms for fundamental problems in distributed computing, in understanding the inherent limitations of distributed systems, and in new ways to overcome these limitations.