Anthony D. Nguyen

dblp:98/4734 · DBLP profile ↗
← Back
16ranked-venue papers
1as first author
0since 2021 · last 2011
—ORCID · none

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

Databases, data management, data science and information retrieval · 8Systems, architecture and hardware · 6 · 1 first-authorSoftware engineering, systems software and programming languages · 3Graphics, computer vision, multimedia, augmented reality and games · 1Applied, interdisciplinary, general and emerging 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.

Computer architecture, parallel and distributed computing, and storage systems
15 papers
Parallel and multicore computing · 41% Performance modeling and evaluation · 15% Processor architecture and microarchitecture · 13%
Databases, data mining, and information retrieval
5 papers
Indexing and storage engines · 43% Query processing and optimization · 34% Data mining · 24%
Theoretical computer science
1 paper
Mathematical optimization · 100%

Topics — the 30 heaviest of 45, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Parallel and multicore computing › parallel algorithms › sorting
parallel sorting
0.222010
Fast sort on CPUs and GPUs: a case for bandwidth oblivious SIMD sort · SIGMOD Conference 2010
Efficient implementation of sorting on multi-core SIMD CPU architecture · Proc. VLDB Endow. 2008
Processor architecture and microarchitecture
chip multiprocessor
0.232010
Scaling performance of interior-point method on large-scale chip multiprocessor system · SC 2007
Carbon: architectural support for fine-grained parallelism on chip multiprocessors · ISCA 2007
Debunking the 100X GPU vs. CPU myth: an evaluation of throughput computing on CPU and GPU · ISCA 2010
Data mining › pattern mining
frequent pattern mining
0.122007
Cache-conscious frequent pattern mining on modern and emerging processors · VLDB J. 2007
Cache-conscious Frequent Pattern Mining on a Modern Processor · VLDB 2005
Indexing and storage engines
in-memory index
0.112011
Designing fast architecture-sensitive tree search on modern multicore/many-core processors · ACM Trans. Database Syst. 2011
Indexing and storage engines
tree index
0.112010
FAST: fast architecture sensitive tree search on modern CPUs and GPUs · SIGMOD Conference 2010
Performance modeling and evaluation
benchmarking
0.112010
Debunking the 100X GPU vs. CPU myth: an evaluation of throughput computing on CPU and GPU · ISCA 2010
Memory systems › memory access optimization
cache blocking
0.112010
3.5-D Blocking Optimization for Stencil Computations on Modern CPUs and GPUs · SC 2010
GPUs and heterogeneous computing
GPU computing
0.112010
Debunking the 100X GPU vs. CPU myth: an evaluation of throughput computing on CPU and GPU · ISCA 2010
Memory systems › memory bandwidth
memory bandwidth optimization
0.112010
3.5-D Blocking Optimization for Stencil Computations on Modern CPUs and GPUs · SC 2010
Parallel and multicore computing › parallel algorithms › sorting
merge sort
0.112010
Fast sort on CPUs and GPUs: a case for bandwidth oblivious SIMD sort · SIGMOD Conference 2010
Parallel and multicore computing › parallel algorithms
sorting
0.112010
Fast sort on CPUs and GPUs: a case for bandwidth oblivious SIMD sort · SIGMOD Conference 2010
High-performance computing
stencil computation
0.112010
3.5-D Blocking Optimization for Stencil Computations on Modern CPUs and GPUs · SC 2010
Performance modeling and evaluation
throughput computing
0.112010
Debunking the 100X GPU vs. CPU myth: an evaluation of throughput computing on CPU and GPU · ISCA 2010
Query processing and optimization › join processing › join algorithms
hash join
0.112009
Sort vs. Hash Revisited: Fast Join Implementation on Modern Multi-Core CPUs · Proc. VLDB Endow. 2009
Query processing and optimization
join processing
0.112009
Sort vs. Hash Revisited: Fast Join Implementation on Modern Multi-Core CPUs · Proc. VLDB Endow. 2009
Query processing and optimization › join processing › join algorithms
sort-merge join
0.112009
Sort vs. Hash Revisited: Fast Join Implementation on Modern Multi-Core CPUs · Proc. VLDB Endow. 2009
Processor architecture and microarchitecture
many-core architecture
0.112009
Mapping High-Fidelity Volume Rendering for Medical Imaging to CPU, GPU and Many-Core Architectures · IEEE Trans. Vis. Comput. Graph. 2009
Parallel and multicore computing › parallel query processing
multicore query processing
0.112009
Sort vs. Hash Revisited: Fast Join Implementation on Modern Multi-Core CPUs · Proc. VLDB Endow. 2009
High-performance computing › scientific visualization
parallel volume rendering
0.112009
Mapping High-Fidelity Volume Rendering for Medical Imaging to CPU, GPU and Many-Core Architectures · IEEE Trans. Vis. Comput. Graph. 2009
Memory systems › memory access
atomic memory operation
0.112008
Atomic Vector Operations on Chip Multiprocessors · ISCA 2008
Processor architecture and microarchitecture
SIMD
0.112008
Efficient implementation of sorting on multi-core SIMD CPU architecture · Proc. VLDB Endow. 2008
Parallel and multicore computing › data parallelism
SIMD vectorization
0.112008
Atomic Vector Operations on Chip Multiprocessors · ISCA 2008
Data mining
pattern mining
0.112007
Cache-conscious frequent pattern mining on modern and emerging processors · VLDB J. 2007
Parallel and multicore computing › parallelization strategies
fine-grained parallelism
0.112007
Carbon: architectural support for fine-grained parallelism on chip multiprocessors · ISCA 2007
Embedded and real-time systems › real-time scheduling
hardware task scheduling
0.112007
Carbon: architectural support for fine-grained parallelism on chip multiprocessors · ISCA 2007
Parallel and multicore computing › parallel programming models
task parallelism
0.112007
Carbon: architectural support for fine-grained parallelism on chip multiprocessors · ISCA 2007
Mathematical optimization › numerical computation › numerical optimization › second-order methods
interior point methods
0.112007
Scaling performance of interior-point method on large-scale chip multiprocessor system · SC 2007
Mathematical optimization › numerical computation › numerical optimization › second-order methods › interior point methods
parallel interior-point method
0.112007
Scaling performance of interior-point method on large-scale chip multiprocessor system · SC 2007
Parallel and multicore computing › transactional memory
hardware transactional memory
0.112006
Hybrid transactional memory · PPoPP 2006
Parallel and multicore computing › transactional memory
hybrid transactional memory
0.112006
Hybrid transactional memory · PPoPP 2006

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

