8
Early Experiences Scaling VMD Molecular Visualization and Analysis Jobs on Blue Waters John E. Stone , Barry Isralewitz , and Klaus Schulten Beckman Institute, University of Illinois at Urbana-Champaign Department of Physics, University of Illinois at Urbana-Champaign Abstract—Petascale molecular dynamics simulations provide a powerful tool for probing the dynamics of cellular processes at atomic and nanosecond resolution not achievable by experi- mental methods alone. Extraction of details about the dynamics of biomolecules from terabytes of simulation output requires powerful user-extensible molecular analysis and visualization tools. Petascale simulation trajectories are so large that it is now necessary to perform many analysis and visualization tasks formerly handled by off-site computational facilities in-place on the supercomputer itself. We report ongoing progress on porting, tuning, and scaling up the popular molecular visualization and analysis program VMD on the NSF Blue Waters petascale supercomputer. We describe key achievements including algo- rithmic and memory efficiency improvements, hand-vectorization of key CPU algorithms, new and improved GPU analysis and visualization algorithms, and parallel I/O performance results. We evaluate the performance of VMD for user-developed analysis scripts with the TIMELINE trajectory analysis tool in VMD. Finally, we describe the unique capabilities provided by the Cray XK7 GPU-accelerated compute partition of Blue Waters. I. I NTRODUCTION All diseases, infectious, genetic, or otherwise, arise from the disruption of biological processes at the molecular level. Molecular dynamics simulations provide a powerful tool for probing the dynamics of cellular processes at atomic and nanosecond resolution not achievable by experimental methods alone. The combination of high-quality experimental struc- ture information with state-of-the-art computer simulations provides detailed quantitative information and high fidelity visualization of the inner workings of biomolecular complexes and entire cells. Petascale supercomputers help bridge the gap between available computing power and experimental data, enabling studies of very large biomolecular systems such as the HIV virus in all-atom detail [1]. Extraction of valu- able atomic level details about the dynamics of biomolecules from terabytes of simulation output requires powerful user- extensible molecular visualization and analysis tools such as those provided in the software package VMD [2], [3]. VMD was one of the very first molecular modeling applica- tions to employ Graphics Processing Units (GPUs) for general purpose scientific computations [4]. GPUs have become an effective tool for acceleration of a wide variety of computa- tionally demanding molecular modeling applications [4]–[9], and these successes have contributed to the use of GPUs in the top performing supercomputers in the world. The Blue Waters petascale supercomputer at U. Illinois 1 is one of the most recent to incorporate GPUs to improve peak performance, 1 URL: http://www.ncsa.illinois.edu/BlueWaters/ as well as price/performance and performance/watt ratios [10]. Blue Waters is an ideal target platform for large scale molec- ular visualization and analysis tasks because it is composed of both Cray XE6 (CPU-only) and heterogeneous Cray XK7 (GPU-accelerated) compute nodes, allowing users to run jobs on nodes with the most appropriate mix of processors and memory capacity for the task at hand. Over the past year we have adapted VMD for execution on Blue Waters, using a hybrid computational approach that combines shared memory multithreading, GPU acceleration, and distributed memory message passing with MPI. To fa- cilitate parallelization of existing VMD analysis scripts the Tcl and Python scripting engines in VMD have been extended with parallel primitives for work distribution, synchronization, and collective operations of various kinds. In this paper we describe the challenges involved in achieving high performance at both the individual node-level using CPU vectorization and GPU-acceleration features, and collectively for large analysis jobs that typically involve large amounts of I/O. We present our solutions for heterogeneous work scheduling and error handling, and describe the ease-of-use benefits that result from maintaining compatibility between the interactive workstation versions of VMD and the batch mode MPI version on Blue Waters. We describe the ongoing adaptation of VMD to exploit the unique capabilities of the Blue Waters Cray XK7 GPU compute nodes for high performance visualization through GPU-accelerated OpenGL rasterization and ray tracing capa- bilities not found on other petascale supercomputers. II. BLUE WATERS SYSTEM OVERVIEW Blue Waters is a hybrid machine composed of Cray XE6 (traditional CPU-only) and XK7 (hybrid GPU-accelerated) compute nodes attached to a high performance Cray Gemini network, and high performance Sonexion storage systems based on the Lustre parallel filesystem. The initial production machine configuration used for the performance tests presented in this paper consisted of 237 Cray XE6 cabinets (45,280 AMD Opteron 6276 16-core CPUs achieving 7.1 petaflops peak), and 32 XK7 cabinets (3,072 AMD Opteron 6276 CPUs and 3,072 NVIDIA Tesla K20X GPUs achieving 4.5 petaflops peak). The XE6 nodes consist of two AMD Opteron “Interlagos” 6276 CPUs, each containing 16 integer cores sharing 8 floating point units, equipped with 64 GB of memory. The XK7 nodes contain one AMD Opteron 6276 CPU and 32 GB of RAM, paired with an attached NVIDIA Tesla K20X “Kepler” GPU accelerator with 6 GB of RAM. In addition to accelerating numerically intensive data-parallel code, the Blue Waters system software also allows the XK7 Tesla K20X GPUs be used for hardware-accelerated OpenGL rasterization.

Early Experiences Scaling VMD Molecular Visualization … · Early Experiences Scaling VMD Molecular Visualization and Analysis Jobs on Blue ... with state-of-the-art computer

Embed Size (px)

Citation preview

Page 1: Early Experiences Scaling VMD Molecular Visualization … · Early Experiences Scaling VMD Molecular Visualization and Analysis Jobs on Blue ... with state-of-the-art computer

Early Experiences Scaling VMD MolecularVisualization and Analysis Jobs on Blue Waters

John E. Stone⇤, Barry Isralewitz⇤, and Klaus Schulten†⇤Beckman Institute, University of Illinois at Urbana-Champaign

†Department of Physics, University of Illinois at Urbana-Champaign

Abstract—Petascale molecular dynamics simulations providea powerful tool for probing the dynamics of cellular processesat atomic and nanosecond resolution not achievable by experi-mental methods alone. Extraction of details about the dynamicsof biomolecules from terabytes of simulation output requirespowerful user-extensible molecular analysis and visualizationtools. Petascale simulation trajectories are so large that it isnow necessary to perform many analysis and visualization tasksformerly handled by off-site computational facilities in-place onthe supercomputer itself. We report ongoing progress on porting,tuning, and scaling up the popular molecular visualization andanalysis program VMD on the NSF Blue Waters petascalesupercomputer. We describe key achievements including algo-rithmic and memory efficiency improvements, hand-vectorizationof key CPU algorithms, new and improved GPU analysis andvisualization algorithms, and parallel I/O performance results.We evaluate the performance of VMD for user-developed analysisscripts with the TIMELINE trajectory analysis tool in VMD.Finally, we describe the unique capabilities provided by the CrayXK7 GPU-accelerated compute partition of Blue Waters.

