Research Software Engineering with Julia
by
Valentin Churavy
Choose your track:
Choose...
Principles of RSE
Performance Engineering
Parallel programming
Automatic Differentiation
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
Exercise 10:
Shared memory parallelism
Module 3: Parallelism
3.1
Shared-memory parallelism
In-depth 3:
Interactive performance tuning with Julia
3.2
GPU Computing
3.3
Distributed
Module 4: Automatic Differentiation
4.1
Automatic Differentiation and Machine Learning
4.2
Examples of Automatic Differentiation
Module 5: Performance Engineering
5.1
Profiling
5.2
Compilers
5.3
SIMD
2025
Exercise 2
Introduction to accelerated computing
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
.