I received my PhD in 2008 from the University of Maryland where I was a member of the PLUM research group. I spent a year as a post-doctoral researcher in Laboratoire Verimag
ResearchMy research aims to develop tools and techniques that aid programmers in improving the quality of software. I am interested in programming languages, software engineering, type systems and static analysis, and their applications on concurrent software.
Scalable Runtime SystemsWe design and develop scalable runtime systems at the node and the datacenter level. Myrmics, BDDT, and PARTEE are task-parallel runtimes for distributed-memory, non cache coherent shared memory and cache coherent shared memory multicore processors that scale parallel applications to tens or hundreds of cores. GreenVM is a Java Virtual Machine for distributed memory manycores running on the 512-core Formic prototype.
Software Fault ToleranceAn error in a single core of a 64-core or 512-core parallel processor should not cause the whole system to malfunction. We design and build software systems that can recover from soft-errors and hard-errors, focusing on multicore processors. We are using traditional techniques like checkpointing and redundancy, combining them with high-level abstractions like task-parallel programming that help make fault-tolerance very efficient.
Static Analysis and CompilationWe have implemented several static analyses that take advantage of high-level abstractions in parallel programming languages like regions and tasks, to efficiently compile these programs to multicore processors and distributed systems.
- If you are a UoC student interested in a Diploma Thesis topic, look here.
- Instructor CS-529, UoC, Spring 2013
- Instructor CS-100, UoC, Fall 2013, Fall 2012, Fall 2011
- Instructor CS-490.40, UoC, Fall 2013, Fall 2012, Fall 2011, Fall 2010
- Guest lecturer, CS-529, UoC, Spring 2010, Spring 2011
- Guest lecturer, CS-556, UoC, Spring 2010
- Myrmics is a task-parallel runtime / operating systems for the 512-core prototype processor build using Formic boards. Both Myrmics, Formic boards, and the Formic 512-core platform are designed and built in CARV.
- SCOOP is a compiler and static analysis of task parallel C programs.
- Locksmith is a tool for finding races in C programs.
- The mechanization of the contextual effects soundness proofs in the Coq theorem prover.
- ProxyC a tool for adding transparent proxies in Java programs.
Students, Supervised or Co-Supervised
- Foivos Zakkak, PhD
- Pavlos Katsogridakis, MSc
- Irini Stavrakantonaki, MSc
- Rafail Troulakis, Undergrad
- Nikos Papakonstantinou, MSc
- Apostolos Glenis, MSc
- Christi Symeonidou, MSc
- George Chinis, MSc
- Evangelos Kafentarakis, MSc
- Dimitrios Skarlatos, Intern
- Alexandros Labrineas, MSc
- Dimitris Chasapis, MSc