Dave Cunningham <>

I currently work for Google at the New York office. I work in technical infrastructure (Google's internal cloud platform). My work address is

Previously I worked for IBM at the TJ Watson research lab, New York. I was part of the X10 group. I have worked on the X10 compiler and runtime. In particular I have worked on various aspects of code generation for the C++ backend. I have worked on native C++ code for the runtime, including an abstraction layer for low-level high performance network APIs. I have also worked on the X10 to CUDA compiler, and the runtime extensions to allow the running of X10 programs on the GPU.

I completed my PhD (thesis here) at Imperial College London under Susan Eisenbach and Sophia Drossopoulou, part of the SLURP group. My work has focussed on concurrent language primitives for object oriented languages. Particularly I have been working on implementing atomic sections with lock inference. I have been fortunate to work with Khilan Gudka on this subject. I have also looked at ownership types and their application to static detection of race conditions / atomicity violations. In my MSc thesis, I tried to formally compare the expressiveness of languages using locks/monitors and message passing for synchronisation.

Research Interests


Resilient X10: Efficient failure-aware programming [PDF]
David Cunningham, David Grove, Benjamin Herta, Arun Iyengar, Kiyokuni Kawachiya, Hiroki Murata, Vijay Saraswat, Mikio Takeuchi, Olivier Tardieu
PPoPP 2014
Also: Presentation
X10 and APGAS at Petascale [PDF]
Olivier Tardieu, Benjamin Herta, David Cunningham, David Grove, Prabhanjan Kambadur, Vijay Saraswat, Avraham Shinnar, Mikio Takeuchi, Mandana Vaziri
PPoPP 2014
M3R: Increased Performance For In-Memory Hadoop Jobs [PDF]
Avraham Shinnar, David Cunningham, Benjamin Herta, Vijay Saraswat
VLDB 2012
Object Initialization in X10 [PDF]
Yoav Zibin, David Cunningham, Igor Peshansky, Vijay Saraswat
ECOOP 2012
Also: Presentation and pdf version
A Performance Model for X10 Applications [PDF]
David Grove, Olivier Tardieu, David Cunningham, Ben Herta, Igor Peshansky, Vijay Saraswat
X10 2011
Also: Presentation
Object Initialization in X10 (original workshop paper) [PDF]
Yoav Zibin, David Cunningham, Igor Peshansky, Vijay Saraswat
X10 2011
Also: Presentation
GPU Programming in a High Level Language: Compiling X10 to CUDA [PDF]
David Cunningham, Rajesh Bordawekar, Vijay Saraswat
X10 2011
Also: Presentation
The asynchronous partitioned global address space model [PDF]
Vijay Saraswat, George Almasi, Ganesh Bikshandi, Calin Cascaval, David Cunningham, David Grove, Sreedhar Kodali, Igor Peshansky, Olivier Tardieu
AMP 2010
Lock Inference Proven Correct [PDF]
David Cunningham, Sophia Drossopoulou, Susan Eisenbach
FTfJP 2008
Also: Presentation
Also: Proof
Keep Off The Grass: Locking the Right Path for Atomicity [PDF]
David Cunningham, Khilan Gudka, Susan Eisenbach
Compiler Construction 2008
Lecture Notes in Computer Science
Also: Presentation
Universe Types for Race Safety [PDF]
David Cunningham, Sophia Drossopoulou, Susan Eisenbach
September, 2007
Also: Presentation
Also: Proof
Universe Types for Topology and Encapsulation [PDF]
David Cunningham, Werner Dietl, Sophia Drossopoulou, Adrian Francalanza, Peter Müller, Alexander Summers
Formal Methods for Components (LNCS Journal Special Issue Article)

Unpublications and Miscellaneous Talks


I have supported tutorials for the courses "Advanced Issues in Object Oriented Programming", "Program Analysis", and "Models of Concurrent Computation". I have tutored discrete maths to a small group of 1st year undergraduates under the responsibility of Sophia Drossopoulou.


I have programmed for as long as I can remember. When I grew up on the Isle of Wight, I played with BBC Basic, then Visual Basic. I had little reference material, no Internet connection, and knew no other programmers. When I finally got connected in my mid-teens, I discovered Java and didn't miss Basic much. Straight after school I went to Warwick University where I learnt SML, Prolog, C, and almost certainly some other things that I will not detail here. I lived in Coventry and didn't miss the Isle of Wight much, but I still wasn't getting enough car crime and concrete so upon completion I moved to London where I did the Advanced MSc at Imperial, and finally started a PhD. While doing my BSc at Warwick, I was sponsored by (and worked during summer holidays at) AMS which was a joint venture between BAE Systems and Finmeccanica (it no longer exists). I did various things including Ada programming and digital hardware work.

General Technical Interests

These are things that have mainly come up out of work or hobbies, i.e. not related to my research:

Misc links