We had a catch up with Dr Laura Morgenstern who recently joined our department of Computer Science.
I’ve always had an interest in solving scheduling problems. For instance, back in school when it came to squeezing as many homework assignments as possible into ridiculously short morning and lunch breaks. Consequentially, I studied computer science and developed a passion for parallel computing early on. My journey into High Performance Computing (HPC) really gained momentum when I joined the Student Cluster Competition team at Chemnitz University of Technology. Today, I supervise Durham University’s team in the hope to inspire the next generation of HPC experts.
I joined Durham University in January 2022 as assistant professor at the Department of Computer Science.
My research aims at a programming model that allows software engineers to leverage the massive parallelism of current and future computers more easily and efficiently.
When an algorithm cannot be “trivially” subdivided into sufficiently many independent operations to keep all cores of a processor busy, it loses out on using the processor’s full computational power. To tackle this challenge, task parallelism has been invented. Task graphs allow us to describe all operations along with their dependencies within an algorithm. Hence, they enable us to identify all tasks that can theoretically be done in parallel.
However, scheduling and executing these task graphs efficiently is a highly complex problem, and therefore an active field of research in HPC and theoretical computer science. My current focus is on task graph scheduling on GPUs (Graphics Processing Units) since they are much more capable than to be used for rendering your occasional video game only.
I am fascinated by the paradox that so many things in our lives are concurrent systems – say, cooking a multi-course dinner or working through your daily to-do list, and yet, reasoning about concurrency and writing parallel software is still inherently complex.
A prototypical implementation of my work in the context of molecular dynamics simulations has shown a speed-up in the order of a magnitude in comparison to state-of-the-art approaches. In the long run, I hope that my research can help to accelerate software in diverse domains of industry and academia.
In the near future, I aim to make my programming model more intelligible such that it can be applied to new applications quicker. In the long run, I aim to combine the CPU and GPU programming model to relieve software developers from writing a version of their software for each architecture.
I love learning and creating new things – be it, learning a new (programming) language, creating a new recipe, or trying out yet another painting technique.