General Purpose Computing Using GPUs on a Linux Cluster:
An Introduction and Programming Practicum
Hosted by HPCMP PET - FMS
7021 Harbour View Blvd.

23 Thru 25 October
Suffolk, VA

Maps of Norfolk-SAIC/J9 Area and SAIC Building

Course Background

The simulation community has often been hampered by constraints in computing: not enough resolution, not enough entities, not enough behavioral variants. High Performance Computing (HPC) can ameliorate those constraints. The use of Linux Clusters is one path to higher performance; the use of Graphics Processing Units (GPU) as accelerators is another. These are often called General Purpose GPUs (GPGPUs). Merging the cluster and GPGPU paths holds even more promise. The ISI team members were the principal architects of a successful proposal to the High Performance Computing Modernization Program (HPCMP) for a new 512 CPU (1024 core), GPU-enhanced Linux Cluster, joshua, for the Joint Forces Command’s Joint Experimentation Directorate (J9). This cluster was awarded to J9 via the Dedicated HPC Project Investment program, DHPI and was configured in such a way to putatively utilize the GPUs to increase performance by a factor of two or more, with concomitant savings in cost, power and space.

Offering this course will aid JFCOM as they work to take full advantage of the new JFCOM cluster. One of the unique aspects of the new machine is that there is a state-of-the-art NVIDIA GPU in each node. These GPGPUs can be programmed using the new CUDA programming language (Compute Unified Device Architecture, a "C-like" language). JFCOM has a need to improve simulation performance on the new cluster and will make modifications to simulation programs such as JSAF, enabling them to take advantage of heterogeneous HPC architecture. As JFCOM conducts their Noble Resolve experiments focused on emergency responses in urban areas, performance needs to be improved to adequately model the complexities of these crowded areas and large populations. They will need to make the most of the new GPGPU-enhanced Linux cluster asset. Programming models, code examples and practice problems in CUDA will be presented and implemented in class.

 

0. Data from Course Itself

   0.1   Course Materials

   0.2   Pictures of Course and Participants

1       CLOSED - Registration for HPCMP users.

   1. a - CLOSED - Pre-Registration for those who cannot register through the above page,
                 e.g. not a member of one of the designated organizations.
   1. b        Attendees and staff = 30  (Modal degree = MS CS)
   1. c    CLOSED You are invited to give us your input via a short GPU Course Questionnaire

2. Date and location:

23 thru 25 October 2007
SAIC Building Suffolk, VA

3. Agenda and Speakers

   3.1 Staff and Participant Speakers

       PET FMS FAPOC - Dr. David Pratt

       PET FMS On-Site - Dr. Phil Amburn

       Class Host and Leader - Dan Davis

       Class Lecturers - Dr. Patrick Legresley and Dr. Paulius Micikevicius

       Practicum Leader - Gene Wagenbreth

       Videographer - Jon Faschingbauer

       JFCOM/JSAF - Bill Helfinstine (computing needs and models)

   3.2 Schedule

Tuesday
(all invitees)

0900 - Welcome and User Needs - Dan Davis

0930 - GP & GPGPU Vision, history, and opportunity - Dr. David Pratt

1000 - Early GPGPU work and uses - Sanford Russell

1100 - Introduction to GPGPU concepts

1200 - Lunch 1300 - Hardware Architecture - nVidia

1500 - Software Architecture and Programming Model - nVidia

1600 - JFCOM needs and JSAF program architecture - Bill Helfinstine

1700 - Secure for Day

 

Wednesday
(serious coders only)

0900 - Programming experience and examples

1030 - Performance tuning and optimization

1200 - Lunch

1300 - Coding Practicum for Journeyman Programmers - nVidia and Gene

1700 - Secure for Day

 

Thursday
(survivors only)

0900 - Exercise in programming model for JFCOM code

1100 - Work on participant projects

1200 - Lunch

1300 - Coding Practicum for Journeyman Programmers

1500 - Evaluation of Coding Efforts by Attendees

1600 - Discussion of future use of joshua, coding, input for nVidia, etc.

1700 - Evaluations and class wrap up