Parallel Programming in Rust

Dušan Gajić · 17/03/2026

Course Description

Parallel programming in Rust is a concise and fast-paced introduction to parallel programming for performance-focused computing intended for existing developers who are accustomed to working with languages that do not prioritize performance and parallelism. This introduction is done in Rust which provides both an excellent developer experience, and excellent single-thread performance, as well as a vast array of parallelization techniques. The course covers both an introduction to fast, safe Rust, as well as simple threading techniques, advanced threading with Crossbeam/flume, automated work-stealing parallelization of Rayon, and GPU acceleration through cudarc. An introduction to the CUDA architecture and programming model is also included.  

Prerequisites 

  • Understanding of fundamental programming concepts  
  • Proficiency in the Rust programming language at a fundamental level 
  • An understanding of mathematical concepts at a university freshman level (i.e., fundamentals of calculus and discrete algebra) 

Course Objectives  

After successfully finishing the course, the students will be able to 

  • Understand and explain basic and intermediate concepts in parallel programming  
  • Develop intermediate Rust proficiency    
  • Solve intermediate parallel programming tasks using the right tools in Rust.   
  • Easily adapt to domain-specific tooling and challenges.   

Course Learning Outcomes  

At the end of this course, the students will have 

  • Written small but functional and high-performance implementations of key algorithms in Rust using suitable tools.  
  • Had experience in necessary tooling and environment setup for high performance and parallel computing  
  • Learned the fundamentals of parallel problem decomposition  

Textbook and Reference Materials 

  • Klabnik, Steve, and Carol Nichols. The Rust programming language. No Starch Press, 2023. (and modern online iterations).  
  • Relevant crate documentation available on docs.rs  

Course Conduct 

At the end of each chapter of the course, students will be given exercise problems that they will work to independently solve before they are evaluated at the start of the next chapter. The results of these evaluations will track each student’s progress, and this start-of-chapter session will be used to make sure that everyone understands the solution to these exercises before progressing.  

Each chapter will be preceded by assigned reading from the reference documentation. Then, at the start of the class period an overview of this material will be presented. This overview’s key purpose is to identify weaknesses in the student’s understanding of the material and to remedy these weaknesses. This is followed by a series of exercises that are partially done by the student themselves and partially demonstrated by the instructor.  

Instructors

Prof. Dušan Gajić, PhD, Full Professor

Prof. Dinu Dragan. PhD, Full Professor

Prof. Veljko Petrović, PhD, Assistant Professor

Branislav Ristić, MSc, Teaching Assistant

Nikola Vukić, MSc, Teaching Assistant

Course Content

About Instructor

Not Enrolled
This course is currently closed

Course Includes

  • 17 Lessons
  • 30 Quizzes