Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Dimitrios Prountzos

dblp:06/5033 · DBLP profile ↗
← Back
7ranked-venue papers
4as first author
0since 2021 · last 2015
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 5 · 3 first-authorSystems, architecture and hardware · 2 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Computer architecture, parallel and distributed computing, and storage systems
7 papers
Parallel and multicore computing · 86% High-performance computing · 14%
Software engineering, system software, and programming languages
4 papers
Compilers and program optimization · 33% Program synthesis and code generation · 28% Concurrent programming · 19%
Theoretical computer science
3 papers
Graph algorithms and graph theory · 67% Algorithms and data structures · 33%

Topics — the 14 heaviest of 16, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Parallel and multicore computing
parallel programming models
0.322012
Elixir: a system for synthesizing concurrent graph programs · OOPSLA 2012
The tao of parallelism in algorithms · PLDI 2011
Parallel and multicore computing
speculative parallelization
0.222011
A shape analysis for optimizing parallel graph programs · POPL 2011
Structure-driven optimizations for amorphous data-parallel programs · PPoPP 2010
Compilers and program optimization
program transformation
0.212015
Synthesizing parallel graph programs via automated planning · PLDI 2015
Parallel and multicore computing › parallel algorithms › parallel algorithm design
asynchronous parallel algorithms
0.212013
Betweenness centrality: algorithms and implementations · PPoPP 2013
Graph algorithms and graph theory › centrality
betweenness centrality
0.212013
Betweenness centrality: algorithms and implementations · PPoPP 2013
Algorithms and data structures
parallel algorithms
0.212013
Betweenness centrality: algorithms and implementations · PPoPP 2013
Program synthesis and code generation › concurrent program synthesis
parallel program synthesis
0.112012
Elixir: a system for synthesizing concurrent graph programs · OOPSLA 2012
High-performance computing › performance optimization
auto-tuning
0.112012
Elixir: a system for synthesizing concurrent graph programs · OOPSLA 2012
Concurrent programming › concurrency theory
commutativity
0.112011
Exploiting the commutativity lattice · PLDI 2011
Program analysis › static analysis › pointer analysis
shape analysis
0.112011
A shape analysis for optimizing parallel graph programs · POPL 2011
Parallel and multicore computing
parallel graph algorithms
0.112011
A shape analysis for optimizing parallel graph programs · POPL 2011
Parallel and multicore computing › parallel algorithms
irregular algorithms
0.112010
Structure-driven optimizations for amorphous data-parallel programs · PPoPP 2010
Graph algorithms and graph theory
graph algorithms
0.012012
Elixir: a system for synthesizing concurrent graph programs · OOPSLA 2012
Machine learning › Graph learning
graph algorithms
0.012011
The tao of parallelism in algorithms · PLDI 2011

Methods — techniques the papers use, named apart from their topics