I. INTRODUCTION

All diseases, infectious, genetic, or otherwise, arise fromthe disruption of biological processes at the molecular level.Molecular dynamics simulations provide a powerful tool forprobing the dynamics of cellular processes at atomic andnanosecond resolution not achievable by experimental methodsalone. The combination of high-quality experimental struc-ture information with state-of-the-art computer simulationsprovides detailed quantitative information and high fidelityvisualization of the inner workings of biomolecular complexesand entire cells. Petascale supercomputers help bridge the gapbetween available computing power and experimental data,enabling studies of very large biomolecular systems suchas the HIV virus in all-atom detail [1]. Extraction of valu-able atomic level details about the dynamics of biomoleculesfrom terabytes of simulation output requires powerful user-extensible molecular visualization and analysis tools such asthose provided in the software package VMD [2], [3].

VMD was one of the very first molecular modeling applica-tions to employ Graphics Processing Units (GPUs) for generalpurpose scientific computations [4]. GPUs have become aneffective tool for acceleration of a wide variety of computa-tionally demanding molecular modeling applications [4]–[9],and these successes have contributed to the use of GPUs inthe top performing supercomputers in the world. The BlueWaters petascale supercomputer at U. Illinois1 is one of themost recent to incorporate GPUs to improve peak performance,

1URL: http://www.ncsa.illinois.edu/BlueWaters/

as well as price/performance and performance/watt ratios [10].Blue Waters is an ideal target platform for large scale molec-ular visualization and analysis tasks because it is composedof both Cray XE6 (CPU-only) and heterogeneous Cray XK7(GPU-accelerated) compute nodes, allowing users to run jobson nodes with the most appropriate mix of processors andmemory capacity for the task at hand.

Over the past year we have adapted VMD for executionon Blue Waters, using a hybrid computational approach thatcombines shared memory multithreading, GPU acceleration,and distributed memory message passing with MPI. To fa-cilitate parallelization of existing VMD analysis scripts theTcl and Python scripting engines in VMD have been extendedwith parallel primitives for work distribution, synchronization,and collective operations of various kinds. In this paper wedescribe the challenges involved in achieving high performanceat both the individual node-level using CPU vectorization andGPU-acceleration features, and collectively for large analysisjobs that typically involve large amounts of I/O. We presentour solutions for heterogeneous work scheduling and errorhandling, and describe the ease-of-use benefits that result frommaintaining compatibility between the interactive workstationversions of VMD and the batch mode MPI version on BlueWaters. We describe the ongoing adaptation of VMD to exploitthe unique capabilities of the Blue Waters Cray XK7 GPUcompute nodes for high performance visualization throughGPU-accelerated OpenGL rasterization and ray tracing capa-bilities not found on other petascale supercomputers.

II. BLUE WATERS SYSTEM OVERVIEWBlue Waters is a hybrid machine composed of Cray XE6

(traditional CPU-only) and XK7 (hybrid GPU-accelerated)compute nodes attached to a high performance Cray Gemininetwork, and high performance Sonexion storage systemsbased on the Lustre parallel filesystem. The initial productionmachine configuration used for the performance tests presentedin this paper consisted of 237 Cray XE6 cabinets (45,280AMD Opteron 6276 16-core CPUs achieving 7.1 petaflopspeak), and 32 XK7 cabinets (3,072 AMD Opteron 6276CPUs and 3,072 NVIDIA Tesla K20X GPUs achieving 4.5petaflops peak). The XE6 nodes consist of two AMD Opteron“Interlagos” 6276 CPUs, each containing 16 integer coressharing 8 floating point units, equipped with 64GB of memory.The XK7 nodes contain one AMD Opteron 6276 CPU and32GB of RAM, paired with an attached NVIDIA Tesla K20X“Kepler” GPU accelerator with 6GB of RAM. In additionto accelerating numerically intensive data-parallel code, theBlue Waters system software also allows the XK7 Tesla K20XGPUs be used for hardware-accelerated OpenGL rasterization.

Page 2: Early Experiences Scaling VMD Molecular Visualization … · Early Experiences Scaling VMD Molecular Visualization and Analysis Jobs on Blue ... with state-of-the-art computer

Blue Waters provides 22 PB of scratch storage on 1,440Lustre Object Storage Targets (OSTs), 2.2 PB of shared projectstorage on 144 OSTs, and 2.2 PB of home directory storageon 144 OSTs. The scratch filesystem provides up to 1 TB/secof usable storage bandwidth [11], [12]. Large scale and longterm data storage is provided by a 380 PB near-line HighPerformance Storage System (HPSS), composed of 244 tapedrives with robotic access to tens of thousands of tapes.

At the time of this writing, the XK7 partition of BlueWaters is being upgraded, adding 1,152 XK7 nodes for anew total of 4,224 XK7 nodes that will achieve 6.2 petaflopspeak (combined CPU and GPU performance). The originalXK7 partition configuration contained no XIO (LNET) I/Onodes. The new configuration will add 96 XIO (LNET) nodeswithin the XK7 partition to improve I/O performance for GPU-accelerated jobs. The new machine configuration will changethe torus dimensions for the XK7 partition from 8⇥ 8⇥ 24 to15 ⇥ 6 ⇥ 24, and full system torus dimensions will changefrom 23 ⇥ 24 ⇥ 24 to 24 ⇥ 24 ⇥ 24. The changes to thetorus dimensions for the XK7 partition and the full systemare expected to improve performance in some cases.

III. MPI PARALLELIZATION OVERVIEW

Over the past two years we have adapted VMD for parallelexecution within MPI in anticipation of the need to performlarge scale analysis and visualization tasks on the trajectoriesresulting from petascale molecular dynamics simulation. Anew MPI-based VMD parallel initialization code path adjuststhe behavior of internal software modules and scripting inter-preters so that they don’t interfere with the correct operationof MPI, and reduces redundant per-node console output thatwould otherwise be generated during large parallel VMD jobs.The scripting interfaces in VMD have been extended withnew commands that provide mechanisms for synchronizationbetween MPI ranks, collective operations for broadcasting andgathering data, and easy-to-use mechanisms for implementinguser-defined parallel reductions within analysis scripts. ManyVMD analysis and visualization tasks involve processing datasets that can be parallelized most naturally by decomposingthem in time and/or by their molecular structure, e.g. bytrajectory frames, or by protein residue index. We have alsoimplemented scripting interfaces for dynamic work schedulingamong MPI ranks, making it much easier for researchers todevelop customized data-parallel analysis scripts.

