School of Computing

h
Publications GC bibliography GC page GC books Programming Languages and Systems Group

Richard Jones FRSA

Professor of Computer Systems / Faculty Director of Research

Photo of RE Jones, if available
  • Tel:     +44 (0)1227 827943
  • Fax:     +44 (0)1227 762811
  • Email:
  • Room SW107
    School of Computing
    University of Kent,
    CT2 7NF
Honorary Fellow, University of Glasgow
Distinguished Scientist, ACM
Member, AITO

I am Professor of Computer Systems in the School of Computing at the University of Kent. I was made a Distinguished Scientist of the ACM in 2006, and an Honorary Fellow of the University of Glasgow in July 2005, the only computer scientist to have received this accolade. I received IBM Faculty Awards in 2003, 2004 and 2005. I was elected to AITO, Association Internationale pour les Technologies Objets, in 2014. I am the Sciences Faculty Director of Research and Enterprise, and a member of the Programming Languages and Systems Research Group. I was the Programme Chair for the European Conference on Object Oriented Programming (ECOOP) 2014 in Uppsala, Sweden.

2009 Dart 18 World Champions, Emmanuel
Dodé and Fred Moreau Outside work, I'm a keen sailor. I race a Dart 18 catamaran at Whitstable. Check out this fantastic video of the AC45s racing in Plymouth - crazy stuff. I want one!



Teaching

I teach on a number of programming languages and systems modules, mostly postgraduate. Currently I contribute to courses on Java programming, Systems architecture, and Concurrency and parallelism.

Research Interests


GC logo

My chief area of interest is dynamic memory management - this grew out of work on lazy functional programming languages and particularly their efficient implementation.

I am particularly keen to hear from potential research students with interests in memory management.

My new book The Garbage Collection Handbook: the art of automatic memory management, Richard Jones, Antony Hosking and Eliot Moss, Chapman and Hall, 2011, is now in print.
This considerably extends my earlier Garbage Collection book, in particular with complete and up-to-date coverage of parallel, concurrent, and real-time garbage collection algorithms, and explanations of some of the tricky aspects of garbage collection, including the interface to the run-time system.

Improving Experimental Evaluation

Progress in computer systems research is driven by experimental evaluation. Our community can only make advances when new systems can be shown to improve over earlier ones. Unfortunately, as our paper ISMM'13 shows, computer science lags far behind other disciplines. Fortunately, it also shows that we can perform rigorous experiments within a reasonable budget of experimentation time.

Rigorous Benchmarking in Reasonable Time. Tomas Kalibera and Richard Jones. In ISMM'13, International Symposium on Memory Management. ACM 2013. (Note: this version corrects the ISMM version)
Quantifying Performance Changes with Effect Size Confidence Intervals. Tomas Kalibera and Richard Jones. Technical report, University of Kent.

We encourage researchers to help us improve the standard of experimental evaluation.

Garbage Collection for Multicore Systems

MirrorGC logo The EPSRC-funded MirrorGC project (September 2010 - February 2014) investigates fully concurrent garbage collection for multicore processors. Tomas Kalibera, who has a wealth of experience in automatic memory management for real-time and embedded systems, virtual machines for these systems in general, and verification of applications for these systems, Carl Ritson, who brings experience of concurrency, and in particular scheduling, Tomoharu Ugawa (Kochi University of Technology), Laurence Hellyer and Matthew Mole contributed hugely to this project.