automated planning · 0.4schedule specification · 0.4inference techniques · 0.4auto-tuning · 0.4dependence graph analysis · 0.4scheduling · 0.3operator formulation · 0.3shape analysis · 0.2speculative execution · 0.1optimistic execution · 0.1
YearPublicationVenuePosition
2015 Synthesizing parallel graph programs via automated planning
abstract
We describe a system that uses automated planning to synthesize correct and efficient parallel graph programs from high-level algorithmic specifications. Automated planning allows us to use constraints to declaratively encode program transformations such as scheduling, implementation selection, and insertion of synchronization. Each plan emitted by the planner satisfies all constraints simultaneously, and corresponds to a composition of these transformations. In this way, we obtain an integrated compilation approach for a very challenging problem domain. We have used this system to synthesize parallel programs for four graph problems: triangle counting, maximal independent set computation, preflow-push maxflow, and connected components. Experiments on a variety of inputs show that the synthesized implementations perform competitively with hand-written, highly-tuned code.
Dimitrios Prountzos, Roman Manevich, Keshav Pingali
PLDI1
2013 Betweenness centrality: algorithms and implementations
abstract
Betweenness centrality is an important metric in the study of social networks, and several algorithms for computing this metric exist in the literature. This paper makes three contributions. First, we show that the problem of computing betweenness centrality can be formulated abstractly in terms of a small set of operators that update the graph. Second, we show that existing parallel algorithms for computing betweenness centrality can be viewed as implementations of different schedules for these operators, permitting all these algorithms to be formulated in a single framework. Third, we derive a new asynchronous parallel algorithm for betweenness centrality that (i) works seamlessly for both weighted and unweighted graphs, (ii) can be applied to large graphs, and (iii) is able to extract large amounts of parallelism. We implemented this algorithm and compared it against a number of publicly available implementations of previous algorithms on two different multicore architectures. Our results show that the new algorithm is the best performing one in most cases, particularly for large graphs and large thread counts, and is always competitive against other algorithms.
Dimitrios Prountzos, Keshav Pingali
PPoPP1
2012 Elixir: a system for synthesizing concurrent graph programs
abstract
Algorithms in new application areas like machine learning and network analysis use "irregular" data structures such as graphs, trees and sets. Writing efficient parallel code in these problem domains is very challenging because it requires the programmer to make many choices: a given problem can usually be solved by several algorithms, each algorithm may have many implementations, and the best choice of algorithm and implementation can depend not only on the characteristics of the parallel platform but also on properties of the input data such as the structure of the graph. One solution is to permit the application programmer to experiment with different algorithms and implementations without writing every variant from scratch. Auto-tuning to find the best variant is a more ambitious solution. These solutions require a system for automatically producing efficient parallel implementations from high-level specifications. Elixir, the system described in this paper, is the first step towards this ambitious goal. Application programmers write specifications that consist of an operator, which describes the computations to be performed, and a schedule for performing these computations. Elixir uses sophisticated inference techniques to produce efficient parallel code from such specifications.
Dimitrios Prountzos, Roman Manevich, Keshav Pingali
OOPSLA1
2011 Exploiting the commutativity lattice
Milind Kulkarni 0001, Donald Nguyen, Dimitrios Prountzos, Keshav Pingali
PLDI3
2011 The tao of parallelism in algorithms
abstract
For more than thirty years, the parallel programming community has used the dependence graph as the main abstraction for reasoning about and exploiting parallelism in "regular" algorithms that use dense arrays, such as finite-differences and FFTs. In this paper, we argue that the dependence graph is not a suitable abstraction for algorithms in new application areas like machine learning and network analysis in which the key data structures are "irregular" data structures like graphs, trees, and sets.
Keshav Pingali, Donald Nguyen, Milind Kulkarni 0001, Martin Burtscher, Muhammad Amber Hassaan, Rashid Kaleem, Tsung-Hsien Lee, Andrew Lenharth, Roman Manevich, Mario Méndez-Lojo, Dimitrios Prountzos
PLDI11
2011 A shape analysis for optimizing parallel graph programs
abstract
Computations on unstructured graphs are challenging to parallelize because dependences in the underlying algorithms are usually complex functions of runtime data values, thwarting static parallelization. One promising general-purpose parallelization strategy for these algorithms is optimistic parallelization.
Dimitrios Prountzos, Roman Manevich, Keshav Pingali, Kathryn S. McKinley
POPL1
2010 Structure-driven optimizations for amorphous data-parallel programs
abstract
Irregular algorithms are organized around pointer-based data structures such as graphs and trees, and they are ubiquitous in applications. Recent work by the Galois project has provided a systematic approach for parallelizing irregular applications based on the idea of optimistic or speculative execution of programs. However, the overhead of optimistic parallel execution can be substantial. In this paper, we show that many irregular algorithms have structure that can be exploited and present three key optimizations that take advantage of algorithmic structure to reduce speculative overheads. We describe the implementation of these optimizations in the Galois system and present experimental results to demonstrate their benefits. To the best of our knowledge, this is the first system to exploit algorithmic structure to optimize the execution of irregular programs.
Mario Méndez-Lojo, Donald Nguyen, Dimitrios Prountzos, Muhammad Amber Hassaan, Milind Kulkarni 0001, Martin Burtscher, Keshav Pingali
PPoPP3