Michael Garland

Michael Garland, Ph.D.
Director of Programming Systems Research

Michael Garland joined NVIDIA in 2006 and is one of the founding members of NVIDIA Research. He currently leads the Programming Systems and Applications Research Group. Dr. Garland holds B.S. and Ph.D. degrees in Computer Science from Carnegie Mellon University, and was previously on the faculty of the Department of Computer Science of the University of Illinois at Urbana-Champaign. He has published numerous articles in leading conferences and journals on a range of topics including surface simplification, remeshing, texture synthesis, novice-friendly modeling, free-form animation, scientific visualization, graph mining, and visualizing complex graphs. His current research interests include computer graphics and visualization, geometric algorithms, and parallel algorithms and programming models.

Research Interests:

Parallel Algorithms, Parallel Programming Models, Computer Graphics, Geometric Algorithms

Parallel Depth-First Search for Directed Acyclic Graphs
Single-pass Parallel Prefix Scan with Decoupled Look-back
A Decomposition for In-place Array Transposition
Policy-based Tuning for Performance Portability and Library Co-optimization
Efficient Parallel Merge Sort for Fixed and Variable Length Keys
Scalable GPU Graph Traversal
GPUs and the Future of Parallel Computing
High Performance and Scalable GPU Graph Traversal
High Performance and Scalable GPU Graph Traversal
Copperhead: Compiling an Embedded Data Parallel Language
Sparse Matrix-Vector Multiplication on Multicore and Accelerators
Copperhead: Compiling an Embedded Data Parallel Language
Implementing Sparse Matrix-Vector Multiplication on Throughput-Oriented Processors
Solving Computational Problems with GPU Computing
Designing Efficient Sorting Algorithms for Manycore GPUs
Fast BVH Construction on GPUs
Efficient Sparse Matrix-Vector Multiplication on CUDA
Efficient Parallel Scan Algorithms for GPUs
On the Visualization of Social and Other Scale-Free Networks
Rapid Multipole Graph Drawing on the GPU
Parallel Computing Experiences with CUDA
Free-form Motion Processing
Scalable Parallel Programming with CUDA
Iterative Methods for Improving Mesh Parameterizations