The system software on the Blue Waters Cray XE6/XK7provides a great deal of flexibility in the way that MPI jobs canbe mapped onto nodes, including mapping of multiple MPIranks onto each node. In many cases the memory capacityof the Blue Waters compute nodes places limits on whatmappings of MPI ranks to nodes are usable for a given VMDanalysis or visualization task. The assignment of one MPI rankper node allows the full memory capacity of each node tobe utilized by each VMD instance, offering users the greatestflexibility in terms of the range of molecular structure sizesand number of trajectory time steps that can be loaded on acompute node. The 32GB memory capacity of the XK7 nodeshas been sufficient for common visualization and analysis taskson systems as large as 64 million atoms [1], however largersystems begin to encounter memory capacity limitations. The

64GB memory capacity of the XE6 nodes has allowed all-atom molecular structures of as many as 116 million atomsto be loaded using a standard full-featured VMD compilation.Larger structures can be supported on both node types withVMD compilations that restrict the size of a few memoryintensive data structures used to store bonds and certain otherper-atom data in layouts that are optimized for traversal speedrather than memory efficiency.

Another reason for favoring VMD jobs that launch oneMPI rank per node is to reduce MPI and VMD overheadsthat scale with the total number of MPI ranks. VMD startupand initialization times increase with the total number of MPIranks, with observed average startup times ranging from a lowof 14 seconds on 16 XE6 nodes, up to 68 seconds on 4096XE6 nodes. While most HPC applications are built solelyfrom precompiled and statically linked C, C++, or Fortrancode, VMD also includes embedded Tcl and Python scriptinginterpreters and dynamically loaded shared library “plug-ins”that provide easy-to-use mechanisms for user extensibility.Scripting is the primary means by which users develop custommolecular modeling and analysis workflows. At startup, eachVMD instance must load a few thousand lines of script codeduring initialization of the embedded scripting interpreters,followed by loading of 70 shared library plug-ins, whichcurrently results in duplicated file I/O activity for each MPIrank. When running on the XK7 partition, using one MPI rankper node also avoids incurring potentially costly GPU contextswitch overheads that could otherwise occur if the GPU wereshared by independent processes.

The only significant drawback to using a single MPI rankper node is that it makes VMD itself entirely responsible foreffective use of all of the compute resources within a node,since most existing Tcl and Python scripts are written in asingle-threaded fashion. VMD implements multithreaded andGPU-accelerated algorithms for the most computationally de-manding analysis functions it implements, but there is currentlya gap in that user-developed analysis scripts might not fullyexploit the built-in routines that VMD provides, or due toa lack of a built-in function in VMD, single-threaded scriptcode may be used for significant analysis computations. Forcases where significant work is done by single-threaded userscripts and memory capacity constraints do not inhibit it, itmay be necessary to run VMD with multiple MPI ranks pernode despite the other considerations.

IV. DYNAMIC WORK SCHEDULING

The effective use of multi-core CPUs with one or moreGPUs or other accelerators poses several challenges notencountered in conventional multi-core software develop-ment. GPUs require somewhat different parallel decomposi-tion strategies and grain sizes than are typically employedfor multi-core CPUs, and they are capable of overlappinghost-GPU DMA operations with GPU kernel execution us-ing asynchronous programming interfaces. Hybrid CPU-GPUsystems can exhibit performance asymmetries resulting fromvariations in GPU capabilities and from Non-Uniform MemoryAccess (NUMA) host memory architectures combined withPCI-express bus topologies [13]. Hybrid systems also requirespecial treatment for error and exception handling. Popularmulti-core programming toolkits often fail to address the

Page 3: Early Experiences Scaling VMD Molecular Visualization … · Early Experiences Scaling VMD Molecular Visualization and Analysis Jobs on Blue ... with state-of-the-art computer

heterogeneous computing challenges described above, makingit necessary for advanced GPU-accelerated applications toincorporate their own GPU-aware dynamic work schedulers,error handling mechanisms, and related infrastructure.

VMD incorporates a dynamic work scheduler for hybridcomputing platforms that include both multi-core CPUs andGPU accelerators such as the Cray XK7 compute node. VMDuses the GPU-aware scheduler to manage execution on amixture of multi-core CPUs and GPUs with processor-specificwork granularity, and among groups or hierarchies of cooper-ating MPI ranks. The new work scheduler implementation forBlue Waters makes use of lock-free scheduler data structuresand atomic fetch-and-add machine instructions enabling it tobe used within loops for fine-grain parallel decompositionsthat would have been too inefficient previously. The newscheduler allowed replacement of per-scanline thread barriersynchronizations with a more efficient custom-written synchro-nization scheme similar to a phaser [14], improving scalabilityfor VMD/Tachyon parallel rendering jobs, and enabling thepotential application of the dynamic load balancer at pixel-or pixel-group-level granularity with acceptable overhead forthe first time. Tachyon performance tests were run on 8XE6 nodes with 32 threads per node using an empty scenein order to measure parallel work scheduling and messagepassing overheads. The combination of atomic fetch-and-addwith the new scanline synchronization scheme improved workscheduling performance by a factor of up to 1.3⇥ over theprevious implementation. The scheduler gracefully handlesGPU errors by retrying, or by rescheduling failed work unitson the CPUs, and it supports explicit mapping of CPU affinityto avoid exposure to deleterious performance asymmetries thatcan arise in NUMA compute node architectures.

V. PARALLEL I/O

High-performance I/O is critical for analysis of petascalesimulation trajectories due to the data sizes involved. Ina recent example, a single complete simulation of the all-atom HIV-1 capsid (64M atoms) produced roughly 10 TB oftrajectory data, and the full set of simulations performed duringthe project generated roughly 100 TB of trajectory data [1].Since read operations on structure and trajectory files dominatethe I/O required for VMD visualization and analysis tasks, wefocused our efforts on evaluating read performance.