Exploring Garbage Collection with Haswell Hardware Transactional Memory. Carl G. Ritson, Tomoharu Ugawa and Richard Jones. In International Symposium on Memory Management (ISMM). ACM 2014. [slides]
Reference Object Processing in On-The-Fly Garbage Collection. Tomoharu Ugawa, Richard Jones and Carl G. Ritson. In International Symposium on Memory Management (ISMM). ACM 2014. [slides]
Rigorous Benchmarking in Reasonable Time. Tomas Kalibera and Richard Jones. In International Symposium on Memory Management (ISMM). ACM 2013.
A Black-box Approach to Understanding Concurrency in DaCapo. Tomas Kalibera, Matthew Mole, Richard Jones and Jan Vitek. In Object Oriented Programmig, Systems, Languages and Applications (OOPSLA). ACM 2012.
ACM DL Author-ize service Handles revisited: optimising performance and memory costs in a real-time collector. Tomas Kalibera, Richard Jones. In International Symposium on Memory Management (ISMM). ACM 2011.
ACM DL Author-ize service The locality of concurrent write barriers Laurence Hellyer, Richard Jones, Antony L. Hosking. In International Symposium on Memory Management (ISMM). ACM 2010

Novel Garbage Collection Algorithms

Beltway diagramThe Beltway framework of collectors, developed with colleagues at the Australian National University and the Universities of Massachusetts and Texas, not only generalises existing copying collectors but also makes possible the design of new collectors that outperform state of the art generational copying collectors.

LACE diagram The Lifetime Aware GC (LACE) project builds on Beltway to provide a novel GC framework that can flexibly exploit object lifetime analysis yet tolerates imprecision.

Thread-local GC diagramWith Andy King, I developed a new static analysis and a novel GC framework that allows truely independent collection of thread-local heaps. In contrast to previous work, our solution safely classifies objects even in the presence of dynamic class loading, requires neither write-barriers that may do unbounded work, nor synchronisation, nor locks during thread-local collections; our analysis is sufficiently fast to permit its integration into a high-performance, production-quality virtual machine.

Visualising the Heap

GCspy >screenshot Deep understanding of program behaviour is essential to the design of the next generation of garbage collectors and explicit allocators. Until now no satisfactory tools have been available to assist the implementer in gaining an understanding of heap behaviour. GCspy is an architectural framework for the collection, transmission, storage and replay of memory management behaviour. Its architecture allows easy incorporation into any memory management system: it is not limited to garbage-collected languages. It requires only small changes to the system in which it is incorporated but provides a simple to use yet powerful data-gathering API, that scales to allow very large heaps to be visualised effectively and efficiently. GCspy allows already-running, local or remote, systems to be visualised and those systems to run at full speed outside the points at which data is gathered. Its visualisation tool presents this information in a number of novel ways. GCspy is the product of an Memory Management Network collaboration between the universities of Glasgow (Tony Printezis) and Kent (Richard Jones). Screen shots can be found here.

 

Distributed Reference Counting

birrell's algorithm diagramLuc Moreau, Peter Dickman and I have been investigated how to formalise distributed reference counting, starting with the Java RMI algorithm. We used our formalisation to derive an invariant-based proof of correctness of the algorithm that avoids notoriously difficult temporal reasoning. A novel graphical representation of the algorithm allows intuitive explanations, and helped uncover a bug in the original. It also extends to describe fault tolerance in a clear way..

Distributed Garbage Collection

Distributed cyclic reference counting diagramMy PhD student, Dr. Helena Rodrigues, and I used a reference listing scheme augmented by partial tracing in a garbage collector for distributed systems that can reclaim distributed, cyclic garbage data structures. The collector is designed to be flexible thereby allowing efficiency, expediency and fault-tolerance to be traded against completeness. The algorithm places no overhead on local collectors and suspends local mutators only briefly. Partial tracing of the distributed graph involves only objects thought to be part of a garbage cycle: no collaboration with other processes is required.

A taxonomy for Distributed Garbage Collection. I have also been thinking about a taxonomy for distributed garbage collection. Sylvain Louboutin correctly observed that such distributed collectors need to free themselves from the legacy of centralised collectors. A taxonomy that avoids this legacy can illuminate new areas for distributed garbage collection research. My (rather old) Microsoft Research Lecture (7/8/00) presents an outline of such a taxonomy (PowerPoint show).

 

the Garbage Collection Page

