• Research Software Engineering with Julia

    by Valentin Churavy
  • Welcome

    • Class logistics
    • Software installation
    • Resources
  • Module 1: Introduction

    • 1.1 Research Software Engineering
    • 1.2 Parallelism
    • Exercise 1: Shared-memory parallelism
    • Exercise 2: Introduction to accelerated computing
    • 1.3 Performance Engineering
    • In-depth 1: Matrix multiply
    • Exercise 3: Type-stability
    • 1.4 Automatic Differentiation
    • Exercise 6: Optimization of parameters
    • Exercise 6: Pitfalls of AD
    • Exercise 7: Gradient descent
  • Module 2: Principles of Research Software Engineering

    • 2.1 Software development with Github
    • Exercise 8: Github
    • 2.2 Reproducibility
    • 2.3 Debugging
    • Exercise 9: Debugging
  • Module 3: Parallelism

    • 3.1 Shared-memory parallelism
    • In-depth 3: Interactive performance tuning with Julia
    • Exercise 10: Shared memory parallelism
    • 3.2 GPU Computing
    • Exercise 11: Introduction to KernelAbstractions
    • 3.3 Distributed programming with MPI.jl
    • Exercise 12: Running MPI.jl locally
  • Module 4: Automatic Differentiation

    • 4.1 Automatic Differentiation and Machine Learning
    • Exercise 13: Reverse mode AD
    • Exercise 14: Reverse mode AD
    • 4.2 Examples of Automatic Differentiation in Scientific Computing
    • In-depth 4: Lagrangian
  • Module 5: Performance Engineering

    • 5.1 Compilers

  • 2025

Research Software Engineering with Julia

Schedule

Research Software Engineering

2025-04-16

Parallelism

2025-04-23

Performance Engineering

2025-04-30

Automatic Differentiation

2025-04-16

Software development with Github

2025-05-14

Reproducibility

2025-05-21

Debugging

2025-05-28

Shared-memory parallelism

2025-06-04

GPU Computing

2025-06-11

Distributed programming with MPI.jl

2025-06-18

Automatic Differentiation and Machine Learning

2025-06-18

Examples of Automatic Differentiation in Scientific Computing

2025-07-02

Compilers

2025-07-08
Edit this page on
Website based on the MIT course Computational Thinking, a live online Julia/Pluto textbook and built with Pluto.jl and the Julia programming language.