Jun 5, 2013 · 9:00 a.m.– 4:30 p.m. · 130 Lewis Library, New Media Center
The GPU computing workshop will address topics such as why hybrid computing with GPUs is important to sustaining and advancing the state of the art in scientific and research computing, both in terms of performance and energy efficiency. The workshop will survey the broad range of GPU accelerated applications across all domains of scientific research and engineering. Participants will learn how to program GPUs via the use of libraries, OpenACC compiler directives, and CUDA programming. Users will engage in a broad range of hands-on exercises intended to familiarize them with GPU programming concepts. Topics range from introductory concepts to intermediate discussions on performance optimizations, use of profiling tools and the like.
Dr. Jonathan Bentz is a Solution Architect with NVIDIA, focusing on Higher Education and Research customers. In this role he works as a technical resource to customers and OEMs to support and enable adoption of GPU computing. He delivers GPU training such as workshops to train users and help raise awareness of GPU computing. He also works with ISV and customer applications to assist in optimization for GPUs through the use of benchmarking and targeted code development efforts. Prior to NVIDIA Jonathan worked for Cray as a software engineer where he developed and optimized high performance scientific libraries such as BLAS, LAPACK, and FFT specifically for the Cray platform. Jonathan obtained a PhD in physical chemistry and an MS in computer science from Iowa State University.
Jul 8, 2013 · 9:00 a.m.– 5:00 p.m. · 349 Lewis Library
Data Intensive Summer School
July 8–10, 2013
The Data Intensive Summer School focuses on the skills needed to manage, process and gain insight from large amounts of data. It is targeted at researchers from the physical, biological, economic and social sciences that are beginning to drown in data. We will cover the nuts and bolts of data intensive computing, common tools and software, predictive analytics algorithms, data management and non-relational database models. Given the short duration of the summer school, the emphasis will be on providing a solid foundation that the attendees can use as a starting point for advanced topics of particular relevance to their work.
Experience working in a Linux environment
Familiarity with relational data base models
Examples and assignments will most likely use R, MATLAB and Weka. We do not require experience in these languages or tools, but you should already have an understand of basic programming concepts (loops, conditionals, functions, arrays, variables, scoping, etc.)
Robert Sinkovits, San Diego Supercomputer Center
Nuts and bolts of data intensive computing
Computer hardware, storage devices and file systems
Networking and data movement
Digital libraries and archives
Data management plans
Access control, integrity and provenance
Introduction to R programming
Introduction to Weka
Standard algorithms: k-mean clustering, decision trees, SVM
Over-fitting and trusting results
Dealing with missing data
ETL (Extract, transfer and load)
The ETL life cycle
ETL tools â€“ from scripts to commercial solutions
Brief refresher on relational model
Survey of non-relational models and technologies
Presentation of data for maximum insight
R and ggplot package
NOTE: Students are required to provide their own laptops.
Virtual School of Computational Science and Engineering - Proven Algorithmic Techniques for Many-core Processors
Jul 29, 2013 · 9:30 a.m.– 5:00 p.m. · 349 Lewis Library
Studying many current GPU computing applications, we have learned that the limits of an application's scalability are often related to some combination of memory bandwidth saturation, memory contention, imbalanced data distribution, or data structure/algorithm interactions. Successful GPU application developers often adjust their data structures and problem formulation specifically for massive threading and executed their threads leveraging shared on-chip memory resources for bigger impact. We looked for patterns among those transformations, and here present the seven most common and crucial algorithm and data optimization techniques we discovered. Each can improve performance of applicable kernels by 2-10X in current processors while improving future scalability.
Experience working in a Unix environment
Experience developing and running scientific codes written in C or C++
Basic knowledge of CUDA (A short online course, Introduction to CUDA, is available to registered on-site students who need assistance in meeting this prerequisite)
Although not required, knowledge from "Programming Heterogeneous Parallel Computing Systems," offered July 9-13 this year is highly recommended.
Wen-Mei W. Hwu, professor of electrical and computer engineering and principal investigator of the CUDA Center of Excellence, University of Illinois at Urbana-Champaign
David Kirk, NVIDIA fellow
John Stratton, Ph.D. candidate in Electrical and Computer Engineering and author of the exercise solutions to "Programming Massively Parallel Processors - A Hands-on Approach"
why problem formulation and algorithm design choices can have dramatic effect on performance
common algorithmic strategies for high performance
Increasing locality in dense arrays
tiling of data access and layout
Reducing output interference
conversion from scatter to gather
parallelizing reductions and histograms
Dealing with non-uniform data
data sorting and binning
Dealing with sparse data
sorting and compaction
Dealing with dynamic data
parallel queue-based algorithms
Improving data efficiency in large data traversal
stencil and other grid-based computation
Case studies from application domains
computational fluid dynamics
NOTE: Students are required to provide their own laptops.