The adaptation of VMD for Blue Waters extends ourprevious work on high-performance trajectory file formats forout-of-core visualization and high performance analysis [15].Our high performance MD trajectory format allows VMD touse virtual memory page-aligned zero-copy I/Os that bypassthe OS kernel buffer cache for best performance, and to avoidundesirable memory consumption associated with filesystembuffer cache growth when analyzing large simulation trajec-tories. The current implementation of this approach achievessingle-node trajectory read rates of up to 7.5GB/sec to direct-attached SSD arrays on a PCIe 3.0 test system. The achieved7.5GB/sec I/O rate demonstrates that in principle, there are nosignificant bottlenecks within the low-level I/O implementationused in VMD that would present problems on a petascalecomputer. The peak achieved direct-attached SSD I/O rate ishigher than we would expect to see for a single node in currentpetascale systems such as Blue Waters.

Each Blue Waters XIO (LNET) I/O node is connected toonly a subset of the Lustre OSTs. Access to a particular Lustrestripe for a given file may require communication with distantI/O nodes, averaging roughly 19 hops away [11]. Blue WatersI/O performance varies depending on the distances from acompute node to its target I/O nodes and the degree of networkcontention present [12]. Since I/O traffic must compete withMPI messages and other traffic it can be difficult to achievepeak single-node I/O rates for an arbitrary file when the systemis fully loaded with other jobs. At present, the only controlover file stripe placement available to a user is specification ofthe Lustre OST containing the starting stripe. For large filesstriped over many OSTs, this is an inadequate degree of controlto allow the user to influence I/O performance.

On Blue Waters, our approach has achieved single-node I/Orates up to 1.1GB/sec reading from a single file from a singlethread per node, with different nodes reading different trajec-tory files. In order to achieve peak parallel I/O performance onBlue Waters, it was necessary to spread trajectory data amonghundreds of files to permit good I/O load balancing across all1,440 Lustre Object Storage Targets (OSTs). This approachovercomes a current per-file Lustre OST striping limit of 160,thereby improving overall performance. Read performanceof the optimized VMD trajectory format was measured onBlue Waters, with varying node counts and trajectory segmentlengths for each reader. Table I lists the performance resultsobtained for different test cases and node counts, loading alarge set of molecular structure files and molecular dynamicssimulation trajectories. The I/O tests operated on a 1,681,697atom membrane structure. Each of the test files were stripedacross the maximum number of Lustre OSTs allowed (160),and the system default stripe size of 1MB was used for all files.The on-disk size of each trajectory time step was 19.3MB.

VMD I/O performance tests using 512 XE6 nodes achievedup to 109GB/sec. Runs on 512 XK7 nodes achieved up to59GB/sec. Both I/O rates are quite good considering that testswere performed on a fully-loaded production system, and theVMD I/O rate of 109GB/sec represents 11% of peak I/Operformance for the whole machine while using only 2% ofthe compute nodes. The performance disparity between theXE6 and XK7 runs is explained by the lack of I/O nodesin the XK7 partition of the initial production system. TheXK7 nodes are particularly valuable for trajectory visualizationand analysis, as described below. We expect the ongoing BlueWaters hardware upgrade that adds XIO (LNET) nodes to theXK7 partition to boost performance for VMD visualizationruns, which benefit greatly from the XK7 nodes. Larger-scaleVMD I/O tests conducted on the XE6 partition achieved apeak I/O rate of 275GB/sec on an 8,192 node run, reading ina test data set of 154 TB in only 9.3 minutes. The performanceresults obtained for large node counts on the XE6 partitionclosely track the peak full-machine I/O rates scaled by thefraction of the nodes used in the VMD I/O test.

VI. TRAJECTORY ANALYSIS ACCELERATION

Over the past several years an increasing number of VMDtrajectory analysis features have been adapted for GPU accel-eration using CUDA [4], beginning with those with the greatestcomputational complexity [9], [16]–[19]. Over the past year thememory requirement of the QuickSurf [19] molecular surface

Page 4: Early Experiences Scaling VMD Molecular Visualization … · Early Experiences Scaling VMD Molecular Visualization and Analysis Jobs on Blue ... with state-of-the-art computer

Test Type Node Type Nodes Per-file Test Size Parallel I/O RateData Size Average Peak

Combined Structure and Trajectory,Static Load Balancing

XK7 256 20,092MB 5TB 63GB/sec 65GB/secXK7 512 20,092MB 10TB 55GB/sec 59GB/secXE6 256 20,092MB 5TB 57GB/sec 60GB/secXE6 512 20,092MB 10TB 101GB/sec 109GB/secXE6 1,024 20,092MB 20TB 126GB/sec 137GB/secXE6 2,048 20,092MB 40TB 185GB/sec 202GB/secXE6 4,096 20,092MB 80TB 217GB/sec 218GB/sec

Trajectory Only,Dynamic Load Balancing

XE6 1,024 9,641MB 58TB 123GB/sec 127GB/secXE6 2,048 9,641MB 115TB 186GB/sec 194GB/secXE6 4,096 9,641MB 115TB 211GB/sec 230GB/secXE6 8,192 9,641MB 154TB 256GB/sec 275GB/secXE6 8,192 9,641MB 231TB - 234GB/sec

TABLE I. PARALLEL I/O PERFORMANCE TESTS.

algorithm has been halved through GPU-specific data structureoptimizations, and performance has increased by a factor of1.3⇥ to 2.0⇥ for large molecular complexes such as HIV [1].

The production Blue Waters XK7 compute nodes containTesla K20X accelerators based on the Kepler GPU archi-tecture. The high performance of Kepler-based Tesla K20XGPUs relative to the Opteron CPUs in XK7 nodes initiallyresulted in CPU-bound performance for individual steps inthe GPU-accelerated molecular surface determination [19] andelectrostatics [16] algorithms in VMD. In the case of theelectrostatics algorithm the performance of CPU-based spatialhashing, prolongation, and interpolation steps [16] limited thespeedup of XK7 vs. XE6 nodes to 4.3⇥, marginally faster thanthe 4.15⇥ speedup achieved by Fermi-based XK6 nodes in theBlue Waters Early Science System. We have begun to addressVMD CPU performance bottlenecks with hand-written SSEand AVX vector intrinsics for performance-critical operationsthat are far too complex for compiler autovectorization, suchas atom selection processing, achieving atom selection perfor-mance gains of 1.5⇥ to 4⇥ vs. the best compiler-generatedcode. We expect to eliminate remaining CPU bottlenecks bymigrating more algorithm steps to the GPU.

Recently, GPU-accelerated algorithms have been developedfor the bulk of the remaining VMD analysis functions, howevermany of the algorithms have linear time complexity and thecost of performing host-GPU DMA copies can potentiallyoverwhelm the GPU speedup for a single calculation in isola-tion. Fortunately, molecular structure and trajectory analysiscomputations tend to require many of the same moleculardata structures, providing an opportunity to amortize host-GPU DMA transfer costs over multiple analysis calculationsthrough “batching” of groups of GPU computations that sharesignificant data dependencies. We propose to change the VMDanalysis scripting interfaces to allow automatic batching ofGPU analysis computations that access common data, e.g.atomic coordinates, to better amortize host-GPU DMAs.