SIMD · 0.6thread-level parallelism · 0.2data-level parallelism · 0.2data compression · 0.2radix sort · 0.1performance analysis · 0.1optimization techniques · 0.1merge sort · 0.1SIMD parallelism · 0.13.5d blocking · 0.1analytical modeling · 0.1task decomposition · 0.1interior point method · 0.1hardware-software co-design · 0.1
YearPublicationVenuePosition
2011 Designing fast architecture-sensitive tree search on modern multicore/many-core processors
abstract
In-memory tree structured index search is a fundamental database operation. Modern processors provide tremendous computing power by integrating multiple cores, each with wide vector units. There has been much work to exploit modern processor architectures for database primitives like scan, sort, join, and aggregation. However, unlike other primitives, tree search presents significant challenges due to irregular and unpredictable data accesses in tree traversal. In this article, we present FAST, an extremely fast architecture-sensitive layout of the index tree. FAST is a binary tree logically organized to optimize for architecture features like page size, cache line size, and Single Instruction Multiple Data (SIMD) width of the underlying hardware. FAST eliminates the impact of memory latency, and exploits thread-level and data-level parallelism on both CPUs and GPUs to achieve 50 million (CPU) and 85 million (GPU) queries per second for large trees of 64M elements, with even better results on smaller trees. These are 5X (CPU) and 1.7X (GPU) faster than the best previously reported performance on the same architectures. We also evaluated FAST on the Intel$^\tiny\textregistered$ Many Integrated Core architecture (Intel$^\tiny\textregistered$ MIC), showing a speedup of 2.4X--3X over CPU and 1.8X--4.4X over GPU. FAST supports efficient bulk updates by rebuilding index trees in less than 0.1 seconds for datasets as large as 64M keys and naturally integrates compression techniques, overcoming the memory bandwidth bottleneck and achieving a 6X performance improvement over uncompressed index search for large keys on CPUs.
Changkyu Kim, Jatin Chhugani, Nadathur Satish, Eric Sedlar, Anthony D. Nguyen, Tim Kaldewey, Victor W. Lee, Scott A. Brandt, Pradeep Dubey
ACM Trans. Database Syst.5
2010 Debunking the 100X GPU vs. CPU myth: an evaluation of throughput computing on CPU and GPU
abstract
Recent advances in computing have led to an explosion in the amount of data being generated. Processing the ever-growing data in a timely manner has made throughput computing an important aspect for emerging applications. Our analysis of a set of important throughput computing kernels shows that there is an ample amount of parallelism in these kernels which makes them suitable for today's multi-core CPUs and GPUs. In the past few years there have been many studies claiming GPUs deliver substantial speedups (between 10X and 1000X) over multi-core CPUs on these kernels. To understand where such large performance difference comes from, we perform a rigorous performance analysis and find that after applying optimizations appropriate for both CPUs and GPUs the performance gap between an Nvidia GTX280 processor and the Intel Core i7-960 processor narrows to only 2.5x on average. In this paper, we discuss optimization techniques for both CPU and GPU, analyze what architecture features contributed to performance differences between the two architectures, and recommend a set of architectural features which provide significant improvement in architectural efficiency for throughput kernels.
Victor W. Lee, Changkyu Kim, Jatin Chhugani, Michael Deisher, Daehyun Kim 0001, Anthony D. Nguyen, Nadathur Satish, Mikhail Smelyanskiy, Srinivas Chennupaty, Per Hammarlund, Ronak Singhal, Pradeep Dubey
ISCA6
2010 3.5-D Blocking Optimization for Stencil Computations on Modern CPUs and GPUs
abstract
Stencil computation sweeps over a spatial grid over multiple time steps to perform nearest-neighbor computations. The bandwidth-to-compute requirement for a large class of stencil kernels is very high, and their performance is bound by the available memory bandwidth. Since memory bandwidth grows slower than compute, the performance of stencil kernels will not scale with increasing compute density. We present a novel 3.5D-blocking algorithm that performs 2.5D-spatial and temporal blocking of the input grid into on-chip memory for both CPUs and GPUs. The resultant algorithm is amenable to both thread- level and data-level parallelism, and scales near-linearly with the SIMD width and multiple-cores. Our performance numbers are faster or comparable to state-of-the-art-stencil implementations on CPUs and GPUs. Our implementation of 7-point-stencil is 1.5X-faster on CPUs, and 1.8X faster on GPUs for single- precision floating point inputs than previously reported numbers. For Lattice Boltzmann methods, the corresponding speedup number on CPUs is 2.1X.
Anthony D. Nguyen, Nadathur Satish, Jatin Chhugani, Changkyu Kim, Pradeep Dubey
SC1
2010 FAST: fast architecture sensitive tree search on modern CPUs and GPUs
abstract
In-memory tree structured index search is a fundamental database operation. Modern processors provide tremendous computing power by integrating multiple cores, each with wide vector units. There has been much work to exploit modern processor architectures for database primitives like scan, sort, join and aggregation. However, unlike other primitives, tree search presents significant challenges due to irregular and unpredictable data accesses in tree traversal.
Changkyu Kim, Jatin Chhugani, Nadathur Satish, Eric Sedlar, Anthony D. Nguyen, Tim Kaldewey, Victor W. Lee, Scott A. Brandt, Pradeep Dubey
SIGMOD Conference5
2010 Fast sort on CPUs and GPUs: a case for bandwidth oblivious SIMD sort
abstract
Sort is a fundamental kernel used in many database operations. In-memory sorts are now feasible; sort performance is limited by compute flops and main memory bandwidth rather than I/O. In this paper, we present a competitive analysis of comparison and non-comparison based sorting algorithms on two modern architectures - the latest CPU and GPU architectures. We propose novel CPU radix sort and GPU merge sort implementations which are 2X faster than previously published results. We perform a fair comparison of the algorithms using these best performing implementations on both architectures. While radix sort is faster on current architectures, the gap narrows from CPU to GPU architectures. Merge sort performs better than radix sort for sorting keys of large sizes - such keys will be required to accommodate the increasing cardinality of future databases. We present analytical models for analyzing the performance of our implementations in terms of architectural features such as core count, SIMD and bandwidth. Our obtained performance results are successfully predicted by our models. Our analysis points to merge sort winning over radix sort on future architectures due to its efficient utilization of SIMD and low bandwidth utilization. We simulate a 64-core platform with varying SIMD widths under constant bandwidth per core constraints, and show that large data sizes of 240 (one trillion records), merge sort performance on large key sizes is up to 3X better than radix sort for large SIMD widths on future architectures. Therefore, merge sort should be the sorting method of choice for future databases.
Nadathur Satish, Changkyu Kim, Jatin Chhugani, Anthony D. Nguyen, Victor W. Lee, Daehyun Kim 0001, Pradeep Dubey
SIGMOD Conference4
2009 Sort vs. Hash Revisited: Fast Join Implementation on Modern Multi-Core CPUs
abstract
Join is an important database operation. As computer architectures evolve, the best join algorithm may change hand. This paper re-examines two popular join algorithms -- hash join and sort-merge join -- to determine if the latest computer architecture trends shift the tide that has favored hash join for many years. For a fair comparison, we implemented the most optimized parallel version of both algorithms on the latest Intel Core i7 platform. Both implementations scale well with the number of cores in the system and take advantages of latest processor features for performance. Our hash-based implementation achieves more than 100M tuples per second which is 17X faster than the best reported performance on CPUs and 8X faster than that reported for GPUs. Moreover, the performance of our hash join implementation is consistent over a wide range of input data sizes from 64K to 128M tuples and is not affected by data skew. We compare this implementation to our highly optimized sort-based implementation that achieves 47M to 80M tuples per second. We developed analytical models to study how both algorithms would scale with upcoming processor architecture trends. Our analysis projects that current architectural trends of wider SIMD, more cores, and smaller memory bandwidth per core imply better scalability potential for sort-merge join. Consequently, sort-merge join is likely to outperform hash join on upcoming chip multiprocessors. In summary, we offer multicore implementations of hash join and sort-merge join which consistently outperform all previously reported results. We further conclude that the tide that favors the hash join algorithm has not changed yet, but the change is just around the corner.
Changkyu Kim, Eric Sedlar, Jatin Chhugani, Tim Kaldewey, Anthony D. Nguyen, Andrea Di Blas, Victor W. Lee, Nadathur Satish, Pradeep Dubey
Proc. VLDB Endow.5
2009 Mapping High-Fidelity Volume Rendering for Medical Imaging to CPU, GPU and Many-Core Architectures
abstract
Medical volumetric imaging requires high fidelity, high performance rendering algorithms. We motivate and analyze new volumetric rendering algorithms that are suited to modern parallel processing architectures. First, we describe the three major categories of volume rendering algorithms and confirm through an imaging scientist-guided evaluation that ray-casting is the most acceptable. We describe a thread- and data-parallel implementation of ray-casting that makes it amenable to key architectural trends of three modern commodity parallel architectures: multi-core, GPU, and an upcoming many-core Intel architecture code-named Larrabee. We achieve more than an order of magnitude performance improvement on a number of large 3D medical datasets. We further describe a data compression scheme that significantly reduces data-transfer overhead. This allows our approach to scale well to large numbers of Larrabee cores.
Mikhail Smelyanskiy, David R. Holmes 0001, Jatin Chhugani, Alan Larson, Doug Carmean, Dennis P. Hanson, Pradeep Dubey, Kurt Augustine, Daehyun Kim 0001, Alan Kyker, Victor W. Lee, Anthony D. Nguyen, Larry Seiler, Richard A. Robb
IEEE Trans. Vis. Comput. Graph.12
2008 Atomic Vector Operations on Chip Multiprocessors
abstract
The current trend is for processors to deliver dramatic improvements in parallel performance while only modestly improving serial performance. Parallel performance is harvested through vector/SIMD instructions as well as multithreading (through both multithreaded cores and chip multiprocessors). Vector parallelism can be more efficiently supported than multithreading, but is often harder for software to exploit. In particular, code with sparse data access patterns cannot easily utilize the vector/SIMD instructions of mainstream processors. Hardware to scatter and gather sparse data has previously been proposed to enable vector execution for these codes. However, on multithreaded architectures, a number of applications spend significant time on atomic operations (e.g., parallel reductions), which cannot be vectorized using previously proposed schemes. This paper proposes architectural support for atomic vector operations (referred to as GLSC) that addresses this limitation. GLSC extends scatter-gather hardware to support atomic memory operations. Our experiments show that the GLSC provides an average performance improvement on a set of important RMS kernels of 54% for 4-wide SIMD.
Daehyun Kim 0001, Mikhail Smelyanskiy, Yen-Kuang Chen, Jatin Chhugani, Christopher J. Hughes, Changkyu Kim, Victor W. Lee, Anthony D. Nguyen
ISCA9
2008 Convergence of Recognition, Mining, and Synthesis Workloads and Its Implications
abstract
This paper examines the growing need for a general-purpose ldquoanalytics enginerdquo that can enable next-generation processing platforms to effectively model events, objects, and concepts based on end-user input, and accessible datasets, along with an ability to iteratively refine the model in real-time. We find such processing needs at the heart of many emerging applications and services. This processing is further decomposed in terms of an integration of three fundamental compute capabilities-recognition, mining, and synthesis (RMS). The set of RMS workloads is examined next in terms of usage, mathematical models, numerical algorithms, and underlying data structures. Our analysis suggests a workload convergence that is analyzed next for its platform implications. In summary, a diverse set of emerging RMS applications from market segments like graphics, gaming, media-mining, unstructured information management, financial analytics, and interactive virtual communities presents a relatively focused, highly overlapping set of common platform challenges. A general-purpose processing platform designed to address these challenges has the potential for significantly enhancing users' experience and programmer productivity.
Yen-Kuang Chen, Jatin Chhugani, Pradeep Dubey, Christopher J. Hughes, Daehyun Kim 0001, Victor W. Lee, Anthony D. Nguyen, Mikhail Smelyanskiy
Proc. IEEE8
2008 Efficient implementation of sorting on multi-core SIMD CPU architecture
abstract
Sorting a list of input numbers is one of the most fundamental problems in the field of computer science in general and high-throughput database applications in particular. Although literature abounds with various flavors of sorting algorithms, different architectures call for customized implementations to achieve faster sorting times. This paper presents an efficient implementation and detailed analysis of MergeSort on current CPU architectures. Our SIMD implementation with 128-bit SSE is 3.3X faster than the scalar version. In addition, our algorithm performs an efficient multiway merge, and is not constrained by the memory bandwidth. Our multi-threaded, SIMD implementation sorts 64 million floating point numbers in less than 0.5 seconds on a commodity 4-core Intel processor. This measured performance compares favorably with all previously published results. Additionally, the paper demonstrates performance scalability of the proposed sorting algorithm with respect to certain salient architectural features of modern chip multiprocessor (CMP) architectures, including SIMD width and core-count. Based on our analytical models of various architectural configurations, we see excellent scalability of our implementation with SIMD width scaling up to 16X wider than current SSE width of 128-bits, and CMP core-count scaling well beyond 32 cores. Cycle-accurate simulation of Intel's upcoming x86 many-core Larrabee architecture confirms scalability of our proposed algorithm.
Jatin Chhugani, Anthony D. Nguyen, Victor W. Lee, William Macy, Mostafa Hagog, Yen-Kuang Chen, Akram Baransi, Pradeep Dubey
Proc. VLDB Endow.2
2007 Carbon: architectural support for fine-grained parallelism on chip multiprocessors
abstract
Chip multiprocessors (CMPs) are now commonplace, and the number of cores on a CMP is likely to grow steadily. However, in order to harness the additional compute resources of a CMP, applications must expose their thread-level parallelism to the hardware. One common approach to doing this is to decompose a program into parallel "tasks" and allow an underlying software layer to schedule these tasks to different threads. Software task scheduling can provide good parallel performance as long as tasks are large compared to the software overheads.
Christopher J. Hughes, Anthony D. Nguyen
ISCA3
2007 Scaling performance of interior-point method on large-scale chip multiprocessor system
abstract
In this paper we describe parallelization of interior-point method (IPM) aimed at achieving high scalability on large-scale chip-multiprocessors (CMPs). IPM is an important computational technique used to solve optimization problems in many areas of science, engineering and finance. IPM spends most of its computation time in a few sparse linear algebra kernels. While each of these kernels contains a large amount of parallelism, sparse irregular datasets seen in many optimization problems make parallelism difficult to exploit. As a result, most researchers have shown only a relatively low scalability of 4X-12X on medium to large scale parallel machines.
Mikhail Smelyanskiy, Victor W. Lee, Daehyun Kim 0001, Anthony D. Nguyen, Pradeep Dubey
SC4
2007 Cache-conscious frequent pattern mining on modern and emerging processors
Amol Ghoting, Gregory Buehrer, Srinivasan Parthasarathy 0001, Daehyun Kim 0001, Anthony D. Nguyen, Yen-Kuang Chen, Pradeep Dubey
VLDB J.5
2006 Hybrid transactional memory
abstract
High performance parallel programs are currently difficult to write and debug. One major source of difficulty is protecting concurrent accesses to shared data with an appropriate synchronization mechanism. Locks are the most common mechanism but they have a number of disadvantages, including possibly unnecessary serialization, and possible deadlock. Transactional memory is an alternative mechanism that makes parallel programming easier. With transactional memory, a transaction provides atomic and serializable operations on an arbitrary set of memory locations. When a transaction commits, all operations within the transaction become visible to other threads. When it aborts, all operations in the transaction are rolled back.Transactional memory can be implemented in either hardware or software. A straightforward hardware approach can have high performance, but imposes strict limits on the amount of data updated in each transaction. A software approach removes these limits, but incurs high overhead. We propose a novel hybrid hardware-software transactional memory scheme that approaches the performance of a hardware scheme when resources are not exhausted and gracefully falls back to a software scheme otherwise.
Michael Chu, Christopher J. Hughes, Partha Kundu, Anthony D. Nguyen
PPoPP5
2005 A Characterization of Data Mining Workloads on a Modern Processor
Amol Ghoting, Gregory Buehrer, Srinivasan Parthasarathy 0001, Daehyun Kim 0001, Anthony D. Nguyen, Yen-Kuang Chen, Pradeep Dubey
DaMoN5
2005 Cache-conscious Frequent Pattern Mining on a Modern Processor
Amol Ghoting, Gregory Buehrer, Srinivasan Parthasarathy 0001, Daehyun Kim 0001, Anthony D. Nguyen, Yen-Kuang Chen, Pradeep Dubey
VLDB5