![]()
![]() |
Rob Ennals Intel Research Berkeley |
![]()
![]()
I joined Intel Research in February 2004. Initially I worked at the lab in Cambridge, but I relocated to Berkeley in April 2006. Prior to that (2000-2004), I was a PhD student at the Cambridge University Computer Laboratory, funded by Microsoft Research, and supervised by Simon Peyton Jones. While I was an undergrad I did OS kernel development for SCO (old SCO, not new SCO) and wrote feature articles for .EXE Magazine.
In my spare time, I enjoy performing standup comedy, riding my motorbike, and snowboarding. On occasion, I also produce short films and welded sculpture.
![]()
![]()
I am or have been involved in a number of projects:
I also run the Intel Research Programming Systems Seminar Series.
- Ivy: Improve the reliability and scalability of existing C software my incrementally migrating them to a more sophisticated language.
- Mashups for the Masses: Allow non-expert users to easily create web mashups as they browse the web. Rather than requiring a user to plan ahead and write a mashup as a program, a user can instead browse the web as they would normally, and click on suggestions for ways that MashMaker (our tool) should augment the page they are looking at with additional information from other web sites.
- Jekyll: Ease the migration from a legacy language to a new language by maintaining synchronized editable versions of a program in both the old language and the new language, and propagating any updates between the two sides. This work started out as a separate project but has now been merged into the larger Ivy project.
- High Performance Software Transactional Memory: Software Transactional Memory takes the concept of a transaction that has long been popular in databases, and applies it to in-memory data for mainstream concurrent programs. Initially, all STMs were "non-blocking" and slow. I built the first STM that was "blocking" and fast, arguing that theoretical non-blocking gurantees were not useful in practice. To begin with people were quite hostile to this approach, but it has since been adopted by the majority of implementations.
- PacLang: Some designs of multi-core processors do not give all cores access to all memory. In order to program such devices, it is necessary to move beyond a shared memory programming model. In PacLang, we explored the idea of using linear types to allow one to easily pass data between concurrent threads, without needing to introduce shared memory. To make this concrete, we produced a high performance implementation of our language for Intel IXP Network Processors.
- Adaptive Evaluation of Non-Strict Programs: If your father tells you to tidy your room, should you do so? That depends on how dirty it is, how forgetful your father is, and how angry he is likely to get if you don't do it. More generally, in order to decide whether to do some computation, one needs to have an accurate model of its cost, the cost of putting it off, and the likelyhood of it being useful in the future. During my PhD, I designed an implemented a system that could build up a model of these properties at runtime and out-performed the existing static analyses by an average of 20%.
![]()
![]()
Publications while at Intel Research
- Safe Manual Memory Management
David Gay, Rob Ennals, and Eric Brewer
ACM SIGPLAN International Symposium on Memory Management (ISMM), 2007
Download: (non-final submitted draft)- User-Friendly Functional Programming for Web Mashups
Rob Ennals and David Gay
ACM SIGPLAN International Conference on Functional Programming (ICFP), 2007
Download: (non-final submitted draft)- MashMaker: Mashups for the Masses (Demo Paper)
Rob Ennals and Minos Garafalakis
SIGMOD, 2007
Download: (paper)- Beyond Bug-Finding: Sound Program Analysis for Linux
Zachary Anderson, Eric Brewer, Jeremy Condit, Robert Ennals, David Gay, Matthew Harren, George Necula, and Feng Zhou
HotOS, 2007
Download: (paper)- Multi-Language Synchronization
Rob Ennals and David Gay
European Symposium on Programming (ESOP'07), 2007
Download pre-camera-ready: (paper)
- SafeDrive: Safe and Recoverable Extensions Using Language-Based Techniques
Feng Zhou, Jeremy Condit, Zachary Anderson, Illya Bagrak, Rob Ennals, Matthew Harren, George Necula, and Eric Brewer
Operating Systems Design and Implementation (OSDI'06), 2006
Download: (paper)
- Now you C it. Now you don't
Robert Ennals
Workshop on Declarative Programming Languages for Multicore Architectures (DPMC'06), 2006
Download: (paper)
- Software Transactional Memory should Not be Lock Free
Robert Ennals
Intel Research Cambridge Technical Report: IRC-TR-06-052, 2006
Download: (paper)
This paper was submitted to SCOOL 2005, but deemed to be too contraversial and so was made the subject of a panel instead. This is the paper that is often cited as notlockfree.pdf, however that URL no longer works, since the cambridge lab on which it was hosted has been closed.
- Efficient Software Transactional Memory
Robert Ennals
Intel Research Cambridge Technical Report: IRC-TR-05-051, 2005
Download: (paper)
This paper described how software transactional memory could be made efficient if one was prepared to sacrifice non-blocking properties.
- Are Locks Dead? The role of blocking in concurrency control - Panel Discussion
Robert Ennals, in debate with Maged Michael, Victor Luchangco, and Satnam Singh
Synchronization and Concurrency in Object Oriented Languages (SCOOL 2005)
Download: (slides)
Since my submission to SCOOL was very contraversial, it was accepted as an hour-long panel discussion, rather than a regular paper.- Task Partitioning for Multi-Core Network Processors
Robert Ennals, Richard Sharp, and Alan Mycroft.
International Conference on Compiler Construction (CC) 2005.
Lecture Notes in Computer Science Volume 3443, Springer-Verlag.
Download: (paper) (ppt slides) (pdf slides)
- Linear Types for Packet Processing
Robert Ennals, Richard Sharp, and Alan Mycroft.
European Symposium on Programming (ESOP) 2004.
Lecture Notes in Computer Science Volume 2986, Springer-Verlag.
Download: (paper)
- Linear Types for Packet Processing (extended version)
Robert Ennals, Richard Sharp, and Alan Mycroft.
Cambridge University Computer Laboratory Technical Report TR-578, 2004.
Download: (paper)
Publications while at the University of Cambridge
- Adaptive Evaluation of Non-Strict Programs
Robert Ennals
PhD Thesis, University of Cambridge, 2000-2004.
Supervised by Simon Peyton Jones.
Download: (thesis)- Optimistic Evaluation: An Adaptive Evaluation Strategy for Non-Strict Programs
Robert Ennals and Simon Peyton Jones.
ACM SIGPLAN International Conference on Functional Programming (ICFP) 2003.
Download: (paper) (slides)- HsDebug: Debugging Lazy Programs by Not Being Lazy
Robert Ennals and Simon Peyton Jones.
ACM SIGPLAN Haskell Workshop (Haskell) 2003.
Download: (paper) (slides)- Optimistic Evaluation
Robert Ennals and Simon Peyton Jones.
International Workshop on Implementing Functional Languages (IFL) 2002.- Feris: A Functional Environment for Retargetable Interactive Systems
Robert Ennals.
International Workshop on Implementing Functional Languages (IFL) 2000.
This paper was presented, but not submitted to the LNCS proceedings, as we wanted to present the work elsewhere.
Download: (paper)- Feris: A Functional Environment for Retargetable Interactive Systems
Robert Ennals (supervised by Simon Peyton Jones).
Third year undergraduate project. University of Cambridge. 2000.
Amongst other things, this dissertation describes my monadic implementation of transactions.
Download: (dissertation)Magazine Articles
- Getting on with your Garbage Collector
Robert Ennals
.EXE Magazine, pages 39-44, July 1998. Centaur Publications.- Creative Allocation
Robert Ennals
.EXE Magazine, pages 29-36, June 1998. Centaur Publications.- Inheritance Considered Harmful (cover article)
Robert Ennals
.EXE Magazine, pages 22-30, May 1998. Centaur Publications.- Interpreter as Compiler
Robert Ennals
.EXE Magazine, pages 36-42, December 1997. Centaur Publications.- A Lovely Bunch of Identifiers
Robert Ennals
.EXE Magazine, pages 29-34, November 1997. Centaur Publications.- Self Modifying Code is Good For You (cover article)
Robert Ennals
.EXE Magazine, pages 16-22, July 1997. Centaur Publications.Other Stuff
- Robert Ennals, Simon Peyton Jones, and Alan Mycroft
A Cost Model for Non-Strict Evaluation
Cambridge University Semantics Lunch, November 10th, 2003
Download: (slides)
Some links take you outside the Intel Research network of laboratories web site. Other names and brands may be claimed as the property of others.
Legal Information and Privacy Policy © 2002 Intel Corporation