Many of the existing VMD analysis algorithms weredesigned to provide peak performance for large molecularcomplexes containing millions of atoms. These cases areindeed important for petascale analysis workloads, howeveranother important scenario that has received less attention isthe case where the same analysis computation is performed ona large number of small structures or on selections within a

large molecular complex. Neither of the two existing solventaccessible surface area (SASA) algorithms in VMD were wellsuited to computing separate per-residue SASA, as neededby the TIMELINE analysis tool described below. The originalCPU SASA implementation was single-threaded. The GPUSASA algorithm was extremely fast, but it was optimized forlarge structures [19]. To explore potential solutions to thisclass of problem that would be well matched to the needsof the TIMELINE tool, we developed a new multithreadedSASA implementation that computes SASA values for a list ofuser-defined atom selections. Since the work associated withcomputing SASA for each selection can vary considerably,the VMD dynamic load balancing infrastructure was used,achieving speedups of 14.5⇥ compared to the original CPUalgorithm when used within parallel TIMELINE runs on XE6nodes described below. This approach has been shown to bean effective way to use multi-core CPUs or GPUs to performlarge numbers of small analysis calculations that operate onsubsets of the same underlying molecular data.

VII. TIMELINE TRAJECTORY ANALYSIS

One of the key applications for parallel analysis tech-nologies implemented in VMD is the so-called “TIMELINE”plug-in2 [20], which provides easy-to-use graphical and user-extensible scripting interfaces for analysis tasks in large-sizeand long-timescale molecular dynamics simulation trajecto-ries. Quick assessment and identification of events that takeplace throughout a simulation can be provided by a “whole-trajectory” view produced by performing analysis calculations(e.g. root-mean-square deviation, SASA, secondary structure)for each small component of the entire simulated structure,for every frame of the trajectory. The result is a plot of thecalculated property against simulation time and structural com-ponent axes, which can greatly reduce the time a researcherneeds to identify trajectory events. An example of such a plotproduced by TIMELINE is shown in Figure 1.

TIMELINE calculations may be performed from amonga set of built-in analysis methods or through user-definedalgorithms. The zoomable 2D plot is interactively connectedto the 3D molecular structure displayed in VMD: moving thecursor through a transition event apparent in the 2D view will

2http://www.ks.uiuc.edu/Research/vmd/plugins/timeline/

Page 5: Early Experiences Scaling VMD Molecular Visualization … · Early Experiences Scaling VMD Molecular Visualization and Analysis Jobs on Blue ... with state-of-the-art computer

Fig. 1. TIMELINE displaying secondary structure trajectory. The left panelshows a VMD session with a cartoon representation of the I91 domain ofthe muscle protein titin displayed. The right panel shows the TIMELINEplug-in interface, with secondary structure calculated across the loaded titindomain unfolding trajectory: the time dimension is displayed horizontally, thestructure-component dimension is displayed vertically, and the property ofinterest is indicated by a matrix of colored rectangles, known variously as amatrix plot, heat map, or raster plot.

show the corresponding structures, time steps, and motions inthe 3D view. In the main 2D box-plot graph, users identifyevents by looking for patterns of changing values of theanalyzed parameter. The user can visually identify regionsof interest – for example, rapidly changing structure values,clusters of broken bonds, and differences between stable andnon-stable values.

The original implementation of TIMELINE runs as a scriptwithin the embedded Tcl interpreter of a single VMD instance.The molecular structure and (usually much larger) simulationtrajectory are loaded into memory, then the required (atomselections ⇥ trajectory frames) analysis calculations are per-formed. Many of the built-in TIMELINE analysis calculationsproceed timestep-first, calculating the values at all trajectorytime steps for a single selection at a time.

The computational demands made by TIMELINE’s detailedanalysis grow with system and trajectory size, making analysisof larger systems impractical to accomplish with a single com-pute node. We implemented a parallel version of TIMELINE,by calling parallel VMD primitives to perform the collectiveoperations required for an example calculation, per-residuesolvent-accessible surface area (SASA). The test case is amedium-sized biomolecular system, transcription terminationfactor Rho [21], a hexameric helicase which unwinds hybridRNA-DNA helices to help terminate transcription, modeledwith a 360,000-atom, 16,000-frame trajectory.

In the new parallel version of TIMELINE version presentedhere, Tcl scripts are augmented with VMD parallel scriptingprimitives that manage and synchronize calculations by MPIranks, with one MPI rank per node. The calculation begins bycreating a list of the atom selections to perform analysis on.Each node draws from a set of tasks to process a small subsetof the trajectory frames. All nodes participate in dynamic workscheduling of a procedure that performs the SASA calculationsselection-first, finding SASA values for every member of theselection list for each trajectory frame in a task. The task grainsize is chosen such that every node performs multiple tasks,which allows for benefits from dynamic load balancing: under-

0

200

400

600

800

1000

1200

1400

1600

1800

0 500 1000 1500 2000 2500 3000 3500 4000 4500 0

0.2

0.4

0.6

0.8

1

Spee

dup

Effic

ienc

y (S

peed

up/N

odes

)

Blue Waters XE6 Nodes

unusually slow I/O

SpeedupEfficiency

Fig. 2. Parallel speedup and efficiency for multithreaded per-residue SASAcalculations on Blue Waters for a 16,000-frame Rho helicase trajectory.Efficiency and speedup were computed by assuming that the average runtimefor a 16-node run represents a perfectly linearly scaling result.

100

1000

10000

100000

0 500 1000 1500 2000 2500 3000 3500 4000 4500

Seco

nds

Blue Waters XE6 Nodes

Single-threadedMultithreaded

Fig. 3. Wallclock times for single-threaded and multithreaded per-residueSASA calculations on Blue Waters for a 16,000-frame Rho helicase trajectory.

loaded nodes can be allocated more work, and nodes becomede-synchronized resulting in less contention for common re-sources – here, accesses to parts of the 65GB trajectory filestriped across 160 Lustre OSTs. Earlier parallelization attemptsshowed slowdowns of many minutes when large-node-countjobs attempted simultaneous access to a complete trajectoryfile. After calculation work completes, the results are gatheredto a single node for file output or display.

