Programming for Performance | ECE 459 - University of Waterloo

University of Waterloo

Learn advanced techniques for profiling, rearchitecting, and implementing high-performance software systems, including parallelization, multithreading, async I/O, and distributed computing.

University CoursesC++GPU Programming

Introduction

Learn techniques for profiling, rearchitecting, and implementing software systems that can handle industrial-sized inputs, and to design and build critical software infrastructure. Learn performance optimization through parallelization, multithreading, async I/O, vectorization and GPU programming, and distributed computing.

Highlights

  • Profiling and rearchitecting software systems for industrial-scale inputs
  • Implementing performance optimization techniques such as parallelization, multithreading, async I/O, vectorization, GPU programming, and distributed computing
  • Designing and building critical software infrastructure

Recommendation

This course is recommended for students interested in developing high-performance software systems and optimizing the performance of large-scale applications. It provides practical skills and hands-on experience in advanced programming techniques for performance improvement.

How GetVM Works

Learn by Doing from Your Browser Sidebar

Access from Browser Sidebar

Access from Browser Sidebar

Simply install the browser extension and click to launch GetVM directly from your sidebar.

Select Your Playground

Select Your Playground

Choose your OS, IDE, or app from our playground library and launch it instantly.

Learn and Practice Side-by-Side

Learn and Practice Side-by-Side

Practice within the VM while following tutorials or videos side-by-side. Save your work with Pro for easy continuity.

Explore Similar Hands-on Tutorials

C++ Language Tutorial | Beginner to Advanced

38
Technical TutorialsC++Programming
Learn C++ programming from the ground up, including practical examples and the latest features. Ideal for beginners and experienced developers.

Data Structures and Algorithm Analysis in C++

7
Technical TutorialsAlgorithmC++
Comprehensive guide to data structures, algorithms, and problem-solving using C++. Suitable for students and professionals interested in algorithmic problem-solving.

Principles of Algorithmic Problem Solving

2
Technical TutorialsAlgorithmC++Data Structures
Comprehensive course on algorithm design, data structures, and problem-solving strategies in C++. Suitable for beginners and experienced programmers.

Compiler Design: Theory, Tools, and Examples, C/C++ Edition

2
Technical TutorialsCC++Compiler
Comprehensive course on compiler design, covering theory, tools, and practical C/C++ examples. Explore lexical analysis, syntax analysis, and code generation.

Introduction to Modern OpenGL

18
Technical TutorialsC++Computer GraphicsOpenGL
Learn the latest OpenGL features and create modern graphics applications with interactive examples and expert guidance.

Beejs Guide to Network Programming - Using Internet Sockets

12
Technical TutorialsCC++NetworkingProgramming
Comprehensive guide to network programming, focusing on the use of internet sockets. Written by experienced author Brian "Beej Jorgensen" Hall, offering in-depth coverage and practical examples.

WebAssembly friendly programming with C/C++

25
Technical TutorialsC++
Learn how to leverage your C/C++ skills to build WebAssembly-based applications with this comprehensive guide covering the basics of WebAssembly and Emscripten.

Build Your Own Redis with C/C++

6
Technical TutorialsCC++Redis
Comprehensive guide to building and understanding Redis from scratch using C/C++. Learn network programming, data structures, and low-level systems programming.

A Complete Guide to Standard C++ Algorithms

6
Technical TutorialsAlgorithmC++Docker
Comprehensive guide to standard C++ algorithms with code samples, exercises, and information on C++20 ranges and views. Recommended for C++ programmers seeking to deepen their understanding of the standard library.