Dave Cunningham <>

I currently work at Google New York, on the Cloud Platform. I have also launched a 20% project called Jsonnet. My work address is

I have served on the program committees for ADMS2014 and the external review committee for PPoPP2015.

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. For example, code generation for the C++ backend, aspects of the C++ runtime, including an abstraction layer for low-level high performance network APIs. I maintained the type system. I lead the work on the X10 to CUDA compiler, and the runtime extensions to allow the running of X10 programs on the GPU. I also lead the Resilient X10 project.

I completed my PhD at Imperial College London under Susan Eisenbach and Sophia Drossopoulou, part of the SLURP group. My work focussed on concurreny primitives for object oriented languages. Particularly, 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. At one point, I single-handedly fixed an air traffic control radar!

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