Skip to Main Navigation Skip to Secondary Navigation Skip to Tool Navigation
  • Home
  • FAQs
  • Sitemap
  • Search
  • Programs
  • For Individuals
  • For Organizations
  • About Us
  • Contact
MIT Professional Education
Short Programs
  • Advanced Study Program
  • Short Programs
    • Overview
    • Courses by Topic
    • Courses by Date
    • Admissions
    • Accommodations
    • Travel & Arrival
    • Participants' Comments
    • FAQs
    • CEUs
    • Costs & Dates
    • Contact
  • Custom Programs
  • Get Email Updates

Short Programs

Graphic Cards for Technical Computing


This course is currently only offered as a custom program. The below description should be taken as an example of content and can be tailored to meet company needs. If you have been thinking about a customized course for your group of 25 or more, please review additional information on the Custom Programs page.

Share |

Course Summary  |  Learning Objectives  |  Who Should Attend  |  Program Details & Outline  | 
Participants' Comments  |  Lecturers  |  Updates

Course Summary

Any computer with a modern high-end graphics card contains a high-speed parallel computer that can perform technical computations much faster than the host machine's CPU. This course focuses on using programmable graphics chips (GPUs) to accelerate single and multi-computer technical computing calculations. The techniques covered provide a potentially powerful way to extract much more performance out of a computer system for a given amount of power and for a modest budget. The course includes both practical hands-on activities, exploring the technologies that are available today to program these devices, and a critical overview of relevant parallel programming paradigms. Together these topics provide an in-depth perspective on emerging GPU technology, covering its potential benefits as well as its challenges. The course is suited to both hands-on technical computing practitioners and technically knowledgeable decision makers interested in understanding how desktop, power efficient parallel computing technologies might impact their domain. The course will include multiple worked example application scenarios from numerical computing simulations using partial and ordinary differential equations and employing implicit and explicit methods.

Content

Fundamentals  Fundamentals: Core concepts, understandings and tools (30%)

Latest Developments  Latest Developments: Recent advances and future trends (30%)

Industry Applications  Industry Applications: Linking theory and real-world (40%)

Delivery Methods

Fundamentals  Lecture: Delivery of material in a lecture format (40%)

Latest Developments  Discussion or Groupwork: Participatory learning (20%)

Industry Applications  Labs: Demonstrations, experiments, simulations (40%)

Level

Fundamentals  Introductory: Appropriate for a general audience (20%)

Latest Developments  Specialized: Assumes experience in practice area or field (70%)

Industry Applications  Advanced: In-depth explorations at the graduate level (10%)

« Back to Top

Learning Objectives

  1. Understand the origin of GPU performance.
  2. Examine the programming abstractions that GPUs offer.
  3. Understand what algorithms are or are not suitable for GPUs.
  4. Apply software strategies that make sense.
  5. Learn how to use GPUs singly and in parallel clusters.
« Back to Top

Who Should Attend

The course is designed for technical professionals who are interested in understanding how GPU technology applies to real-world technical computing applications. The course will mix lectures with hands-on computer lab sessions that will give participants a chance to try out, either singly or in groups, lecture material. Some elementary knowledge of computers is assumed.

Participants should have some understanding of computer programming. Typical participants will be interested in learning how parallel processing using graphics cards can accelerate the solution time for technical computing problems in science, mathematics and engineering.

« Back to Top

Program Details & Outline

This course looks at the opportunities and challenges of deploying technical computing applications on programmable graphics hardware, GPUs. Modern, low-cost graphics cards contain programmable arrays of floating point processors and, in ideal circumstances, are able to stream data through those processors at rates of close to 1 trillion arithmetic operations per second, tens to hundreds times the performance of a desktop PC CPU. In this course we will use lectures and hands-on sessions to look at:

(i) how and in what situations GPUs can achieve these levels of performance
(ii) what are the technical challenges of using GPUs within large software projects
(iii) what are the current limitations of GPU technology
(iv) how can multiple GPUs be used together
(v) how do GPUs compare to Cell and FPA technologies

At the end of this course you will have (a) detailed knowledge of current GPU technology, (b) a framework for understanding whether GPU technology applies to a specific problem or algorithm and (c) hands-on experience in end-to-end GPU application development.

Day 1

  • Introductions and overview of course objectives
  • GPU overview lecture
  • Demonstration of GPU applications
  • Hands-on computer lab session to modify and test simple GPU program

Day 2

  • Thinking about parallel programs and scalability lecture
  • Demonstration of scalability issues
  • Hands-on computer lab session beginning numerical application development

Day 3

  • GPU performance and memory layout lecture
  • Demonstration of memory layout testing
  • Hands-on computer lab session applying memory layout knowledge to numerical application
  • Reception and demonstration of high-end GPU visual and numerical codes

Day 4

  • Integrating GPU code within existing software environments lecture
  • Demonstration of integration approaches
  • Hands-on computer lab session applying integration techniques to numerical application

Day 5

  • Running multiple GPUs in parallel
  • Demonstration of multi GPU processing
  • Hands-on computer lab session applying multiple GPU techniques to numerical application

Course Resources:

For this course we will have dedicated access to a 30 machine, parallel cluster of NVidia GeForce GPU machines. We will also have shared access to a cluster of NVidia Tesla systems. The focus of the hands-on sessions will be NVidia CUDA technology, but we will also cover alternate technologies such as Cg and CTM in class sessions.

« Back to Top

Participants' Comments

Staff Software Engineer, Digimarc Corporation
"Good experience with a knowledgeable instructor, giving me a good overall understanding of GPU programming."

Technical Staff, MIT Lincoln Laboratory
"A good mix of analysis of hardware and hands-on learning."

Senior Digital Signal Processing Engineer, BAE Systems
"All materials were very current, which is important in such a quickly changing field. They were also very applicable and practical to the course goals."

« Back to Top

Lecturers

Chris Hill
Principal Research Scientist in the Department of Earth, Atmospheric & Planetary Sciences at MIT.

« Back to Top

Updates

There are no updates at this time.

« Back to Top

MIT © 2012 Massachusetts Institute of Technology | About this site