Verse Transactional Memory
When I interviewed for Epic Games it was for a graphics post - I wanted back to working on shader compilers. But even though most of my interviews were from the fantastic graphics side of the company, I had a few interviews about something I knew very little about - the Verse language. And on one of those interviews I was asked about something I hadn’t thought about for 15 years - Transactional Memory.
When I was an undergrad my honours project was writing a Software Transactional Memory (STM) system for the PlayStation 3. I loved the PlayStation 3’s architecture and I knew nothing about STMs before I started. This project ended up being awarded the honours project of the year and I had found STMs so interesting a concept. I even toyed with going to EPFL in Switzerland to do a PhD in STMs.
Cut back to 15 years later. Verse needed an STM, it needed C++ and Verse to behave correctly while sharing the same STM, and it would need to be fast.
Well that’s what I, and a great team here at Epic, have been working on - bringing an STM to C++.
I’m not going to revisit the contents of the post (please read it!), but suffice to say the last 18 months working on this has been a blast. We’ve got a ways to go, and I’m looking forward to the challenge.