Most of my research concerns the design and analysis of distributed algorithms,
with special emphasis on fault tolerant algorithms and memory consistency.
My specific research areas are listed below.
-
Distributed Algorithms
A distributed system is a collection of processes connected by some interconnection mechanism.
A distributed algorithm runs on a distributed system to solve problems that are inherently distributed, such as process coordination,
synchronization, resource allocation, mutual exclusion. A distributed system is often modeled as a graph.
My particular research in this field is computation on a ring and on general graphs.
List of publications.
-
Memory Consistency
In multiprocessor and distributed systems increased performance is
provided by changing the program order and using different interleavings
of the operations of different processors. This weakening of the ordering
of the memory accesses complicates the task of creating correct programs.
We develop a framework for describing and comparing the memory consistency
models that precisely define the memory behaviour of mulitprocessor systems.
Using these definitions, solutions to coordination problems on various systems
are developed and analyzed.
List of publications.
-
Self-Stabilization
Self-stabilization is a unified model of fault tolerance.
A self-stabilizing system can recover from any arbitrary transient fault without requiring external intervention or re-initialization.
A system is self-stabilizing if starting from any initial configuration it converges to some configuration
in a predefined set of legitimate configuration and once the system is in a legitimate configuration,
it stays in a legitimate configuration in any fault free execution.
Self-stabilization was first introduced by E. Dijkstra in 1974 in his seminal paper on self-stabilizing token circulation on a ring.
List of publications.
-
Parallel Algorithms
Fundamental physical limitations on processing speed will eventually force high-performance computations to be performed using multiple processing units. This has
motivated study of a variety of alternative computing paradigms, including the study of parallel algorithms, that use multiple processors to solve problems more efficiently than
is possible with one processor alone.
List of publications.