9 Things Every Fresh Graduate Should Know About Software Performance

9 Things Every Fresh Graduate Should Know About Software Performance

At Johnny’s Software Lab we’ve spent a lot of time deep-diving into advanced performance topics — vectorization, cache hierarchies, memory bandwidth, you name it. But not everyone is ready to jump straight into assembly listings and microarchitectural details. This post is for the beginners. For the fresh graduates and junior developers who are just starting…

Crash course introduction to parallelism: Multithreading

Crash course introduction to parallelism: Multithreading

In this post we introduce the essentials of programming for systems with several CPU cores. We start with an explanation of software threads and synchronization, two fundamental building blocks of multithreaded programming. We explain how these are implemented in hardware, and finally, we present several multithreading APIs you can use for parallel programming.