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.

Donald Nguyen

dblp:48/4701 · also Donald D. Nguyen · DBLP profile ↗
← Back
16ranked-venue papers
4as first author
0since 2021 · last 2017
—ORCID · none

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

Systems, architecture and hardware · 13 · 3 first-authorSoftware engineering, systems software and programming languages · 7 · 4 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
12 papers
Parallel and multicore computing · 72% High-performance computing · 14% Electronic design automation · 4%
Software engineering, system software, and programming languages
4 papers
Concurrent programming · 100%
Theoretical computer science
3 papers
Graph algorithms and graph theory · 60% Automated reasoning and model checking · 40%

Topics — the 29 heaviest of 32, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Parallel and multicore computing
parallel programming models
0.532015
Kinetic Dependence Graphs · ASPLOS 2015
Deterministic galois: on-demand, portable and parameterless · ASPLOS 2014
The tao of parallelism in algorithms · PLDI 2011
Parallel and multicore computing
task scheduling
0.422015
Kinetic Dependence Graphs · ASPLOS 2015
A lightweight infrastructure for graph analytics · SOSP 2013
Concurrent programming
transactional memory
0.312017
What Scalable Programs Need from Transactional Memory · ASPLOS 2017
Parallel and multicore computing › transactional memory
transactional memory scalability
0.312017
What Scalable Programs Need from Transactional Memory · ASPLOS 2017
Parallel and multicore computing
parallel graph algorithms
0.212016
DSMR: a shared and distributed memory algorithm for single-source shortest path problem · PPoPP 2016
Parallel and multicore computing › parallel algorithms › graph algorithms
single-source shortest path
0.212016
DSMR: a shared and distributed memory algorithm for single-source shortest path problem · PPoPP 2016
Parallel and multicore computing › parallelizing compiler
dependence graph
0.212015
Kinetic Dependence Graphs · ASPLOS 2015
Concurrent programming
deterministic execution
0.212014
Deterministic galois: on-demand, portable and parameterless · ASPLOS 2014
Concurrent programming › concurrency models
nondeterminism
0.212014
Deterministic galois: on-demand, portable and parameterless · ASPLOS 2014
Parallel and multicore computing › deterministic execution
deterministic parallelism
0.212014
Deterministic galois: on-demand, portable and parameterless · ASPLOS 2014
High-performance computing › sparse linear algebra
matrix ordering
0.212014
Parallelization of Reordering Algorithms for Bandwidth and Wavefront Reduction · SC 2014
Parallel and multicore computing
parallel algorithms
0.212014
Parallelization of Reordering Algorithms for Bandwidth and Wavefront Reduction · SC 2014
High-performance computing › sparse linear algebra
sparse matrix computation
0.212014
Parallelization of Reordering Algorithms for Bandwidth and Wavefront Reduction · SC 2014
High-performance computing › sparse linear algebra › sparse matrix computation
sparse matrix-vector multiplication
0.212014
Parallelization of Reordering Algorithms for Bandwidth and Wavefront Reduction · SC 2014
Electronic design automation › high-level synthesis
scheduling
0.222014
Synthesizing concurrent schedulers for irregular algorithms · ASPLOS 2011
Deterministic galois: on-demand, portable and parameterless · ASPLOS 2014
Parallel and multicore computing › graph processing
parallel graph analytics
0.212013
A lightweight infrastructure for graph analytics · SOSP 2013
Processor architecture and microarchitecture
speculative execution
0.212013
A lightweight infrastructure for graph analytics · SOSP 2013
Parallel and multicore computing › parallel algorithms
irregular algorithms
0.122011
Structure-driven optimizations for amorphous data-parallel programs · PPoPP 2010
Synthesizing concurrent schedulers for irregular algorithms · ASPLOS 2011
Concurrent programming › concurrency theory
commutativity
0.112011
Exploiting the commutativity lattice · PLDI 2011
Parallel and multicore computing
speculative parallelization
0.112010
Structure-driven optimizations for amorphous data-parallel programs · PPoPP 2010
Performance modeling and evaluation
benchmarking
0.112017
What Scalable Programs Need from Transactional Memory · ASPLOS 2017
Graph algorithms and graph theory
network analysis
0.112015
Kinetic Dependence Graphs · ASPLOS 2015
Automated reasoning and model checking › satisfiability › SAT solving
parallel SAT solving
0.112006
Poster reception - Alef parallel SAT solver for HPC hardware · SC 2006
Automated reasoning and model checking
satisfiability
0.112006
Poster reception - Alef parallel SAT solver for HPC hardware · SC 2006
Memory systems › data locality
cache locality optimization
0.112014
Parallelization of Reordering Algorithms for Bandwidth and Wavefront Reduction · SC 2014
Parallel and multicore computing
domain-specific language
0.012013
A lightweight infrastructure for graph analytics · SOSP 2013
Machine learning › Graph learning
graph algorithms
0.012011
The tao of parallelism in algorithms · PLDI 2011
Machine learning and data management
machine learning for systems
0.012009
Machine learning-based prefetch optimization for data center applications · SC 2009
Parallel and multicore computing
parallel computing
0.012006
Poster reception - Alef parallel SAT solver for HPC hardware · SC 2006

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