We first implemented parallel calculations running single-threaded on each node, with each worker performing SASAcalculations by looping over the long selection list – the2,514 individual residues of interest in the system. The single-threaded implementation displays almost perfectly linear scal-ing from 128 to 4096 nodes, with average efficiency fluctuatingaround 1.0 (the average 128-node runtime is assumed torepresent a perfectly linearly scaling result). A set of 4096-node runs produced a 3477⇥ average speedup compared toa projected single node running a single-threaded calculation.Superlinear average speedups were seen for node counts from1536 to 3072, which might be due to smaller jobs experiencinggreater network contention from non-TIMELINE jobs running

Page 6: Early Experiences Scaling VMD Molecular Visualization … · Early Experiences Scaling VMD Molecular Visualization and Analysis Jobs on Blue ... with state-of-the-art computer

at the same time.TIMELINE selections in per-residue calculations are rel-

atively small structures; each containing only the few dozenatoms of a protein residue, thus individual selections involvetoo few calculations to be efficiently parallelized. However,analysis of a combined list of such selections can be produc-tively parallelized, as was done here using the special-case,multithreaded SASA calculation code discussed above, load-balanced across multiple CPU cores. The code is optimizedfor just such a long selection list; strong-scaling performanceresults are shown in Figure 2. Efficiency stays above 0.5 forup to about 2500 XE6 nodes; aberrantly slow I/O and resultingreduced performance was observed for the 1536-node testruns. Wallclock times for single-threaded and multithreadedcalculations are compared in Figure 3. A 13, 900⇥ speedupwas observed for a multithreaded run on 2048 XE6 nodes(65,536 cores) compared to the projected speed for a single-threaded, single node run, reducing a projected 35-day wall-clock-time job to under 4 minutes. Many nodes in largernode count runs spend a significant percentage of runtimewaiting for all SASA tasks to complete, from less than 1%of runtime for 128 nodes growing to 10-15% for 4096-nodejobs. Currently, the assigned tasks can vary in size by onetrajectory frame; this leads to significant load imbalance athigh node counts, when typical task sizes shrink to very fewframes. The load imbalance can be addressed by assigning tasksizes more evenly, by producing a decomposition that is finer-grained than a full trajectory frame, and by assigning more,finer-grained work units to each node.

In future work, we plan to parallelize arbitrary user-writtenTcl, Python, or C++ analysis procedures, allowing users torun existing serial analysis scripts in an environment that re-quires little optimization, only minor modifications and limitedrestrictions. Parallel speedups for user-defined analyses areexpected to be roughly analagous to those achieved for SASA.We plan to extend the per-structure-component multithreadingapproach developed for SASA to other TIMELINE analyses.Lastly, TIMELINE will greatly benefit from the batching ofshared-data GPU computations proposed above, which canprovide much faster computation of multiple analyses methodsfor a trajectory, either on-demand or to provide immediatepost-job detailed trajectory assessment.

VIII. PARALLEL MOLECULAR VISUALIZATIONVMD incorporates several techniques for high-performance

high-quality molecular visualizations. In the batch mode en-vironment of Blue Waters, the visualization features of VMDcan be used to avoid transferring large simulation trajectoriesto remote sites and for visualizations or photorealistic movierendering jobs that would otherwise take weeks or months.

The Blue Waters XK7 nodes contain Tesla K20X GPUscapable of hardware-accelerated OpenGL rasterization. VMDwas modified to support rendering to so-called “off-screen”Pbuffer framebuffer memory, emulating windowed-OpenGLVMD rendering features and allowing transparent use by built-in VMD rendering and movie making tools. The main benefitsof support for OpenGL rasterization are significant savings inper-node memory footprint for large structures, and greatlyreduced cost in both node hours and wall-clock turnaroundtime for important exploratory visualization tasks.

Fig. 4. Detailed VMD surface rendering of the all-atom HIV-1 capsidstructure [1] produced using an improved memory-optimized version of theGPU-accelerated QuickSurf surface algorithm [19], and rendered with ambientocclusion lighting using the built-in Tachyon ray tracing engine [22].

VMD incorporates the Tachyon parallel ray tracing enginefor cases where high fidelity visualizations are required [22].Tachyon supports multiple parallel processing approaches in-cluding shared memory multithreading with POSIX threadsor OpenMP, distributed memory message passing with MPI,and hybrids of each. A Tachyon test case is a componentof the SPECMPI 2007 benchmark suite. The tight internalintegration of Tachyon into VMD allows rendering of shad-ows, ambient occlusion lighting, high-quality transparency, anddepth-of-field effects that are poorly suited to the OpenGLshading pipeline, and it outperforms even the fastest externalphotorealistic rendering tools by virtue of direct access to thein-memory VMD molecular scene, thereby eliminating I/O thatwould otherwise cripple performance [23]. The large CPU corecounts and memory capacities of Blue Waters compute nodesenable high quality renderings of molecular systems containing10M to 100M atoms to be produced with rapid turnaround,reducing movie rendering times from two weeks to underan hour, comparing a 64-core workstation to 480 XE6 nodes(15,360 CPU cores) of Blue Waters.

The Tachyon engine in VMD is currently a CPU-basedrendering code. In order to improve turnaround times forphotorealistic rendering jobs in VMD/Tachyon, we have begunwork on integrating OptiX, a CUDA-based GPU-acceleratedray tracing toolkit [24]. OptiX provides the fundamentalmachinery for GPU-accelerated ray tracing for incorporationinto other packages like Tachyon and VMD. Early tests ofOptiX ray tracing runs on the Blue Waters XK7 nodes havebeen successful. The performance gains obtained from OptiXdepend on scene size, the geometry and lighting model used,and many other factors. We expect to achieve performance onthe order of 2⇥ to 5⇥ that of XE6 VMD/Tachyon runs oncethe OptiX-based rendering code has been completed.

VMD parallel movie rendering performance was evaluated

Page 7: Early Experiences Scaling VMD Molecular Visualization … · Early Experiences Scaling VMD Molecular Visualization and Analysis Jobs on Blue ... with state-of-the-art computer

Wall Clock Execution TimeMovie Resolution Rendering Mode Node Type Nodes Script State Geometry and Total

Loading Loading Rendering

“PowerPoint”1057⇥ 652689,164 pixels

OpenGL rasterization

XK7 16 2 s 152 s 99 s 253 sXK7 32 2 s 158 s 45 s 205 sXK7 64 2 s 167 s 20 s 189 sXK7 128 2 s 191 s 11 s 205 sXK7 256 6 s 244 s 5.4 s 255 sXK7 512 7 s 302 s 2.5 s 312 s

In-place Tachyon ray tracingw/ ambient occlusion (AO) lighting

