Profiling

This week, David Dickinson gave the first of our hands-on sessions, teaching us about how to profile software. Profiling is an essential tool in any software developer’s toolbox, allowing us to find bottlenecks in the code and target our optimisation efforts. [Read More]

Optimisation

Richard Evans gave an introduction to optimising your code, showing us some tips and tricks to help the compiler generate optimal code, and ultimately give us our simulation results faster.

Compilers

We often treat compilers as a bit of a black-box, without really understanding what it is they are doing. Today, I will take a brief tour through the different parts of a compiler to hopefully demystify them somewhat. [Read More]

What is a CPU?

This week, Phil Hasnip gave us a guided tour of a modern CPU, explaining how the different pieces, from ALU to pipelines work together to crunch numbers and show us pictures of cats, instantly.

Documentation

Helping future you

It happens to the best of us – you come across some incomprehensible code and wonder “who on earth wrote this?” only to discover it was you, a mere six months ago. Writing documentation is one of those tasks that often feels like a bit of a chore, but is... [Read More]