software transactional memory · 0.6hardware transactional memory · 0.6kinetic dependence graph · 0.4incremental graph update · 0.4on-demand determinism · 0.4synthesis · 0.2dijkstra's algorithm · 0.2dependence graph analysis · 0.2delta-stepping · 0.2sloan algorithm · 0.2reverse cuthill-mckee · 0.2machine learning-based prefetching · 0.1problem partitioning · 0.1parallel SAT algorithms · 0.1
YearPublicationVenuePosition
2017 What Scalable Programs Need from Transactional Memory
abstract
Transactional memory (TM) has been the focus of numerous studies, and it is supported in processors such as the IBM Blue Gene/Q and Intel Haswell. Many studies have used the STAMP benchmark suite to evaluate their designs. However, the speedups obtained for the STAMP benchmarks on all TM systems we know of are quite limited; for example, with 64 threads on the IBM Blue Gene/Q, we observe a median speedup of 1.4X using the Blue Gene/Q hardware transactional memory (HTM), and a median speedup of 4.1X using a software transactional memory (STM).
Donald Nguyen, Keshav Pingali
ASPLOS1
2016 DSMR: A Parallel Algorithm for Single-Source Shortest Path Problem
abstract
The Single Source Shortest Path (SSSP) problem consists in finding the shortest paths from a vertex (the source vertex) to all other vertices in a graph. SSSP has numerous applications. For some algorithms and applications, it is useful to solve the SSSP problem in parallel. This is the case of Betweenness Centrality which solves the SSSP problem for multiple source vertices in large graphs. In this paper, we introduce the Dijkstra Strip Mined Relaxation (DSMR) algorithm, an efficient parallel SSSP algorithm for shared and distributed-memory systems. We also introduce a set of preprocessing optimization techniques that significantly reduce the communication overhead without increasing the total amount of work dramatically. Our results show that, DSMR is faster than the best previous algorithm, parallel Δ-Stepping, by up-to 7.38×.
Saeed Maleki, Donald Nguyen, Andrew Lenharth, María Jesús Garzarán, David A. Padua, Keshav Pingali
ICS2
2016 DSMR: a shared and distributed memory algorithm for single-source shortest path problem
abstract
The Single-Source Shortest Path (SSSP) problem is to find the shortest paths from a source vertex to all other vertices in a graph. In this paper, we introduce the Dijkstra Strip-Mined Relaxation (DSMR) algorithm, an efficient parallel SSSP algorithm for shared and distributed memory systems. Our results show that, DSMR is faster than parallel Δ-Stepping by a factor of up-to 1.66.
Saeed Maleki, Donald Nguyen, Andrew Lenharth, María Jesús Garzarán, David A. Padua, Keshav Pingali
PPoPP2
2015 Kinetic Dependence Graphs
abstract
Task graphs or dependence graphs are used in runtime systems to schedule tasks for parallel execution. In problem domains such as dense linear algebra and signal processing, dependence graphs can be generated from a program by static analysis. However, in emerging problem domains such as graph analytics, the set of tasks and dependences between tasks in a program are complex functions of runtime values and cannot be determined statically. In this paper, we introduce a novel approach for exploiting parallelism in such programs. This approach is based on a data structure called the kinetic dependence graph (KDG), which consists of a dependence graph together with update rules that incrementally update the graph to reflect changes in the dependence structure whenever a task is completed.
Muhammad Amber Hassaan, Donald Nguyen, Keshav Pingali
ASPLOS2
2015 Priority Queues Are Not Good Concurrent Priority Schedulers
Andrew Lenharth, Donald Nguyen, Keshav Pingali
Euro-Par2
2014 Deterministic galois: on-demand, portable and parameterless
abstract
Non-determinism in program execution can make program development and debugging difficult. In this paper, we argue that solutions to this problem should be on-demand, portable and parameterless. On-demand means that the programming model should permit the writing of non-deterministic programs since these programs often perform better than deterministic ones for the same problem. Portable means that the program should produce the same answer even if it is run on different machines. Parameterless means that if there are machine-dependent scheduling parameters that must be tuned for good performance, they must not affect the output.
Donald Nguyen, Andrew Lenharth, Keshav Pingali
ASPLOS1
2014 Parallelization of Reordering Algorithms for Bandwidth and Wavefront Reduction
abstract
Many sparse matrix computations can be speeded up if the matrix is first reordered. Reordering was originally developed for direct methods but it has recently become popular for improving the cache locality of parallel iterative solvers since reordering the matrix to reduce bandwidth and wave front can improve the locality of reference of sparse matrix-vector multiplication (SpMV), the key kernel in iterative solvers. In this paper, we present the first parallel implementations of two widely used reordering algorithms: Reverse Cut hill-McKee (RCM) and Sloan. On 16 cores of the Stampede supercomputer, our parallel RCM is 5.56 times faster on the average than a state-of-the-art sequential implementation of RCM in the HSL library. Sloan is significantly more constrained than RCM, but our parallel implementation achieves a speedup of 2.88X on the average over sequential HSL-Sloan. Reordering the matrix using our parallel RCM and then performing 100 SpMV iterations is twice as fast as using HSL-RCM and then performing the SpMV iterations, it is also 1.5 times faster than performing the SpMV iterations without reordering the matrix.
Konstantinos I. Karantasis, Andrew Lenharth, Donald Nguyen, María Jesús Garzarán, Keshav Pingali
SC3
2014 Brief announcement: parallelization of asynchronous variational integrators forshared memory architectures
abstract
Asynchronous variational integrators (AVIs) are used in computational mechanics and graphics to solve complex contact mechanics problems. The parallelization of AVI is difficult problem because it is not possible to build a dependence graph for AVI either at compile-time or at runtime. However, we show that if the dependence graph for AVI can be updated incrementally as the computation is performed, it is possible to parallelize AVI in a systematic way. Using this approach, we are able to obtain speedups of up to 20 on 24 cores for relatively small AVI problems.
Muhammad Amber Hassaan, Donald Nguyen, Keshav Pingali
SPAA2
2013 A lightweight infrastructure for graph analytics
abstract
Several domain-specific languages (DSLs) for parallel graph analytics have been proposed recently. In this paper, we argue that existing DSLs can be implemented on top of a general-purpose infrastructure that (i) supports very fine-grain tasks, (ii) implements autonomous, speculative execution of these tasks, and (iii) allows application-specific control of task scheduling policies. To support this claim, we describe such an implementation called the Galois system.
Donald Nguyen, Andrew Lenharth, Keshav Pingali
SOSP1
2011 Synthesizing concurrent schedulers for irregular algorithms
abstract
Scheduling is the assignment of tasks or activities to processors for execution, and it is an important concern in parallel programming. Most prior work on scheduling has focused either on static scheduling of applications in which the dependence graph is known at compile-time or on dynamic scheduling of independent loop iterations such as in OpenMP.
Donald Nguyen, Keshav Pingali
ASPLOS1
2011 Exploiting the commutativity lattice
Milind Kulkarni 0001, Donald Nguyen, Dimitrios Prountzos, Keshav Pingali
PLDI2
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
PLDI2
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
PPoPP2
2009 Prefetch optimizations on large-scale applications via parameter value prediction
abstract
A typical data center application requires the processor cycles of thousands of machines. Even a single-digit performance improvement can significantly reduce the cost and power consumption of a data center. Unfortunately, achieving sustained improvement, even if modest, is difficult. Data centers are dynamic environments where applications are frequently released and servers are continually upgraded. For maintainability and fault tolerance, the physical capabilities and configuration of the servers are abstracted from the application programmer.
Shih-Wei Liao, Tzu-Han Hung, Donald Nguyen, Hucheng Zhou, Chinyen Chou, Chia-Heng Tu
ICS3
2009 Machine learning-based prefetch optimization for data center applications
abstract
Performance tuning for data centers is essential and complicated. It is important since a data center comprises thousands of machines and thus a single-digit performance improvement can significantly reduce cost and power consumption. Unfortunately, it is extremely difficult as data centers are dynamic environments where applications are frequently released and servers are continually upgraded.
Shih-Wei Liao, Tzu-Han Hung, Donald Nguyen, Chinyen Chou, Chia-Heng Tu, Hucheng Zhou
SC3
2006 Poster reception - Alef parallel SAT solver for HPC hardware
abstract
Solvers for the Boolean satisfiability problem (SAT) are an enabling technology for a diverse set of applications, including formal verification of both hardware and software, mathematics, and planning. However, solver performance, measured in terms of speed and maximum problem size, is a limiting factor to the application of SAT to real-world problems. We are developing a parallel SAT solver, Alef, to take advantage of HPC hardware.The Alef parallel SAT solver utilizes algorithms and heuristics that improve its performance over existing approaches. We are developing the solver to run well on commercially available HPC hardware. Our analysis shows that our algorithms combined with the low message latency of supercomputers are likely to produce a significant performance improvement over existing solvers in terms of speed and maximum problem size. Our poster will describe the algorithms we are using, illustrate our approach to problem partitioning, and present our performance analysis to date.
James R. Ezick, Samuel B. Luckenbill, Donald Nguyen, Péter Szilágyi, John Starks, Richard A. Lethin
SC3