Mark graduated from the University of Cambridge in 1988 with an MA in Mathematics. Two years working on boundary layer modelling at the UK Meteorological Office were followed by an MSc in Numerical Analysis at the University of Manchester. From 1991 to 1998 he worked as a Research Associate at the Centre for Novel Computing in Manchester University's Computer Science department. During this time he completed his PhD, and worked on a variety of projects in the areas of novel applications of high performance computing, implementation techniques for parallel programming, load balancing algorithms, and performance analysis of parallel programs.
Mark has been working at EPCC in the University of Edinburgh since 1998 where he is currently a senior research fellow. His research interests include the benchmarking and performance analysis of parallel computers, parallel programming languages, and novel applications of HPC. Mark is EPCC's representative on the OpenMP Architecture Review Board, and was chair of the OpenMP Language Committee for five years. During this time he was in charge of the production of versions 2.5 and 3.0 of the OpenMP API specification.