EDBT 2026 Demo / reviewers in the wild / expert
Adam Shaw
dblp:37/3936
· DBLP profile ↗
6ranked-venue papers
0as first author
0since 2021 · last 2016
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 4Systems, architecture and hardware · 1Human-computer interaction and ubiquitous computing · 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.
| Software engineering, system software, and programming languages
1 paper |
Compilers and program optimization · 100% | |
| Computer architecture, parallel and distributed computing, and storage systems
1 paper |
Parallel and multicore computing · 100% |
Topics — the 2 heaviest of 2, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Compilers and program optimization
parallelizing compiler |
0.2 | 1 | 2013 | Data-only flattening for nested data parallelism · PPoPP 2013 |
Parallel and multicore computing › data parallelism
nested data parallelism |
0.2 | 1 | 2013 | Data-only flattening for nested data parallelism · PPoPP 2013 |
Methods — techniques the papers use, named apart from their topics
rewriting system · 0.3formal semantics · 0.3
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2016 | chidb: Building a Simple Relational Database System from ScratchabstractWe present chidb, a medium to large-scale programming project where students implement the main components of a relational database management system, including B-tree data structures for tables and indexes, a database machine with registers and a selection of high-level and low-level instructions, and a SQL compiler targeting that machine. Moreover, chidb's SQL compiler's internal representation is a direct encoding of the relational algebra, whereby the theory that might otherwise be relegated to notes and blackboards is directly connected to practice and experience. The project uses the C programming language and is demonstrably suitable for use in advanced undergraduate courses; we have administered this project through five iterations of our databases course for advanced undergraduates. chidb is freely available online and customizable to suit the needs and tastes of any particular instructor. Borja Sotomayor, Adam Shaw |
SIGCSE | 2 |
| 2013 | Data-only flattening for nested data parallelismabstractData parallelism has proven to be an effective technique for high-level programming of a certain class of parallel applications, but it is not well suited to irregular parallel computations. Blelloch and others proposed nested data parallelism (NDP) as a language mechanism for programming irregular parallel applications in a declarative data-parallel style. The key to this approach is a compiler transformation that flattens the NDP computation and data structures into a form that can be executed efficiently on a wide-vector SIMD architecture. Unfortunately, this technique is ill suited to execution on today's multicore machines. We present a new technique, called data-only flattening, for the compilation of NDP, which is suitable for multicore architectures. Data-only flattening transforms nested data structures in order to expose programs to various optimizations while leaving control structures intact. We present a formal semantics of data-only flattening in a core language with a rewriting system. We demonstrate the effectiveness of this technique in the Parallel ML implementation and we report encouraging experimental results across various benchmark applications. Lars Bergstrom, Matthew Fluet, Mike Rainey, John H. Reppy, Stephen Rosen, Adam Shaw |
PPoPP | 6 |
| 2012 | Lazy tree splittingabstractAbstract Nested data-parallelism (NDP) is a language mechanism that supports programming irregular parallel applications in a declarative style. In this paper, we describe the implementation of NDP in Parallel ML (PML), which is a part of the Manticore system. One of the main challenges of implementing NDP is managing the parallel decomposition of work. If we have too many small chunks of work, the overhead will be too high, but if we do not have enough chunks of work, processors will be idle. Recently, the technique of Lazy Binary Splitting was proposed to address this problem for nested parallel loops over flat arrays. We have adapted this technique to our implementation of NDP, which uses binary trees to represent parallel arrays. This new technique, which we call Lazy Tree Splitting (LTS), has the key advantage of performance robustness , i.e., it does not require tuning to get the best performance for each program. We describe the implementation of the standard NDP operations using LTS and present experimental data that demonstrate the scalability of LTS across a range of benchmarks. Lars Bergstrom, Matthew Fluet, Mike Rainey, John H. Reppy, Adam Shaw |
J. Funct. Program. | 5 |
| 2010 | Lazy tree splittingabstractNested data-parallelism (NDP) is a declarative style for programming irregular parallel applications. NDP languages provide language features favoring the NDP style, efficient compilation of NDP programs, and various common NDP operations like parallel maps, filters, and sum-like reductions. In this paper, we describe the implementation of NDP in Parallel ML (PML), part of the Manticore project. Managing the parallel decomposition of work is one of the main challenges of implementing NDP. If the decomposition creates too many small chunks of work, performance will be eroded by too much parallel overhead. If, on the other hand, there are too few large chunks of work, there will be too much sequential processing and processors will sit idle. Lars Bergstrom, Mike Rainey, John H. Reppy, Adam Shaw, Matthew Fluet |
ICFP | 4 |
| 2010 | Implicitly threaded parallelism in ManticoreabstractAbstract The increasing availability of commodity multicore processors is making parallel computing ever more widespread. In order to exploit its potential, programmers need languages that make the benefits of parallelism accessible and understandable. Previous parallel languages have traditionally been intended for large-scale scientific computing, and they tend not to be well suited to programming the applications one typically finds on a desktop system. Thus, we need new parallel-language designs that address a broader spectrum of applications. The Manticore project is our effort to address this need. At its core is Parallel ML, a high-level functional language for programming parallel applications on commodity multicore hardware. Parallel ML provides a diverse collection of parallel constructs for different granularities of work. In this paper, we focus on the implicitly threaded parallel constructs of the language, which support fine-grained parallelism. We concentrate on those elements that distinguish our design from related ones, namely, a novel parallel binding form, a nondeterministic parallel case form, and the treatment of exceptions in the presence of data parallelism. These features differentiate the present work from related work on functional data-parallel language designs, which have focused largely on parallel problems with regular structure and the compiler transformations—most notably, flattening—that make such designs feasible. We present detailed examples utilizing various mechanisms of the language and give a formal description of our implementation. Matthew Fluet, Mike Rainey, John H. Reppy, Adam Shaw |
J. Funct. Program. | 4 |
| 2008 | Implicitly-threaded parallelism in Manticore
Matthew Fluet, Mike Rainey, John H. Reppy, Adam Shaw |
ICFP | 4 |