Do you write code that needs to run more quickly? For computationally intensive code, improving performance is often an important concern.

Parallel computing provides techniques to write programs that use multiple processor cores. A major difference among all modern computers, from quad-core personal laptops to the largest supercomputer, is in the number of available processor cores. In all cases, learning how to harness the additional compute power of multiple cores can be a big boost to how fast you can get results from the programs that you run.

This workshop is split into two halves. Lessons in the first half describe parallel computing concepts and issues, while the second half applies these concepts to practical examples in the MATLAB language.

## Prerequisites

A general knowledge of programming is useful for the first half of this workshop. A background in the MATLAB programming language is important for following along with the workshop’s second half.

Although not required, it is recommended to bring a laptop with MATLAB already installed to follow along and try code examples yourself.

Setup | Download files required for the lesson | |

00:00 | 1. Parallel vs Sequential Computing | What is Parallel Computing? |

00:15 | 2. Limitations of Parallel Speedup | How fast can I go? |

00:25 | 3. Types of Parallel Workers | How is parallelism implemented? |

00:35 | 4. Bottlenecks and overhead | What else slows me down? |

00:45 | 5. Writing Parallel Code | How can I parallelize my existing code? |

00:55 | 6. MATLAB: Parallel Programming | How can we write parallel programs in MATLAB? |

01:15 | 7. MATLAB: Case Studies | What kind of MATLAB code can be paralellized? |

01:55 | 8. MATLAB: Vectorization | How does vectorization work in MATLAB? |

02:15 | 9. MATLAB: Best Practices | What guidelines are there for improving MATLAB code performance? |

02:30 | Finish |

The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.