Browse Courses
- Debugging Serial and Parallel Codes
- This course introduces you to techniques for debugging serial and parallel codes using debugger software. After completing the course you will be able to recognize a variety of bugs you might make and how to debug them using debugger software.
- Getting Started on theTeraGrid
- This tutorial provides general information needed to get started quickly using the TeraGrid.
- Intermediate MPI
- This tutorial covers intermediate-level topics in MPI. Since what "intermediate" means varies from person to person, we initially found it difficult to determine which topics to include. So what we did was select topics that cover questions we had been asked by actual MPI programmers!
- Introduction to MPI
- An introduction to the Message Passing Interface, or MPI. MPI is a standard library of subroutines (Fortran) or function calls (C) that can be used to implement a message passing program.
- Introduction to Multi-core Performance
- This tutorial will help current and prospective users of multi-core systems understand the technology and how to leverage it to accelerate their science and engineering research.
- Introduction to OpenMP
- This tutorial provides an introduction to OpenMP, a standardized API for parallelizing Fortran, C, and C++ programs on shared-memory architectures. Upon finishing this tutorial you should be able to apply OpenMP to your codes in a minimum amount of time. Examples are presented in both Fortran and C.
- Multilevel Parallel Programming
- This tutorial describes how to develop multilevel parallel programs (MLP) using MPI and OpenMP. A problem set is included so that you can write your own MLP programs and compare your code with the solution given.
- Parallel Computing Explained
- This course covers a variety of introductory topics on parallel computing.
- Parallel Numerical Libraries
- This course is an introduction to using parallel numerical library routines. Each lesson covers a specific mathematical area and describes which routines in which libraries you should use.
- Performance Tuning for Clusters
- This course introduces techniques for optimizing code performance on a cluster. You will learn how to measure the performance of your program, what bottlenecks to look for, and techniques to eliminate or reduce these bottlenecks.


