Demo Data from EDBT 2026 / reviewers in the wild / expert
Hassan Chafi
dblp:94/3582
· DBLP profile ↗
32ranked-venue papers
4as first author
2since 2021 · last 2026
0009-0003-1172-0409ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 15 · 3 first-author · 1 since 2021Software engineering, systems software and programming languages · 10 · 1 first-author · 1 since 2021Databases, data management, data science and information retrieval · 7Artificial intelligence and machine learning · 1Theory of computation · 1
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.
| Databases, data mining, and information retrieval
8 papers |
Graph data management · 88% Query processing and optimization · 5% Data stream processing · 3% | |
| Computer architecture, parallel and distributed computing, and storage systems
9 papers |
Parallel and multicore computing · 35% Performance modeling and evaluation · 22% Distributed systems · 20% | |
| Software engineering, system software, and programming languages
11 papers |
Concurrent programming · 46% Compilers and program optimization · 32% Programming languages and type systems · 13% | |
| Theoretical computer science
2 papers |
Graph algorithms and graph theory · 100% |
Topics — the 30 heaviest of 50, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Graph data management › graph pattern matching
subgraph matching |
0.5 | 2 | 2018 | TurboFlux: A Fast Continuous Subgraph Matching System for Streaming Graph Data · SIGMOD Conference 2018 Taming Subgraph Isomorphism for RDF Query Processing · Proc. VLDB Endow. 2015 |
Graph data management › graph query processing
distributed graph queries |
0.5 | 1 | 2021 | aDFS: An Almost Depth-First-Search Distributed Graph-Querying System · USENIX ATC 2021 |
Performance modeling and evaluation
benchmarking |
0.5 | 2 | 2016 | LDBC Graphalytics: A Benchmark for Large-Scale Graph Analysis on Parallel and Distributed Platforms · Proc. VLDB Endow. 2016 The LDBC Social Network Benchmark: Interactive Workload · SIGMOD Conference 2015 |
Graph data management › graph pattern matching › subgraph matching
continuous subgraph matching |
0.3 | 1 | 2018 | TurboFlux: A Fast Continuous Subgraph Matching System for Streaming Graph Data · SIGMOD Conference 2018 |
Programming languages and type systems
domain-specific languages |
0.3 | 2 | 2012 | Green-Marl: a DSL for easy and efficient graph analysis · ASPLOS 2012 OptiML: An Implicitly Parallel Domain-Specific Language for Machine Learning · ICML 2011 |
Concurrent programming
transactional memory |
0.3 | 4 | 2007 | A Scalable, Non-blocking Approach to Transactional Memory · HPCA 2007 The Atomos transactional programming language · PLDI 2006 Architectural Semantics for Practical Transactional Memory · ISCA 2006 |
Graph data management
graph analytics |
0.2 | 1 | 2016 | Using Domain-Specific Languages For Analytic Graph Databases · Proc. VLDB Endow. 2016 |
Graph data management
graph pattern matching |
0.2 | 1 | 2016 | Using Domain-Specific Languages For Analytic Graph Databases · Proc. VLDB Endow. 2016 |
Graph data management
graph query processing |
0.2 | 1 | 2016 | Using Domain-Specific Languages For Analytic Graph Databases · Proc. VLDB Endow. 2016 |
Graph data management › graph analytics
large-scale graph analytics |
0.2 | 1 | 2016 | LDBC Graphalytics: A Benchmark for Large-Scale Graph Analysis on Parallel and Distributed Platforms · Proc. VLDB Endow. 2016 |
Graph data management
distributed graph processing |
0.2 | 1 | 2015 | PGX.D: a fast distributed graph processing engine · SC 2015 |
Graph data management › RDF data management
RDF query processing |
0.2 | 1 | 2015 | Taming Subgraph Isomorphism for RDF Query Processing · Proc. VLDB Endow. 2015 |
Concurrent programming
concurrent data structures |
0.2 | 2 | 2010 | A practical concurrent binary search tree · PPoPP 2010 Transactional predication: high-performance concurrent sets and maps for STM · PODC 2010 |
Distributed systems › distributed graph processing
distributed graph processing engine |
0.2 | 1 | 2015 | PGX.D: a fast distributed graph processing engine · SC 2015 |
Graph algorithms and graph theory
subgraph isomorphism |
0.2 | 1 | 2015 | Taming Subgraph Isomorphism for RDF Query Processing · Proc. VLDB Endow. 2015 |
Query processing and optimization › query execution
compiled query execution |
0.2 | 1 | 2014 | Building Efficient Query Engines in a High-Level Language · Proc. VLDB Endow. 2014 |
Runtime systems and virtual machines › dynamic compilation
just-in-time compilation |
0.2 | 1 | 2014 | Surgical precision JIT compilers · PLDI 2014 |
Compilers and program optimization › dynamic optimization
profile-guided optimization |
0.2 | 1 | 2014 | Surgical precision JIT compilers · PLDI 2014 |
Compilers and program optimization › domain-specific compilation
query compilation |
0.2 | 1 | 2014 | Building Efficient Query Engines in a High-Level Language · Proc. VLDB Endow. 2014 |
Concurrent programming › concurrency control
optimistic concurrency control |
0.2 | 2 | 2010 | A practical concurrent binary search tree · PPoPP 2010 A Scalable, Non-blocking Approach to Transactional Memory · HPCA 2007 |
Distributed systems › distributed database
distributed query processing |
0.1 | 1 | 2021 | aDFS: An Almost Depth-First-Search Distributed Graph-Querying System · USENIX ATC 2021 |
Compilers and program optimization › parallelization
data parallelism |
0.1 | 1 | 2012 | Green-Marl: a DSL for easy and efficient graph analysis · ASPLOS 2012 |
Compilers and program optimization
parallelizing compiler |
0.1 | 1 | 2012 | Green-Marl: a DSL for easy and efficient graph analysis · ASPLOS 2012 |
Parallel and multicore computing
domain-specific language |
0.1 | 1 | 2011 | A domain-specific approach to heterogeneous parallelism · PPoPP 2011 |
Parallel and multicore computing › parallel computing
heterogeneous parallelism |
0.1 | 1 | 2011 | A domain-specific approach to heterogeneous parallelism · PPoPP 2011 |
Parallel and multicore computing
parallel programming runtimes |
0.1 | 1 | 2011 | A domain-specific approach to heterogeneous parallelism · PPoPP 2011 |
Parallel and multicore computing
transactional memory |
0.1 | 2 | 2006 | Architectural Semantics for Practical Transactional Memory · ISCA 2006 Tradeoffs in transactional memory virtualization · ASPLOS 2006 |
Concurrent programming › concurrent data structures
concurrent binary search tree |
0.1 | 1 | 2010 | A practical concurrent binary search tree · PPoPP 2010 |
Concurrent programming › transactional memory
software transactional memory |
0.1 | 1 | 2010 | Transactional predication: high-performance concurrent sets and maps for STM · PODC 2010 |
Concurrent programming › concurrent data structures
transactional data structures |
0.1 | 1 | 2010 | Transactional predication: high-performance concurrent sets and maps for STM · PODC 2010 |
Methods — techniques the papers use, named apart from their topics
ghost nodes · 0.4edge partitioning · 0.4cooperative context switching · 0.4choke-point driven benchmark methodology · 0.4high-level language · 0.4generative programming · 0.4intermediate result representation · 0.3incremental maintenance · 0.3implicit parallelism · 0.2compiler optimization · 0.2DSL compilation · 0.2API invocation elimination · 0.2domain-specific language design · 0.2performance evaluation · 0.1software transactional memory techniques · 0.1optimistic synchronization · 0.1transactional memory violation handlers · 0.1source code analysis · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Domain-specific language engineering for large-scale graph analytics using Spoofax: An industry report
Houda Boukham, Guido Wachsmuth, Oskar van Rest, Hassan Chafi, Sungpack Hong, Martijn Dwars, Arnaud Delamare, Hamza Boucherit, Dalila Chiadmi |
Sci. Comput. Program. | 4 |
| 2021 | aDFS: An Almost Depth-First-Search Distributed Graph-Querying System
Vasileios Trigonakis, Jean-Pierre Lozi, Tomás Faltín, Nicholas P. Roth, Iraklis Psaroudakis, Arnaud Delamare, Vlad Haprian, Calin Iorgulescu, Petr Koupy, Jinsoo Lee, Sungpack Hong, Hassan Chafi |
USENIX ATC | 12 |
| 2020 | CSR++: A Fast, Scalable, Update-Friendly Graph Data StructureabstractThe graph model enables a broad range of analysis, thus graph processing is an invaluable tool in data analytics. At the heart of every graph-processing system lies a concurrent graph data structure storing the graph. Such a data structure needs to be highly efficient for both graph algorithms and queries. Due to the continuous evolution, the sparsity, and the scale-free nature of real-world graphs, graph-processing systems face the challenge of providing an appropriate graph data structure that enables both fast analytical workloads and low-memory graph mutations. Existing graph structures offer a hard trade-off between read-only performance, update friendliness, and memory consumption upon updates. In this paper, we introduce CSR++, a new graph data structure that removes these trade-offs and enables both fast read-only analytics and quick and memory-friendly mutations. CSR++ combines ideas from CSR, the fastest read-only data structure, and adjacency lists to achieve the best of both worlds. We compare CSR++ to CSR, adjacency lists from the Boost Graph Library, and LLAMA, a state-of-the-art update-friendly graph structure. In our evaluation, which is based on popular graph-processing algorithms executed over real-world graphs, we show that CSR++ remains close to CSR in read-only concurrent performance (within 10% on average), while significantly outperforming CSR (by an order of magnitude) and LLAMA (by almost 2×) with frequent updates. Soukaina Firmli, Vasileios Trigonakis, Jean-Pierre Lozi, Iraklis Psaroudakis, Alexander Weld, Dalila Chiadmi, Sungpack Hong, Hassan Chafi |
OPODIS | 8 |
| 2019 | Multi-level Graph Drawing Using Infomap Clustering
Seok-Hee Hong 0001, Peter Eades, Marnijati Torkel, David Chae, Sungpack Hong, Daniel Langerenken, Hassan Chafi |
GD | 8 |
| 2018 | TurboFlux: A Fast Continuous Subgraph Matching System for Streaming Graph DataabstractA dynamic graph is defined by an initial graph and a graph update stream consisting of edge insertions and deletions. Identifying and monitoring critical patterns in the dynamic graph is important in various application domains such as fraud detection, cyber security, and emergency response. Given a dynamic data graph and a query graph, a continuous subgraph matching system reports positive matches for an edge insertion and reports negative matches for an edge deletion. Previous systems show significantly low throughput due to either repeated subgraph matching for each edge update or expensive overheads in maintaining enormous intermediate results. We present a fast continuous subgraph matching system called TurboFlux which provides high throughput over a fast graph update stream. TurboFlux employs a concise representation of intermediate results, and its execution model allows fast incremental maintenance. Our empirical evaluation shows that TurboFlux significantly outperforms existing competitors by up to six orders of magnitude. Kyoungmin Kim 0002, In Seo, Wook-Shin Han, Jeonghoon Lee 0004, Sungpack Hong, Hassan Chafi, Hyungyu Shin, Geonhwa Jeong |
SIGMOD Conference | 6 |
| 2017 | Modeling, analysis, and experimental comparison of streaming graph-partitioning policies
Sungpack Hong, Hassan Chafi, Alexandru Iosup, Dick H. J. Epema |
J. Parallel Distributed Comput. | 3 |
| 2016 | LDBC Graphalytics: A Benchmark for Large-Scale Graph Analysis on Parallel and Distributed PlatformsabstractIn this paper we introduce LDBC Graphalytics, a new industrial-grade benchmark for graph analysis platforms. It consists of six deterministic algorithms, standard datasets, synthetic dataset generators, and reference output, that enable the objective comparison of graph analysis platforms. Its test harness produces deep metrics that quantify multiple kinds of system scalability, such as horizontal/vertical and weak/strong, and of robustness, such as failures and performance variability. The benchmark comes with open-source software for generating data and monitoring performance. We describe and analyze six implementations of the benchmark (three from the community, three from the industry), providing insights into the strengths and weaknesses of the platforms. Key to our contribution, vendors perform the tuning and benchmarking of their platforms. Alexandru Iosup, Tim Hegeman, Wing Lung Ngai, Stijn Heldens, Arnau Prat-Pérez, Thomas Manhardt, Hassan Chafi, Mihai Capota, Narayanan Sundaram, Michael J. Anderson, Ilie Gabriel Tanase, Yinglong Xia, Lifeng Nai, Peter Boncz |
Proc. VLDB Endow. | 7 |
| 2016 | Using Domain-Specific Languages For Analytic Graph DatabasesabstractRecently graph has been drawing lots of attention both as a natural data model that captures fine-grained relationships between data entities and as a tool for powerful data analysis that considers such relationships. In this paper, we present a new graph database system that integrates a robust graph storage with an efficient graph analytics engine. Primarily, our system adopts two domain-specific languages (DSLs), one for describing graph analysis algorithms and the other for graph pattern matching queries. Compared to the API-based approaches in conventional graph processing systems, the DSL-based approach provides users with more flexible and intuitive ways of expressing algorithms and queries. Moreover, the DSL-based approach has significant performance benefits as well, (1) by skipping (remote) API invocation overhead and (2) by applying high-level optimization from the compiler. Martin Sevenich, Sungpack Hong, Oskar van Rest, Jay Banerjee, Hassan Chafi |
Proc. VLDB Endow. | 6 |
| 2015 | PGX.D: a fast distributed graph processing engineabstractGraph analysis is a powerful method in data analysis. Although several frameworks have been proposed for processing large graph instances in distributed environments, their performance is much lower than using efficient single-machine implementations provided with enough memory. In this paper, we present a fast distributed graph processing system, namely PGX.D. We show that PGX.D outperforms other distributed graph systems like GraphLab significantly (3x -- 90x). Furthermore, PGX.D on 4 to 16 machines is also faster than an implementation optimized for single-machine execution. Using a fast cooperative context-switching mechanism, we implement PGX.D as a low-overhead, bandwidth-efficient communication framework that supports remote data-pulling patterns. Moreover, PGX.D achieves large traffic reduction and good workload balance by applying selective ghost nodes, edge partitioning, and edge chunking transparently to the user. Our analysis confirms that each of these features is indeed crucial for overall performance of certain kinds of graph algorithms. Finally, we advocate the use of balanced beefy clusters where the sustained random DRAM-access bandwidth in aggregate is matched with the bandwidth of the underlying interconnection fabric. Sungpack Hong, Siegfried Depner, Thomas Manhardt, Jan Van Der Lugt, Merijn Verstraaten, Hassan Chafi |
SC | 6 |
| 2015 | The LDBC Social Network Benchmark: Interactive WorkloadabstractThe Linked Data Benchmark Council (LDBC) is now two years underway and has gathered strong industrial participation for its mission to establish benchmarks, and benchmarking practices for evaluating graph data management systems. The LDBC introduced a new choke-point driven methodology for developing benchmark workloads, which combines user input with input from expert systems architects, which we outline. This paper describes the LDBC Social Network Benchmark (SNB), and presents database benchmarking innovation in terms of graph query functionality tested, correlated graph generation techniques, as well as a scalable benchmark driver on a workload with complex graph dependencies. SNB has three query workloads under development: Interactive, Business Intelligence, and Graph Algorithms. We describe the SNB Interactive Workload in detail and illustrate the workload with some early results, as well as the goals for the two other workloads. Orri Erling, Alex Averbuch, Josep Lluís Larriba-Pey, Hassan Chafi, Andrey Gubichev, Arnau Prat-Pérez, Minh-Duc Pham, Peter Boncz |
SIGMOD Conference | 4 |
| 2015 | Taming Subgraph Isomorphism for RDF Query ProcessingabstractRDF data are used to model knowledge in various areas such as life sciences, Semantic Web, bioinformatics, and social graphs. The size of real RDF data reaches billions of triples. This calls for a framework for efficiently processing RDF data. The core function of processing RDF data is subgraph pattern matching. There have been two completely different directions for supporting efficient subgraph pattern matching. One direction is to develop specialized RDF query processing engines exploiting the properties of RDF data for the last decade, while the other direction is to develop efficient subgraph isomorphism algorithms for general, labeled graphs for over 30 years. Although both directions have a similar goal (i.e., finding subgraphs in data graphs for a given query graph), they have been independently researched without clear reason. We argue that a subgraph isomorphism algorithm can be easily modified to handle the graph homomorphism, which is the RDF pattern matching semantics, by just removing the injectivity constraint. In this paper, based on the state-of-the-art subgraph isomorphism algorithm, we propose an in-memory solution, Turbo HOM++ , which is tamed for the RDF processing, and we compare it with the representative RDF processing engines for several RDF benchmarks in a server machine where billions of triples can be loaded in memory. In order to speed up Turbo HOM++ , we also provide a simple yet effective transformation and a series of optimization techniques. Extensive experiments using several RDF benchmarks show that Turbo HOM++ consistently and significantly outperforms the representative RDF engines. Specifically, Turbo HOM++ outperforms its competitors by up to five orders of magnitude. Jinha Kim, Hyungyu Shin, Wook-Shin Han, Sungpack Hong, Hassan Chafi |
Proc. VLDB Endow. | 5 |
| 2014 | Surgical precision JIT compilersabstractJust-in-time (JIT) compilation of running programs provides more optimization opportunities than offline compilation. Modern JIT compilers, such as those in virtual machines like Oracle's HotSpot for Java or Google's V8 for JavaScript, rely on dynamic profiling as their key mechanism to guide optimizations. While these JIT compilers offer good average performance, their behavior is a black box and the achieved performance is highly unpredictable. Tiark Rompf, Arvind K. Sujeeth, Kevin J. Brown, HyoukJoong Lee, Hassan Chafi, Kunle Olukotun |
PLDI | 5 |
| 2014 | Building Efficient Query Engines in a High-Level LanguageabstractIn this paper we advocate that it is time for a radical rethinking of database systems design. Developers should be able to leverage high-level programming languages without having to pay a price in efficiency. To realize our vision of abstraction without regret , we present LegoBase, a query engine written in the high-level programming language Scala. The key technique to regain efficiency is to apply generative programming: the Scala code that constitutes the query engine, despite its high-level appearance, is actually a program generator that emits specialized, low-level C code. We show how the combination of high-level and generative programming allows to easily implement a wide spectrum of optimizations that are difficult to achieve with existing low-level query compilers, and how it can continuously optimize the query engine. We evaluate our approach with the TPC-H benchmark and show that: (a) with all optimizations enabled, our architecture significantly outperforms a commercial in-memory database system as well as an existing query compiler, (b) these performance improvements require programming just a few hundred lines of high-level code instead of complicated low-level code that is required by existing query compilers and, finally, that (c) the compilation overhead is low compared to the overall execution time, thus making our approach usable in practice for efficiently compiling query engines. Yannis Klonatos, Christoph Koch 0001, Tiark Rompf, Hassan Chafi |
Proc. VLDB Endow. | 4 |
| 2014 | Errata for "Building Efficient Query Engines in a High-Level Language" (PVLDB 7(10): 853-864)abstractThis is in response to recent feedback from our peers that calls for a number of clarifications regarding the experimental section of our paper. Yannis Klonatos, Christoph Koch 0001, Tiark Rompf, Hassan Chafi |
Proc. VLDB Endow. | 4 |
| 2014 | Delite: A Compiler Architecture for Performance-Oriented Embedded Domain-Specific LanguagesabstractDeveloping high-performance software is a difficult task that requires the use of low-level, architecture-specific programming models (e.g., OpenMP for CMPs, CUDA for GPUs, MPI for clusters). It is typically not possible to write a single application that can run efficiently in different environments, leading to multiple versions and increased complexity. Domain-Specific Languages (DSLs) are a promising avenue to enable programmers to use high-level abstractions and still achieve good performance on a variety of hardware. This is possible because DSLs have higher-level semantics and restrictions than general-purpose languages, so DSL compilers can perform higher-level optimization and translation. However, the cost of developing performance-oriented DSLs is a substantial roadblock to their development and adoption. In this article, we present an overview of the Delite compiler framework and the DSLs that have been developed with it. Delite simplifies the process of DSL development by providing common components, like parallel patterns, optimizations, and code generators, that can be reused in DSL implementations. Delite DSLs are embedded in Scala, a general-purpose programming language, but use metaprogramming to construct an Intermediate Representation (IR) of user programs and compile to multiple languages (including C++, CUDA, and OpenCL). DSL programs are automatically parallelized and different parts of the application can run simultaneously on CPUs and GPUs. We present Delite DSLs for machine learning, data querying, graph analysis, and scientific computing and show that they all achieve performance competitive to or exceeding C++ code. Arvind K. Sujeeth, Kevin J. Brown, HyoukJoong Lee, Tiark Rompf, Hassan Chafi, Martin Odersky, Kunle Olukotun |
ACM Trans. Embed. Comput. Syst. | 5 |
| 2013 | Composition and Reuse with Compiled Domain-Specific Languages
Arvind K. Sujeeth, Tiark Rompf, Kevin J. Brown, HyoukJoong Lee, Hassan Chafi, Victoria Popic, Aleksandar Prokopec, Vojin Jovanovic, Martin Odersky, Kunle Olukotun |
ECOOP | 5 |
| 2012 | Green-Marl: a DSL for easy and efficient graph analysisabstractThe increasing importance of graph-data based applications is fueling the need for highly efficient and parallel implementations of graph analysis software. In this paper we describe Green-Marl, a domain-specific language (DSL) whose high level language constructs allow developers to describe their graph analysis algorithms intuitively, but expose the data-level parallelism inherent in the algorithms. We also present our Green-Marl compiler which translates high-level algorithmic description written in Green-Marl into an efficient C++ implementation by exploiting this exposed data-level parallelism. Furthermore, our Green-Marl compiler applies a set of optimizations that take advantage of the high-level semantic knowledge encoded in the Green-Marl DSL. We demonstrate that graph analysis algorithms can be written very intuitively with Green-Marl through some examples, and our experimental results show that the compiler-generated implementation out of such descriptions performs as well as or better than highly-tuned hand-coded implementations. Sungpack Hong, Hassan Chafi, Eric Sedlar, Kunle Olukotun |
ASPLOS | 2 |
| 2012 | StagedSAC: a case study in performance-oriented DSL developmentabstractDomain-specific languages (DSLs) can bridge the gap between high-level programming and efficient execution. However, implementing compiler tool-chains for performance oriented DSLs requires significant effort. Recent research has produced methodologies and frameworks that promise to reduce this development effort by enabling quick transition from library-only, purely embedded DSLs to optimizing compilation. In this case study we report on our experience implementing a compiler for StagedSAC. StagedSAC is a DSL for arithmetic processing with multidimensional arrays modeled after the stand-alone language SAC (Single Assignment C). The main language feature of both SAC and StagedSAC is a loop construction that enables high-level and concise implementations of array algorithms. At the same time, the functional semantics of the two languages allow for advanced compiler optimizations and parallel code generation. Vlad Ureche, Tiark Rompf, Arvind K. Sujeeth, Hassan Chafi, Martin Odersky |
PEPM | 4 |
| 2011 | A Heterogeneous Parallel Framework for Domain-Specific LanguagesabstractComputing systems are becoming increasingly parallel and heterogeneous, and therefore new applications must be capable of exploiting parallelism in order to continue achieving high performance. However, targeting these emerging devices often requires using multiple disparate programming models and making decisions that can limit forward scalability. In previous work we proposed the use of domain-specific languages (DSLs) to provide high-level abstractions that enable transformations to high performance parallel code without degrading programmer productivity. In this paper we present a new end-to-end system for building, compiling, and executing DSL applications on parallel heterogeneous hardware, the Delite Compiler Framework and Runtime. The framework lifts embedded DSL applications to an intermediate representation (IR), performs generic, parallel, and domain-specific optimizations, and generates an execution graph that targets multiple heterogeneous hardware devices. Finally we present results comparing the performance of several machine learning applications written in OptiML, a DSL for machine learning that utilizes Delite, to C++ and MATLAB implementations. We find that the implicitly parallel OptiML applications achieve single-threaded performance comparable to C++ and outperform explicitly parallel MATLAB in nearly all cases. Kevin J. Brown, Arvind K. Sujeeth, HyoukJoong Lee, Tiark Rompf, Hassan Chafi, Martin Odersky, Kunle Olukotun |
PACT | 5 |
| 2011 | OptiML: An Implicitly Parallel Domain-Specific Language for Machine Learning
Arvind K. Sujeeth, HyoukJoong Lee, Kevin J. Brown, Tiark Rompf, Hassan Chafi, Anand R. Atreya, Martin Odersky, Kunle Olukotun |
ICML | 5 |
| 2011 | A domain-specific approach to heterogeneous parallelismabstractExploiting heterogeneous parallel hardware currently requires mapping application code to multiple disparate programming models. Unfortunately, general-purpose programming models available today can yield high performance but are too low-level to be accessible to the average programmer. We propose leveraging domain-specific languages (DSLs) to map high-level application code to heterogeneous devices. To demonstrate the potential of this approach we present OptiML, a DSL for machine learning. OptiML programs are implicitly parallel and can achieve high performance on heterogeneous hardware with no modification required to the source code. For such a DSL-based approach to be tractable at large scales, better tools are required for DSL authors to simplify language creation and parallelization. To address this concern, we introduce Delite, a system designed specifically for DSLs that is both a framework for creating an implicitly parallel DSL as well as a dynamic runtime providing automated targeting to heterogeneous parallel hardware. We show that OptiML running on Delite achieves single-threaded, parallel, and GPU performance superior to explicitly parallelized MATLAB code in nearly all cases. Hassan Chafi, Arvind K. Sujeeth, Kevin J. Brown, HyoukJoong Lee, Anand R. Atreya, Kunle Olukotun |
PPoPP | 1 |
| 2010 | Language virtualization for heterogeneous parallel computingabstractAs heterogeneous parallel systems become dominant, application developers are being forced to turn to an incompatiblemix of low level programming models (e.g. OpenMP, MPI, CUDA, OpenCL). However, these models do little to shield developers from the difficult problems of parallelization, data decomposition and machine-specific details. Most programmersare having a difficult time using these programming models effectively. To provide a programming modelthat addresses the productivity and performance requirements for the average programmer, we explore a domainspecificapproach to heterogeneous parallel programming. Hassan Chafi, Zach DeVito, Adriaan Moors, Tiark Rompf, Arvind K. Sujeeth, Pat Hanrahan, Martin Odersky, Kunle Olukotun |
OOPSLA | 1 |
| 2010 | Transactional predication: high-performance concurrent sets and maps for STMabstractConcurrent collection classes are widely used in multi-threaded programming, but they provide atomicity only for a fixed set of operations. Software transactional memory (STM) provides a convenient and powerful programming model for composing atomic operations, but concurrent collection algorithms that allow their operations to be composed using STM are significantly slower than their non-composable alternatives. Nathan Bronson, Jared Casper, Hassan Chafi, Kunle Olukotun |
PODC | 3 |
| 2010 | A practical concurrent binary search treeabstractWe propose a concurrent relaxed balance AVL tree algorithm that is fast, scales well, and tolerates contention. It is based on optimistic techniques adapted from software transactional memory, but takes advantage of specific knowledge of the the algorithm to reduce overheads and avoid unnecessary retries. We extend our algorithm with a fast linearizable clone operation, which can be used for consistent iteration of the tree. Experimental evidence shows that our algorithm outperforms a highly tuned concurrent skip list for many access patterns, with an average of 39% higher single-threaded throughput and 32% higher multi-threaded throughput over a range of contention levels and operation mixes. Nathan Bronson, Jared Casper, Hassan Chafi, Kunle Olukotun |
PPoPP | 3 |
| 2007 | A Scalable, Non-blocking Approach to Transactional MemoryabstractTransactional memory (TM) provides mechanisms that promise to simplify parallel programming by eliminating the need for locks and their associated problems (deadlock, livelock, priority inversion, convoying). For TM to be adopted in the long term, not only does it need to deliver on these promises, but it needs to scale to a high number of processors. To date, proposals for scalable TM have relegated livelock issues to user-level contention managers. This paper presents the first scalable TM implementation for directory-based distributed shared memory systems that is livelock free without the need for user-level intervention. The design is a scalable implementation of optimistic concurrency control that supports parallel commits with a two-phase commit protocol, uses write-back caches, and filters coherence messages. The scalable design is based on transactional coherence and consistency (TCC), which supports continuous transactions and fault isolation. A performance evaluation of the design using both scientific and enterprise benchmarks demonstrates that the directory-based TCC design scales efficiently for NUMA systems up to 64 processors Hassan Chafi, Jared Casper, Brian D. Carlstrom, Austen McDonald, Chi Cao Minh, Woongki Baek, Christoforos E. Kozyrakis, Kunle Olukotun |
HPCA | 1 |
| 2006 | Testing implementations of transactional memoryabstractTransactional memory is an attractive design concept for scalable multiprocessors because it offers efficient lock-free synchronization and greatly simplifies parallel software. Given the subtle issues involved with concurrency and atomicity, however, it is important that transactional memory systems be carefully designed and aggressively tested to ensure their correctness. In this paper, we propose an axiomatic framework to model the formal specification of a realistic transactional memory system which may contain a mix of transactional and non-transactional operations. Using this framework and extensions to analysis algorithms originally developed for checking traditional memory consistency, we show that the widely practiced pseudo-random testing methodology can be effectively applied to transactional memory systems. Our testing methodology was successful in finding previously unknown bugs in the implementation of TCC, a transactional memory system. We study two flavors of the underlying analysis algorithm, one incomplete and the other complete, and show that the complete algorithm while being theoretically intractable is very efficient in practice. Chaiyasit Manovit, Sudheendra Hangal, Hassan Chafi, Austen McDonald, Christoforos E. Kozyrakis, Kunle Olukotun |
PACT | 3 |
| 2006 | Tradeoffs in transactional memory virtualizationabstractFor transactional memory (TM) to achieve widespread acceptance, transactions should not be limited to the physical resources of any specific hardware implementation. TM systems should guarantee correct execution even when transactions exceed scheduling quanta, overflow the capacity of hardware caches and physical memory, or include more independent nesting levels than what is supported in hardware. Existing proposals for TM virtualization are either incomplete or rely on complex hardware implementations, which are an overkill if virtualization is invoked infrequently in the common case.We present eXtended Transactional Memory (XTM), the first TM virtualization system that virtualizes all aspects of transactional execution (time, space, and nesting depth). XTM is implemented in software using virtual memory support. It operates at page granularity, using private copies of overflowed pages to buffer memory updates until the transaction commits and snapshots of pages to detect interference between transactions. We also describe two enhancements to XTM that use limited hardware support to address key performance bottlenecks.We compare XTM to hardwarebased virtualization using both real applications and synthetic microbenchmarks. We show that despite being software-based, XTM and its enhancements are competitive with hardware-based alternatives. Overall, we demonstrate that XTM provides a complete, flexible, and low-cost mechanism for practical TM virtualization. JaeWoong Chung, Chi Cao Minh, Austen McDonald, Travis Skare, Hassan Chafi, Brian D. Carlstrom, Christoforos E. Kozyrakis, Kunle Olukotun |
ASPLOS | 5 |
| 2006 | The common case transactional behavior of multithreaded programsabstractTransactional memory (TM) provides an easy-to-use and high-performance parallel programming model for the upcoming chip-multiprocessor systems. Several researchers have proposed alternative hardware and software TM implementations. However, the lack of transaction-based programs makes it difficult to understand the merits of each proposal and to tune future TM implementations to the common case behavior of real application. This work addresses this problem by analyzing the common case transactional behavior for 35 multithreaded programs from a wide range of application domains. We identify transactions within the source code by mapping existing primitives for parallelism and synchronization management to transaction boundaries. The analysis covers basic characteristics such as transaction length, distribution of read-set and write-set size, and the frequency of nesting and I/O operations. The measured characteristics provide key insights into the design of efficient TM systems for both non-blocking synchronization and speculative parallelization. JaeWoong Chung, Hassan Chafi, Chi Cao Minh, Austen McDonald, Brian D. Carlstrom, Christoforos E. Kozyrakis, Kunle Olukotun |
HPCA | 2 |
| 2006 | Architectural Semantics for Practical Transactional MemoryabstractTransactional Memory (TM) simplifies parallel programming by allowing for parallel execution of atomic tasks. Thus far, TM systems have focused on implementing transactional state buffering and conflict resolution. Missing is a robust hardware/software interface, not limited to simplistic instructions defining transaction boundaries. Without rich semantics, current TM systems cannot support basic features of modern programming languages and operating systems such as transparent library calls, conditional synchronization, system calls, I/O, and runtime exceptions. This paper presents a comprehensive instruction set architecture (ISA) for TM systems. Our proposal introduces three key mechanisms: two-phase commit; support for software handlers on commit, violation, and abort; and full support for open- and closed-nested transactions with independent rollback. These mechanisms provide a flexible interface to implement programming language and operating system functionality. We also show that these mechanisms are practical to implement at the ISA and microarchitecture level for various TM systems. Using an execution-driven simulation, we demonstrate both the functionality (e.g., I/O and conditional scheduling within transactions) and performance potential (2.2× improvement for SPECjbb2000) of the proposed mechanisms. Overall, this paper establishes a rich and efficient interface to foster both hardware and software research on transactional memory. Austen McDonald, JaeWoong Chung, Brian D. Carlstrom, Chi Cao Minh, Hassan Chafi, Christoforos E. Kozyrakis, Kunle Olukotun |
ISCA | 5 |
| 2006 | The Atomos transactional programming languageabstractAtomos is the first programming language with implicit transactions, strong atomicity, and a scalable multiprocessor implementation. Atomos is derived from Java, but replaces its synchronization and conditional waiting constructs with simpler transactional alternatives.The Atomos watch statement allows programmers to specify fine-grained watch sets used with the Atomos retry conditional waiting statement for efficient transactional conflict-driven wakeup even in transactional memory systems with a limited number of transactional contexts. Atomos supports open-nested transactions, which are necessary for building both scalable application programs and virtual machine implementations.The implementation of the Atomos scheduler demonstrates the use of open nesting within the virtual machine and introduces the concept of transactional memory violation handlers that allow programs to recover from data dependency violations without rolling back.Atomos programming examples are given to demonstrate the usefulness of transactional programming primitives. Atomos and Java are compared through the use of several benchmarks. The results demonstrate both the improvements in parallel programming ease and parallel program performance provided by Atomos. Brian D. Carlstrom, Austen McDonald, Hassan Chafi, JaeWoong Chung, Chi Cao Minh, Christoforos E. Kozyrakis, Kunle Olukotun |
PLDI | 3 |
| 2006 | Executing Java programs with transactional memory
Brian D. Carlstrom, JaeWoong Chung, Hassan Chafi, Austen McDonald, Chi Cao Minh, Lance Hammond, Christoforos E. Kozyrakis, Kunle Olukotun |
Sci. Comput. Program. | 3 |
| 2005 | TAPE: a transactional application profiling environmentabstractTransactional Coherence and Consistency (TCC) provides a new parallel programming model that uses transactions as the basic unit of parallel work and communication. TCC simplifies the development of correct parallel code because hardware provides transaction atomicity and ordering. Nevertheless, the programmer or a dynamic compiler must still optimize the parallel code for performance.This paper presents TAPE, a hardware and software infrastructure for profiling in TCC systems. TAPE extends the hardware for transactional execution to identify performance impediments such as dependence violations, buffer overflows, and work imbalance. It filters infrequent events to reduce resource requirements and allows the programmer to focus on the most important bottlenecks. We demonstrate that TAPE introduces minimal die area and performance overhead and can be used continuously, even for production runs. Moreover, we demonstrate how to leverage the profiling information to guide optimization for a set of parallel applications. TAPE accurately identifies the source code location and type of the most important bottlenecks, allowing a programmer to achieve maximum parallel speedup with a few profiling steps. Hassan Chafi, Chi Cao Minh, Austen McDonald, Brian D. Carlstrom, JaeWoong Chung, Lance Hammond, Christoforos E. Kozyrakis, Kunle Olukotun |
ICS | 1 |