XK7 256 4 s 225 s 918 s 1,147 sXK7 512 9 s 292 s 532 s 834 sXE6 128 2 s 83 s 943 s 1,029 sXE6 256 4 s 125 s 560 s 692 sXE6 512 7 s 221 s 330 s 560 s

Combined OpenGL rasterizationand Tachyon ray tracing w/ AO

XK7 256 4 s 214 s 913 s 1,170 sXK7 512 9 s 300 s 531 s 848 s

4K UltraHD3840⇥ 21608,294,400 pixels

OpenGL rasterization XK7 512 9 s 300 s 3.1 s 314 sCombined OpenGL rasterizationand Tachyon ray tracing w/ AO XK7 512 9 s 295 s 5,828 s 6,133 s

No Image Output Tesla K20X CUDA Geometry Calc. XK7 512 7 s 188 s 1.5 s 197 sCPU Geometry Calc. XE6 512 7 s 214 s 23 s 244 sTABLE II. VMD PARALLEL MOVIE RENDERING PERFORMANCE TESTS.

on Blue Waters for a 1,079 frame movie of the all-atom HIV-1 capsid [1] using OpenGL rasterization, Tachyon ray tracingwith antialiasing, shadows, and ambient occlusion lighting, anda combined mode where VMD rendered each frame twice,once using Tachyon, and again using OpenGL. Table II sum-marizes the performance results obtained for movie renderingtests with varying movie resolutions, rendering techniques,node types, and node counts. All tests used dynamic loadbalancing, which helped to ameliorate the impact of order-of-magnitude variations in per-frame geometric computationand rendering time throughout the movie.

The movie rendering runtime for each result in Table IIis decomposed into three major components: script loading,state loading, and geometry and rendering. The script loadingruntime measured the time spent loading the scripts associatedwith the parallel movie rendering process. We began timing thescript loading operation when it became clear that the overheadassociated with the disk I/O for script loading increased withsize of the parallel job due to I/O contention. Since scriptfiles are small, we expect that reading the scripts on onlyone node and using MPI broadcast operations to transmittheir contents to the other nodes will improve performance.The state loading runtime is the time required for VMDto load the molecular structure and trajectory data neededto render the movie, and the time required to perform thenecessary geometry and graphics computations to restore theinitial visualization configuration for the movie. The geometryand rendering component of the runtime is the time takenfor computation of the molecular scene geometry and thesubsequent rendering of each movie frame.

The “PowerPoint” test cases are representative of moderateresolution movie renderings that are typically used for researchpresentations. The “4K UltraHD” cases match the imageresolution of next-generation digital television standards andapproximate state-of-the-art digital cinema projection systems.A third test case measured only the non-rendering runtime

components, highlighting the 15.3⇥ performance gain pro-vided by the XK7 Tesla K20X accelerators for molecular sur-face geometry computation, compared to the SSE-vectorizedmulti-core CPU algorithm on the 32-core XE6 nodes.

The results in Table II show that the runtime for moviesrendered with hardware-accelerated OpenGL rasterization isdominated by I/O and geometry calculations, with rasterizationtime representing the minority of the overall runtime in allcases. Experience has shown that a key benefit of the avail-ability of fast OpenGL rasterization is that it can be added as asecond rendering pass to a photorealistic ray tracing job withnegligible impact on overall movie rendering time. The lowcost of an additional OpenGL rendering makes it an ideal wayto provide a “failsafe” fall-back for photorealistic movie ren-derings that may produce unexpected or undesirable shadowsor reflections during some movie segment. In such problematiccases, the OpenGL-based movie frames without shadows canoften be inserted, replacing unusable ray traced images. Thedirect lighting equations used for the VMD OpenGL GLSLshaders and Tachyon rendering paths are nearly identical,yielding few visible differences between the two techniquesfor opaque molecular geometry without shadows.

The Tachyon results shown in Table II represent an ap-proach that renders independent movie frames on each node.This approach provides good scalability for long movieson moderate node counts, but VMD becomes incapable ofcompletely eliminating load imbalance for 512 node runswhen there are only 1,079 movie frames to render, given theorder-of-magnitude variation in per-frame rendering time thatoccurs in the HIV-1 movie. For rendering on much largernode counts it would be beneficial to progressively aggregatenodes into larger workgroups, using Tachyon’s strong-scalingMPI parallelization to render frames collectively as individualnodes begin to run out of independent work. By the end ofa movie, all nodes would collectively render each frame. Wehave implemented a prototype using MPI_Comm_split() to

Page 8: Early Experiences Scaling VMD Molecular Visualization … · Early Experiences Scaling VMD Molecular Visualization and Analysis Jobs on Blue ... with state-of-the-art computer

create multi-node Tachyon rendering workgroups, improvingrendering efficiency on large node counts. Ongoing VMD de-velopment work aims to eliminate intra-workgroup duplicationof I/O and geometry computations that preceed rendering, sothat they do not become a bottleneck.

IX. CONCLUSIONS

The parallel version of VMD on Blue Waters has demon-strated great potential for accelerating key simulation analysisand visualization tasks. The early performance results wehave presented show that large scale parallel VMD analysisruns would benefit significantly from adjustment of paralleltask grain size, and from development of VMD interfaces forbroadcast and multicast of script code, molecular structures,and trajectory frames to other nodes thereby decreasing oreliminating redundant I/O operations and resulting contentionon the Cray Gemini network fabric and XIO (LNET) I/Onodes. We expect to significantly improve the performance ofmovie renderings that use ray tracing and ambient occlusionlighting on the Cray XK7 nodes through the use of the OptiXGPU ray tracing toolkit.

ACKNOWLEDGMENTS

This research is part of the Blue Waters sustained-petascalecomputing project supported by NSF award OCI 07-25070,and “The Computational Microscope” NSF PRAC award.Blue Waters is a joint effort of the University of Illinois atUrbana-Champaign and its National Center for Supercomput-ing Applications (NCSA). The authors wish to thank NCSA,NVIDIA, and Cray for providing system software enablingGPU-accelerated OpenGL rasterization on the Blue WatersXK7 nodes, per our requests. The authors also thank Wen Maand Juan R. Perilla for providing simulation trajectories. Theauthors wish to acknowledge support of the CUDA Centerof Excellence at the University of Illinois, and NIH fundingthrough grants 9P41GM104601 and 5R01GM098243-02.

REFERENCES[1] Gongpu Zhao, Juan R. Perilla, Ernest L. Yufenyuy, Xin Meng, Bo Chen,

