NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC S03: High Performance Computing with CUDA Heterogeneous.

Slides:



Advertisements
Similar presentations
1 ITCS 6/8010 CUDA Programming, UNC-Charlotte, B. Wilkinson, Jan 28, 2011 GPUMemories.ppt GPU Memories These notes will introduce: The basic memory hierarchy.
Advertisements

Scalable Multi-Cache Simulation Using GPUs Michael Moeng Sangyeun Cho Rami Melhem University of Pittsburgh.
©Wen-mei W. Hwu and David Kirk/NVIDIA Urbana, Illinois, August 2-5, 2010 VSCSE Summer School Proven Algorithmic Techniques for Many-core Processors Lecture.
University of Michigan Electrical Engineering and Computer Science Transparent CPU-GPU Collaboration for Data-Parallel Kernels on Heterogeneous Systems.
OpenFOAM on a GPU-based Heterogeneous Cluster
Acceleration of the Smith– Waterman algorithm using single and multiple graphics processors Author : Ali Khajeh-Saeed, Stephen Poole, J. Blair Perot. Publisher:
GPUs. An enlarging peak performance advantage: –Calculation: 1 TFLOPS vs. 100 GFLOPS –Memory Bandwidth: GB/s vs GB/s –GPU in every PC and.
1 Threading Hardware in G80. 2 Sources Slides by ECE 498 AL : Programming Massively Parallel Processors : Wen-Mei Hwu John Nickolls, NVIDIA.
CUDA Programming Lei Zhou, Yafeng Yin, Yanzhi Ren, Hong Man, Yingying Chen.
Accelerating Machine Learning Applications on Graphics Processors Narayanan Sundaram and Bryan Catanzaro Presented by Narayanan Sundaram.
To GPU Synchronize or Not GPU Synchronize? Wu-chun Feng and Shucai Xiao Department of Computer Science, Department of Electrical and Computer Engineering,
BTRC for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC 1 Analysis and Visualization Algorithms in VMD David.
Accelerating SQL Database Operations on a GPU with CUDA Peter Bakkum & Kevin Skadron The University of Virginia GPGPU-3 Presentation March 14, 2010.
BTRC for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC 1 Future Direction with NAMD David Hardy
An approach for solving the Helmholtz Equation on heterogeneous platforms An approach for solving the Helmholtz Equation on heterogeneous platforms G.
“High-performance computational GPU-stand for teaching undergraduate and graduate students the basics of quantum-mechanical calculations“ “Komsomolsk-on-Amur.
Training Program on GPU Programming with CUDA 31 st July, 7 th Aug, 14 th Aug 2011 CUDA Teaching UoM.
© David Kirk/NVIDIA and Wen-mei W. Hwu, 2007 ECE 498AL, University of Illinois, Urbana-Champaign 1 ECE 498AL Lectures 7: Threading Hardware in G80.
CuMAPz: A Tool to Analyze Memory Access Patterns in CUDA
NIH BTRC for Macromolecular Modeling and Bioinformatics Beckman Institute, U. Illinois at Urbana-Champaign Visualization and Analysis.
David Luebke NVIDIA Research GPU Computing: The Democratization of Parallel Computing.
BY: ALI AJORIAN ISFAHAN UNIVERSITY OF TECHNOLOGY 2012 GPU Architecture 1.
© John E. Stone, 2007 ECE 498AL, University of Illinois, Urbana-Champaign 1 ECE 498AL Lecture 19: Performance Case Studies: Ion Placement Tool, VMD Guest.
NIH BTRC for Macromolecular Modeling and Bioinformatics Beckman Institute, U. Illinois at Urbana-Champaign Petascale Molecular.
NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC High Performance Molecular Simulation, Visualization,
Extracted directly from:
By Arun Bhandari Course: HPC Date: 01/28/12. GPU (Graphics Processing Unit) High performance many core processors Only used to accelerate certain parts.
Introduction to CUDA (1 of 2) Patrick Cozzi University of Pennsylvania CIS Spring 2012.
Introduction to CUDA 1 of 2 Patrick Cozzi University of Pennsylvania CIS Fall 2012.
NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC S04: High Performance Computing with CUDA Case.
© David Kirk/NVIDIA and Wen-mei W. Hwu, 1 Programming Massively Parallel Processors Lecture Slides for Chapter 1: Introduction.
NIH BTRC for Macromolecular Modeling and Bioinformatics Beckman Institute, U. Illinois at Urbana-Champaign Interactive Molecular.
NIH BTRC for Macromolecular Modeling and Bioinformatics Beckman Institute, U. Illinois at Urbana-Champaign GPU-Accelerated Analysis.
NIH BTRC for Macromolecular Modeling and Bioinformatics Beckman Institute, U. Illinois at Urbana-Champaign Programming in CUDA:
Porting Irregular Reductions on Heterogeneous CPU-GPU Configurations Xin Huo, Vignesh T. Ravi, Gagan Agrawal Department of Computer Science and Engineering.
NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC Faster, Cheaper, and Better Science: Molecular.
© David Kirk/NVIDIA and Wen-mei W. Hwu, ECE 498AL, University of Illinois, Urbana-Champaign 1 CS 395 Winter 2014 Lecture 17 Introduction to Accelerator.
© Copyright John E. Stone, Page 1 OpenCL for Molecular Modeling Applications: Early Experiences John Stone University of Illinois at Urbana-Champaign.
Programming for Hybrid Architectures
NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC Accelerating Molecular Modeling Applications.
© David Kirk/NVIDIA and Wen-mei W. Hwu, ECE 498AL, University of Illinois, Urbana-Champaign 1 ECE 498AL Lectures 9: Memory Hardware in G80.
NIH BTRC for Macromolecular Modeling and Bioinformatics Beckman Institute, U. Illinois at Urbana-Champaign GPU-Accelerated Molecular.
NIH Resource for Biomolecular Modeling and Bioinformatics Beckman Institute, UIUC NAMD Development Goals L.V. (Sanjay) Kale Professor.
© John E. Stone, University of Illinois, Urbana-Champaign 1 ECE 498AL Lecture 21: Application Performance Case Studies: Molecular Visualization.
NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC Using GPUs to compute the multilevel summation.
© David Kirk/NVIDIA and Wen-mei W. Hwu, ECE 498AL, University of Illinois, Urbana-Champaign 1 ECE 498AL Lectures 8: Threading Hardware in G80.
Introduction What is GPU? It is a processor optimized for 2D/3D graphics, video, visual computing, and display. It is highly parallel, highly multithreaded.
Jie Chen. 30 Multi-Processors each contains 8 cores at 1.4 GHz 4GB GDDR3 memory offers ~100GB/s memory bandwidth.
Compiler and Runtime Support for Enabling Generalized Reduction Computations on Heterogeneous Parallel Configurations Vignesh Ravi, Wenjing Ma, David Chiu.
1)Leverage raw computational power of GPU  Magnitude performance gains possible.
NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC High Performance Molecular Simulation, Visualization,
Introduction to CUDA (1 of n*) Patrick Cozzi University of Pennsylvania CIS Spring 2011 * Where n is 2 or 3.
NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC In-Situ Visualization and Analysis of Petascale.
NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC Multilevel Summation of Electrostatic Potentials.
NIH BTRC for Macromolecular Modeling and Bioinformatics Beckman Institute, U. Illinois at Urbana-Champaign CUDA Applications I.
NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC High Performance Molecular Visualization and.
Shangkar Mayanglambam, Allen D. Malony, Matthew J. Sottile Computer and Information Science Department Performance.
©Wen-mei W. Hwu and David Kirk/NVIDIA Urbana, Illinois, August 2-5, 2010 VSCSE Summer School Proven Algorithmic Techniques for Many-core Processors Lecture.
Introduction to CUDA 1 of 2 Patrick Cozzi University of Pennsylvania CIS Fall 2014.
NIH BTRC for Macromolecular Modeling and Bioinformatics Beckman Institute, U. Illinois at Urbana-Champaign VMD: GPU-Accelerated.
My Coordinates Office EM G.27 contact time:
CS 179: GPU Computing LECTURE 4: GPU MEMORY SYSTEMS 1.
NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC Molecular Visualization and Analysis on GPUs.
© Wen-mei W. Hwu and John Stone, Urbana July 22, Illinois UPCRC Summer School 2010 The OpenCL Programming Model Part 2: Case Studies Wen-mei Hwu.
GPU Acceleration of Particle-In-Cell Methods B. M. Cowan, J. R. Cary, S. W. Sides Tech-X Corporation.
High Performance Molecular Visualization and Analysis on GPUs
ECE408 Fall 2015 Applied Parallel Programming Lecture 21: Application Case Study – Molecular Dynamics.
John Stone Theoretical and Computational Biophysics Group
GPU-Accelerated Molecular Visualization and Analysis with VMD
6- General Purpose GPU Programming
Presentation transcript:

NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC S03: High Performance Computing with CUDA Heterogeneous GPU Computing for Molecular Modeling John E. Stone Theoretical and Computational Biophysics Group Beckman Institute for Advanced Science and Technology University of Illinois at Urbana-Champaign Tutorial S03, Supercomputing 2010, New Orleans, LA, Nov 14, 2010

NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC Case Study Topics: Examples of CUDA kernels in the VMD molecular visualization and analysis software Recurring algorithm design principles Conversion of “scatter” to “gather” Overlapping CPU and GPU computations, Overlapping host-GPU I/O, and asynchronous stream APIs Zero-copy memory access strategies Multi-GPU work scheduling and error handling Low-latency processing for interactive computing

NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC VMD – “Visual Molecular Dynamics” Visualization and analysis of molecular dynamics simulations, sequence data, volumetric data, quantum chemistry simulations, particle systems, … User extensible with scripting and plugins

NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC Imaging of gas migration pathways in proteins with implicit ligand sampling 20x to 30x faster Ion placement 20x to 44x faster CUDA Algorithms in VMD Speedups vs. single CPU core (peak CPU memory bandwidth, cache perf, etc.) GPU: massively parallel co-processor Electrostatic field calculation 31x to 44x faster

NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC Molecular orbital calculation and display 100x to 120x faster GPU: massively parallel co-processor Radial distribution functions 30x to 92x faster CUDA Algorithms in VMD Speedups vs. single CPU core (peak CPU memory bandwidth, cache perf, etc.)

NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC Recurring Algorithm Design Principles (1) Extensive use of on-chip shared memory and constant memory to further amplify memory bandwidth Pre-processing and sorting of operands to organize computation for peak efficiency on the GPU, particularly for best use of L1 cache and shared mem Tiled/blocked data structures in GPU global memory for peak bandwidth utilization Use of CPU to “regularize” the work done by the GPU, handle exceptions & unusual work units Asynchronous operation of CPU/GPU enabling overlapping of computation and I/O on both ends

NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC Recurring Algorithm Design Principles (2) Take advantage of special features of the GPU memory systems –Broadcasts, wide loads/stores (float4, double2), texture interpolation, write combining, etc. Avoid doing complex array indexing arithmetic within the GPU threads, pre- compute as much as possible outside of the GPU kernel so the GPU is doing what it’s best at: floating point arithmetic

NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC GPUs Require ~20,000 Independent Threads for Full Utilization GPU underutilized GPU fully utilized, ~40x faster than CPU Accelerating molecular modeling applications with graphics processors. J. Stone, J. Phillips, P. Freddolino, D. Hardy, L. Trabuco, K. Schulten. J. Comp. Chem., 28: , Lower is better Host thread GPU context initialization and device binding time: ~110ms

NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC Avoid Output Conflicts, Conversion of Scatter to Gather GPU memory systems provide tremendous bandwidth, but even so, memory bandwidth often still ends up being the performance limiter Many CPU codes contain algorithms that “scatter” operands to memory, to reduce arithmetic Scattered output can create bottlenecks for GPU performance On the GPU, it’s often better to do more arithmetic, in exchange for a regular output pattern, or to convert “scatter” algorithms to “gather” approaches

NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC Electrostatic Potential Maps Electrostatic potentials evaluated on 3-D lattice: Applications include: –Ion placement for structure building –Time-averaged potentials for simulation –Visualization and analysis Isoleucine tRNA synthetase

NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC CUDA Cutoff Electrostatic Potential Summation Global memoryConstant memory Offsets for bin neighborhood Shared memory atom bin Potential map regions Bins of atoms Each thread block cooperatively loads atom bins from surrounding neighborhood into shared memory for evaluation: GATHER Atoms are spatially hashed into fixed-size bins CPU handles overflowed bins (GPU kernel can be very aggressive) GPU thread block calculates corresponding region of potential map, Bin/region neighbor checks costly; solved with universal table look-up Look-up table encodes “logic” of spatial geometry

NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC Spatial Sorting of Atoms Into “Bins” Sort atoms into bins by their coordinates Each bin is sized to gaurantee GPU memory coalescing Each bin holds up to 8 atoms, containing 4 FP values (coords, charge) Each lattice point gathers potentials from atom bins within cutoff

NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC Using the CPU to Optimize GPU Performance GPU performs best when the work evenly divides into the number of threads/processing units Optimization strategy: –Use the CPU to “regularize” the GPU workload –Use fixed size bin data structures, with “empty” slots skipped or producing zeroed out results –Handle exceptional or irregular work units on the CPU while the GPU processes the bulk of the work –On average, the GPU is kept highly occupied, attaining a much higher fraction of peak performance

NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC Computing Molecular Orbitals Visualization of MOs aids in understanding the chemistry of molecular system Calculation of high resolution MO grids for display can require tens to hundreds of seconds on multi-core CPUs, even with the use of hand-coded SSE

NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC Padding optimizes global memory performance, guaranteeing coalesced global memory accesses Grid of thread blocks Small 8x8 thread blocks afford large per-thread register count, shared memory MO 3-D lattice decomposes into 2-D slices (CUDA grids) … 0,0 0,1 1,1 …… … … Threads producing results that are discarded Each thread computes one MO lattice point. Threads producing results that are used 1,0 … GPU 2 GPU 1 GPU 0 Lattice can be computed using multiple GPUs MO GPU Parallel Decomposition

NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC VMD MO GPU Kernel Snippet: Loading Tiles Into Shared Memory On-Demand [… outer loop over atoms …] if ((prim_counter + (maxprim = SHAREDSIZE) { prim_counter += sblock_prim_counter; sblock_prim_counter = prim_counter & MEMCOAMASK; s_basis_array[sidx ] = basis_array[sblock_prim_counter + sidx ]; s_basis_array[sidx + 64] = basis_array[sblock_prim_counter + sidx + 64]; s_basis_array[sidx + 128] = basis_array[sblock_prim_counter + sidx + 128]; s_basis_array[sidx + 192] = basis_array[sblock_prim_counter + sidx + 192]; prim_counter -= sblock_prim_counter; __syncthreads(); } for (prim=0; prim < maxprim; prim++) { float exponent = s_basis_array[prim_counter ]; float contract_coeff = s_basis_array[prim_counter + 1]; contracted_gto += contract_coeff * __expf(-exponent*dist2); prim_counter += 2; } [… continue on to angular momenta loop …] Shared memory tiles: Tiles are checked and loaded, if necessary, immediately prior to entering key arithmetic loops Adds additional control overhead to loops, even with optimized implementation

NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC VMD MO GPU Kernel Snippet: Fermi kernel based on L1 cache [… outer loop over atoms …] // loop over the shells belonging to this atom (or basis function) for (shell=0; shell < maxshell; shell++) { float contracted_gto = 0.0f; int maxprim = shellinfo[(shell_counter<<4) ]; int shell_type = shellinfo[(shell_counter<<4) + 1]; for (prim=0; prim < maxprim; prim++) { float exponent = basis_array[prim_counter ]; float contract_coeff = basis_array[prim_counter + 1]; contracted_gto += contract_coeff * __expf(-exponent*dist2); prim_counter += 2; } [… continue on to angular momenta loop …] L1 cache: Simplifies code! Reduces control overhead Gracefully handles arbitrary-sized problems Matches performance of constant memory

NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC VMD Single-GPU Molecular Orbital Performance Results for C 60 KernelCores/GPUsRuntime (s)Speedup Xeon 5550 ICC-SSE Xeon 5550 ICC-SSE CUDA shared mem CUDA L1-cache (16KB) CUDA const-cache CUDA const-cache, zero-copy Intel X5550 CPU, GeForce GTX 480 GPU Fermi GPUs have caches: may outperform hand-coded shared memory kernels. Zero-copy memory transfers improve overlap of computation and host-GPU I/Os.

NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC VMD Multi-GPU Molecular Orbital Performance Results for C 60 KernelCores/GPUsRuntime (s)Speedup Intel X5550-SSE Intel X5550-SSE GeForce GTX GeForce GTX GeForce GTX GeForce GTX Intel X5550 CPU, 4x GeForce GTX 480 GPUs, Uses persistent thread pool to avoid GPU init overhead, dynamic scheduler distributes work to GPUs

NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC Molecular Orbital Computation and Display Process Read QM simulation log file, trajectory Compute 3-D grid of MO wavefunction amplitudes Most performance-demanding step, run on GPU… Extract isosurface mesh from 3-D MO grid Apply user coloring/texturing and render the resulting surface Preprocess MO coefficient data eliminate duplicates, sort by type, etc… For current frame and MO index, retrieve MO wavefunction coefficients One-time initialization For each trj frame, for each MO shown Initialize Pool of GPU Worker Threads

NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC Multi-GPU Load Balance Many early CUDA codes assumed all GPUs were identical Host machines may contain a diversity of GPUs of varying capability (discrete, IGP, etc) Different GPU on-chip and global memory capacities may need different problem “tile” sizes Static decomposition works poorly for non-uniform workload, or diverse GPUs GPU 1 14 SMs GPU N 30 SMs …

NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC Multi-GPU Dynamic Work Distribution // Each GPU worker thread loops over // subset 2-D planes in a 3-D cube… while (!threadpool_next_tile(&parms, tilesize, &tile){ // Process one plane of work… // Launch one CUDA kernel for each // loop iteration taken… // Shared iterator automatically // balances load on GPUs } GPU 1GPU N … Dynamic work distribution

NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC Example Multi-GPU Latencies Relevant to Interactive Sci-Viz, Script-Driven Analyses (4 Tesla C2050 GPUs, Intel Xeon 5550) 6.3us CUDA empty kernel (immediate return) 9.0us Sleeping barrier primitive (non-spinning barrier that uses POSIX condition variables to prevent idle CPU consumption while workers wait at the barrier) 14.8us pool wake, host fctn exec, sleep cycle (no CUDA) 30.6us pool wake, 1x(tile fetch, simple CUDA kernel launch), sleep us pool wake, 100x(tile fetch, simple CUDA kernel launch), sleep

NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC Multi-GPU Dynamic Scheduling Performance with Heterogeneous GPUs KernelCores/GPUsRuntime (s)Speedup Intel X5550-SSE Quadro Tesla C GeForce GTX GeForce GTX Tesla C Quadro (91% of ideal perf) Dynamic load balancing enables mixture of GPU generations, SM counts, and clock rates to perform well.

NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC Multi-GPU Runtime Error/Exception Handling Competition for resources from other applications can cause runtime failures, e.g. GPU out of memory half way through an algorithm Handle exceptions, e.g. convergence failure, NaN result, insufficient compute capability/features Handle and/or reschedule failed tiles of work GPU 1 SM MB GPU N SM MB … Original Workload Retry Stack

NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC Acknowledgements Additional Information and References: – Questions, source code requests: –John Stone: Acknowledgements: J. Phillips, D. Hardy, J. Saam, UIUC Theoretical and Computational Biophysics Group, NIH Resource for Macromolecular Modeling and Bioinformatics Prof. Wen-mei Hwu, Christopher Rodrigues, UIUC IMPACT Group Ben Levine, Axel Kohlmeyer, Temple University CUDA team at NVIDIA UIUC NVIDIA CUDA Center of Excellence NIH support: P41-RR05969

NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC GPU Computing Publications Quantifying the Impact of GPUs on Performance and Energy Efficiency in HPC Clusters. J. Enos, C. Steffen, J. Fullop, M. Showerman, G. Shi, K. Esler, V. Kindratenko, J. Stone, J Phillips. The Work in Progress in Green Computing, In press. GPU-accelerated molecular modeling coming of age. J. Stone, D. Hardy, I. Ufimtsev, K. Schulten. J. Molecular Graphics and Modeling, 29: , OpenCL: A Parallel Programming Standard for Heterogeneous Computing. J. Stone, D. Gohara, G. Shi. Computing in Science and Engineering, 12(3):66-73, An Asymmetric Distributed Shared Memory Model for Heterogeneous Computing Systems. I. Gelado, J. Stone, J. Cabezas, S. Patel, N. Navarro, W. Hwu. ASPLOS ’10: Proceedings of the 15 th International Conference on Architectural Support for Programming Languages and Operating Systems, pp , 2010.

NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC GPU Computing Publications Probing Biomolecular Machines with Graphics Processors. J. Phillips, J. Stone. Communications of the ACM, 52(10):34-41, GPU Clusters for High Performance Computing. V. Kindratenko, J. Enos, G. Shi, M. Showerman, G. Arnold, J. Stone, J. Phillips, W. Hwu. Workshop on Parallel Programming on Accelerator Clusters (PPAC), In Proceedings IEEE Cluster 2009, pp. 1-8, Aug Long time-scale simulations of in vivo diffusion using GPU hardware. E. Roberts, J. Stone, L. Sepulveda, W. Hwu, Z. Luthey-Schulten. In IPDPS’09: Proceedings of the 2009 IEEE International Symposium on Parallel & Distributed Computing, pp. 1-8, High Performance Computation and Interactive Display of Molecular Orbitals on GPUs and Multi-core CPUs. J. Stone, J. Saam, D. Hardy, K. Vandivort, W. Hwu, K. Schulten, 2nd Workshop on General-Purpose Computation on Graphics Pricessing Units (GPGPU-2), ACM International Conference Proceeding Series, volume 383, pp. 9-18, Multilevel summation of electrostatic potentials using graphics processing units. D. Hardy, J. Stone, K. Schulten. J. Parallel Computing, 35: , 2009.

NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute, UIUC GPU Computing Publications Adapting a message-driven parallel application to GPU-accelerated clusters. J. Phillips, J. Stone, K. Schulten. Proceedings of the 2008 ACM/IEEE Conference on Supercomputing, IEEE Press, GPU acceleration of cutoff pair potentials for molecular modeling applications. C. Rodrigues, D. Hardy, J. Stone, K. Schulten, and W. Hwu. Proceedings of the 2008 Conference On Computing Frontiers, pp , GPU computing. J. Owens, M. Houston, D. Luebke, S. Green, J. Stone, J. Phillips. Proceedings of the IEEE, 96: , Accelerating molecular modeling applications with graphics processors. J. Stone, J. Phillips, P. Freddolino, D. Hardy, L. Trabuco, K. Schulten. J. Comp. Chem., 28: , Continuous fluorescence microphotolysis and correlation spectroscopy. A. Arkhipov, J. Hüve, M. Kahms, R. Peters, K. Schulten. Biophysical Journal, 93: , 2007.