GC book cover

My Garbage Collection pages include

The UK Memory Management Network

MM-NET logo I am the coordinator of the UK Memory Management Network (MM-NET), an EPSRC-funded network of researchers, interested in memory management for programming languages. The project's mission is to establish collaborations between UK industrialists and academics to further research and development of advanced memory management systems.

Students & post-docs

Here's what became of some of my former students and post-docs:

  • Carl Ritson is working with Scott Owens on memory models for relax consistency shared memory concurrency.
  • Tomas Kalibera is working with Oracle and Purdue University on the R statistics language in Prague.
  • Chris Ryder works in one of ARM's compiler groups in Cambridge.
  • Sebastien Marion is a founder and COO of Comufy, providing novel ways for businesses to communicate with their customers.
  • Andy King won first place in the graduate division of the 2003 ACM Student Research Competition for his work on Removing GC Synchronisation. After joining Microsoft in Redmond, USA, Andy now works for VMWare in Palo Alto. [thesis]
  • Eric Bodden, an undergraduate project student, won the undergraduate division for 2004 for his work on a A Lightweight LTL Runtime Verification Tool for Java (conducted at the Aachen University of Technology). Following a PhD at McGill, he now heads the Secure Software Engineering Group at the European Centre for Security and Privacy by Design (EC SPRIDE.
  • Helena Rodrigues is an Assistant Professor at Departamento de Sistemas de Informaçao at Universidade do Minho. [thesis]
  • Stephen Thomas joined the University of Nottingham as a Lecturer before moving to Insignia Solutions, where he led the GC work for Insignia's Jeode JVM. He now works for Intel in Cambridge.

Older work


Lazy Functional Languages

lambda on a chip logo My interest in garbage collection came from earlier work on the efficient implementation of lazy functional languages. An interesting example is the Three Instruction Machine, an abstract machine for lazy functional languages, which makes heavy demands upon the the memory management system. In particular the garbage collector must ensure that environment sharing does not lead to space leaks. Stephen Thomas and I developed an efficient and precise garbage collector tailored to the requirements of each closure (code-environment pair). The collector uses continuations to avoid all interpretive overheads and scavenges depth-first without using additional space by threading the stack through already visited environment slots.

Electronic publishing

I led the Kent team in the JISC-funded Infobike/JournalsOnline project (now ingentaJournals). The project consortium brought together publishers, librarians, computer scientists and industry to provide full-text access to journals.

Zedfont logoFonts and stuff I have also taught courses in Electronic Publishing and my fonts for the Z specification language are freely available for the Macintosh and Windows and can be adapted to be used with Unix. Both PostScript Type 1 and TrueType fonts are included.


Software


  • GCspy logo the GCspy heap visualiser.
  • University of Kent dates dates in formats suitable for most smart phones, Google calendar, etc. This includes a little Perl script to generate repeating, labelled and numbered events, which is probably generally useful.
  • WYC logo WYC racing calendar in a format suitable for import into iCal, Google Calendar or Outlook.
  • MetaTF: a language for specifying traces + tools for generating trace readers/writers.
  • ZedfontZedfont, a Postscript and TrueType font for the Z specification language.
  • sd, a little bash script for comparing files under the control of various source code control systems (git, svn, cvs, sccs, rcs), allowing viewing as output from diff or gnudiff, or side by side with gvim, vdiff or opendiff.
  • stripmail, a little Perl script for stripping headers off mail messages before printing them. It also handles MIME attachments (HTML with lynx, Word with antiword, etc). Useful for mail readers like exmh.

 


I gratefully acknowledge the generous support for my research from:

EPSRC IBM Microsoft Research Sun Microsystems RAEng


Follow profrejones on Twitter Locations of visitors to this page

School of Computing, University of Kent, Canterbury, Kent, CT2 7NF

Enquiries: +44 (0)1227 824180 or contact us.

Last Updated: 24/10/2014