Jiying Ning, Jinwoo Ahn, Angela M. Gronenborn, Klaus Schulten,Christopher Aiken, and Peijun Zhang. Mature HIV-1 capsid structureby cryo-electron microscopy and all-atom molecular dynamics. Nature,497:643–646, 2013. doi:10.1038/nature12162.

[2] William Humphrey, Andrew Dalke, and Klaus Schulten. VMD – VisualMolecular Dynamics. J. Mol. Graphics, 14:33–38, 1996.

[3] Tiankai Tu, Charles A. Rendleman, David W. Borhani, Ron O. Dror,Justin Gullingsrud, Morten Ø. Jensen, John L. Klepeis, Paul Maragakis,Patrick Miller, Kate A. Stafford, and David E. Shaw. A scalableparallel framework for analyzing terascale molecular dynamics sim-ulation trajectories. In Proceedings of the 2008 ACM/IEEE conferenceon Supercomputing, SC ’08, pages 56:1–56:12, Piscataway, NJ, USA,2008. IEEE Press.

[4] John E. Stone, James C. Phillips, Peter L. Freddolino, David J. Hardy,Leonardo G. Trabuco, and Klaus Schulten. Accelerating molecularmodeling applications with graphics processors. J. Comp. Chem.,28:2618–2640, 2007.

[5] Ivan S. Ufimtsev and Todd J. Martinez. Quantum chemistry on graphicalprocessing units. 1. Strategies for two-electron integral evaluation.J. Chem. Theor. Comp., 4(2):222–231, 2008.

[6] Michael Garland, Scott Le Grand, John Nickolls, Joshua Anderson,Jim Hardwick, Scott Morton, Everett Phillips, Yao Zhang, and VasilyVolkov. Parallel computing experiences with CUDA. IEEE Micro,28(4):13–27, 2008.

[7] G. Giupponi, M.J. Harvey, and G. De Fabritiis. The impact ofaccelerator processors for high-throughput molecular modeling andsimulation. Drug Discovery Today, 13(23-24):1052–1058, 2008.

[8] Mark S. Friedrichs, Peter Eastman, Vishal Vaidyanathan, Mike Houston,Scott Legrand, Adam L. Beberg, Daniel L. Ensign, Christopher M.Bruns, and Vijay S. Pande. Accelerating molecular dynamic simulationon graphics processing units. J. Comp. Chem., 30(6):864–872, 2009.

[9] John E. Stone, David J. Hardy, Ivan S. Ufimtsev, and Klaus Schulten.GPU-accelerated molecular modeling coming of age. J. Mol. Graph.Model., 29:116–125, 2010.

[10] Jeremy Enos, Craig Steffen, Joshi Fullop, Michael Showerman,Guochun Shi, Kenneth Esler, Volodymyr Kindratenko, John E. Stone,and James C. Phillips. Quantifying the impact of GPUs on performanceand energy efficiency in HPC clusters. In International Conference onGreen Computing, pages 317–324, 2010.

[11] Kalyana Chadalavada and Robert Sisneros. Analysis of the Blue Watersfile system architecture for application I/O performance. In Cray UserGroup Meeting (CUG 2013), May 2013.

[12] Mark Swan and Doug Petesch. Blue Waters I/O performance. In CrayUser Group Meeting (CUG 2013), May 2013.

[13] Kyle Spafford, Jeremy S. Meredith, and Jeffrey S. Vetter. QuantifyingNUMA and contention effects in multi-GPU systems. In Proceedingsof the Fourth Workshop on General Purpose Processing on GraphicsProcessing Units, GPGPU-4, pages 11:1–11:7, New York, NY, USA,2011. ACM.

[14] Jun Shirako, David M. Peixotto, Vivek Sarkar, and William N. Scherer.Phasers: a unified deadlock-free construct for collective and point-to-point synchronization. In Proceedings of the 22nd annual internationalconference on Supercomputing, ICS ’08, pages 277–288, New York,NY, USA, 2008. ACM.

[15] John E. Stone, Kirby L. Vandivort, and Klaus Schulten. Immersiveout-of-core visualization of large-size and long-timescale moleculardynamics trajectories. Lect. Notes in Comp. Sci., 6939:1–12, 2011.

[16] David J. Hardy, John E. Stone, and Klaus Schulten. Multilevelsummation of electrostatic potentials using graphics processing units.J. Paral. Comp., 35:164–177, 2009.

[17] John E. Stone, Jan Saam, David J. Hardy, Kirby L. Vandivort, Wen-mei W. Hwu, and Klaus Schulten. High performance computation andinteractive display of molecular orbitals on GPUs and multi-core CPUs.In Proceedings of the 2nd Workshop on General-Purpose Processing onGraphics Processing Units, ACM International Conference ProceedingSeries, volume 383, pages 9–18, New York, NY, USA, 2009. ACM.

[18] Benjamin G. Levine, John E. Stone, and Axel Kohlmeyer. Fast analysisof molecular dynamics trajectories with graphics processing units–radialdistribution function histogramming. J. Comp. Phys., 230:3556–3569,2011.

[19] Michael Krone, John E. Stone, Thomas Ertl, and Klaus Schulten. Fastvisualization of Gaussian density surfaces for molecular dynamics andparticle system trajectories. In EuroVis - Short Papers 2012, pages 67–71, 2012. DOI: 10.2312/PE/EuroVisShort/EuroVisShort2012/067-071.

[20] Barry Isralewitz. Timeline: a VMD plugin for trajectory analysis.Tutorial, Theoretical and Computational Biophysics Group, Universityof Illinois at Urbana-Champaign, 2012.

[21] Nathan D. Thomsen and James M. Berger. Running in reverse: Thestructural basis for translocation polarity in hexameric helicases. Cell,139(3):523–534, 2009.

[22] John E. Stone. An Efficient Library for Parallel Ray Tracing andAnimation. Master’s thesis, Computer Science Department, Universityof Missouri-Rolla, April 1998.

[23] John Stone and Mark Underwood. Rendering of numerical flowsimulations using MPI. In Second MPI Developer’s Conference, pages138–141. IEEE Computer Society Technical Committee on DistributedProcessing, IEEE Computer Society Press, 1996.

[24] Steven G. Parker, James Bigler, Andreas Dietrich, Heiko Friedrich,Jared Hoberock, David Luebke, David McAllister, Morgan McGuire,Keith Morley, Austin Robison, and Martin Stich. OptiX: a general pur-pose ray tracing engine. In ACM SIGGRAPH 2010 papers, SIGGRAPH’10, pages 66:1–66:13, New York, NY, USA, 2010. ACM.