Skip to main content

PhD students examined

  • Wenbin Wu - Price Discovery via Secondary Markets in Stable Coins An Agent-Based Approach (External Examiner, KCL, 2024)
  • Ross Phillips - The predictive power of social media within cryptocurrency markets (Internal Examiner, UCL, 2019)
  • Qasim Nasar-Ullah - High Performance Parallel Financial Derivatives Computation (Internal Examiner, UCL, 2014)
  • Ayub Hanif - Computational Intelligence Sequential Monte Carlos for recursive Bayesian Estimation (Internal Examiner, UCL, 2013)
  • Yasin Rosowsky - Spurious regions in financial space: pattern recognition for foreign exchange forecasting (Internal Examiner, UCL, 2013)
  • Gary Doctors - Towards patient-specific modelling of cerebral blood flow using lattice-Boltzmann methods (Internal Examiner, UCL, 2011)
  • Behzad Behzadan - MINES: Mutual Information Neuro-Evolutionary System (Internal examiner, UCL, 2010)
  • Andrew Cheadle - Soft Real-time Garbage Collection for Dynamic Dispatch Languages (Internal examiner, Imperial College London, 2010)
  • Sebastien Marion - Using Class-Level Static Properties and Data Mining to Predict Object Lifetimes (External examiner, University of Kent, 2009)
  • Trevor A. Graham - The expansion of mutant clones in tumorigenesis (Internal examiner, UCL, 2009)
  • Kun (Max) Jiang - MILCS: A Mutual Information based Learning Classifier System (Internal examiner, UCL, 2009)
  • Adrian Ramirez-Cabrera - An Extension of the Strong Typing Genetic Programming Model (External examiner, MPhil, University of Manchester, 2000)
  • Benoit Lanaspre - Static Analysis for Distributed Prograph (External examiner, University of Southampton, 1997)
  • Jin Yang - Co-ordination Based Structured Parallel Programming (Internal examiner, Imperial College London, 1997)
  • Patrick J. Wright - Optimised Redundant Cell Collection for Graph Reduction (Internal examiner, UCL, 1993)
  • David Lillie - Polymorphic Subtype Inference in Combinator Languages (Internal examiner, Imperial College London, 1992)
  • Guido K. Jouret - Exploiting Data-Parallelism in Functional Languages (Internal examiner, Imperial College London, 1991)

PhD students supervised

PhD students supervised (first supervisor)

  • Leo Carlos-Sandberg - 2017-2023 - "Investigation of Causality Pattern Structure for the Exploration of Dynamic
    Time-Varying Behaviour"

  • Jose Gonzalez (part time) - 2017-withdrew

  • Yang Gu - 2011-2013 - withdrew

  • Samet Gogus (Barclays Treasury, part-time) - 2007-2009 - Credit risk - withdrew

  • Ghada Hassan (Egyptian Culture Bureau) - "Multiobjective Genetic Programming for Financial Portfolio Management in Dynamic Enviroments" PhD awarded 2010 - now a lecturer at Cairo University

  • Chih-Chun Chen (EPSRC DTA) - "Complex Event Types for Agent-Based Simulation" PhD awarded 2009 - now a postdoctoral researcher at Centre d'analyse et de matheatique sociales

  • David Coffin (EPSRC) - 2004-2006 - Genetic Algorithms search space decomposition - subsequently changed research direction and supervisor in 2006

  • Wei Yan (industry) - "Evolving Robust Genetic Programming Solutions in Dynamic Environments - with a case study in hedge fund stock selection in an emerging market" PhD awarded

  • Katie Bentley (industry / DTA) - "Adaptive Behaviour through Morphological Plasticity in Natural and Artificial Systems" PhD awarded 2006 - now Assistant Professor, Computational Biology Laboratory, Beth Israel Deaconess Medical Center, Harvard Medical School

  • Lee Braine (EPSRC CASE) - "Design and Implementation of an Object-Oriented Functional Language" PhD awarded 2000 - now Managing Director, Chief Technology Office, Barclays

  • Kanta Vekaria (EPSRC 97701326) - "Selective Crossover as an Adaptive Strategy for Genetic Algorithms" PhD awarded 2000 (link to thesis) - now principal engineer at Nokia

  • Tina Yu - "An Analysis of the Impact of Functional Programming Techniques on Genetic Programming" PhD awarded 1999 (link to thesis) - now Associate Professor at the Memorial University of Newfoundland, Canada

  • Simon Courtenage (EPSRC 90311629) - "The Analysis of Resource Use in the Lambda-Calculus by Type Inference" PhD awarded 1995 (link to thesis) - now Principal Lecturer at the University of Westminster

  • Stuart Clayman (SERC) - "Developing and Measuring Parallel Rule-Based Systems in a Functional Programming Environment" PhD awarded 1993 (link to thesis) - now Senior Research Fellow at UCL

  • David Parrott - "Synthesising Parallel Functional Programs to Improve Dynamic Scheduling" PhD awarded 1993 - now Chief Architecture Officer at Thomson Reuters

Other academic supervision

  • 2006-2010 Nuno Rocha Nene - PhD student - 2nd supervisor
  • 2005-2008 Manish Patel - PhD student - 2nd supervisor
  • 2004-2005 Yoav Zibin - RA - principal investigator
  • 2004-2005 Xiaowen Liu - RA - principal investigator
  • 1995-1997 Steven Gould - RA - principal investigator
  • 1995-1997 Peter Lidwell - RA - principal investigator -

Dynamic Memory Management

Dynamic Memory Management (DM) is essential to the implementation of functional languages and many other modern programming languages. Prior to Clack's research, DMM could either be fast or small (i.e. have low fragmentation) but not both. DMM is a very mature research area, and to identify a new algorithm is a considerable challenge. By using a tree bitmap representation and altering the search semantics, a best-fit free-list memory allocator was created that provides both a ten times improvement in worst-case performance and excellent best-case performance. The allocator was patented:

  • A Data Structure, Memory Allocator and Memory Management System (Clack, UK Patent Application number 9924061.6, filing date 11th October 1999. PCT application number WO0231660, filing date 10th October 2001. UK and EU Patent Offices.

Lexical Profiling

Manual optimisation of run-time time and memory usage is problematic for lazy Functional Programing (FP) languages. FP programmers do not specify detailed memory allocations, and function evaluation may be interlaced dynamically; the mapping between the source code and what happens at run-time is complex. Is it possible to provide meaningful and intuitive profiling information in such a context? and if so how? This target behaviour was achieved by attributing time and space costs to portions of the source code as though strict evaluation had occurred, whilst reporting the quantitative measures of the actual lazy evaluation. The following paper provided the design and the first implementation of this technique for an interpreted language, together with suggestions of how to implement it for a compiled language. The technique was adopted and further developed by the profiler for the popular GHC functional language compiler.

  • Lexical Profiling: Theory and Practice (Clack, Clayman and Parrott, Journal of Functional Programming, 5(2):225-277, Cambridge University Press, ISSN 0956-7968, 1995

GRIP Parallel Processing Architecture

How can system architecture be best designed as an efficient target for a PFP compiler? GRIP (Graph Reduction In Parallel) explored the design space using stock processors and custom hardware such as intelligent memory units, and new compilation and run-time system technology were successfully demonstrated.

Elements of GRIP were eventually transferred to industry and incorporated into the ICL "Goldrush" parallel database server.

The GRIP architecture and its programing paradigm for PFP are described in the following papers:

  • GRIP: the GRIP Multiprocessor (Clack, in Parallel Computing Principles and Practice, ed. T. J. Fountain, Chapter 7, pp 266-275, ISBN 0-521-45131-0, CUP 1990).
  • High Performance Parallel Graph Reduction (Peyton Jones, Clack and Salkild), LNCS 365:193-206, ISSN 0302-9743, Springer 1989). This paper is also reprinted as:
    • High Performance Parallel Graph Reduction (Peyton Jones, Clack and Salkild, in Programming Languages for Parallel Processing, eds. D. Skillicorn and D.Talia, Chapter 5, pp 234-247, ISBN 0-8186-6502-5, IEEE Computer Society Press 1994). Described as a collection of reprints of "the most important parallel-programming languages designed in the last decade".
  • Functional Programming on the GRIP multiprocessor (Peyton Jones, Clack, Salkild and Hardie, in Proceedings IEE International Specialist Seminar on Design and Application of Parallel Digital Processors, pp 116-127, available electronically from the IEEE at this link, IEEE. 1988)
  • GRIP - a parallel graph reduction machine (Peyton Jones, Clack, and Salkild), ICL Technical Journal 5(3):595-599, ISSN 0142-1557, OUP 1987).
  • GRIP - a high performance architecture for parallel graph reduction (Peyton Jones, Clack, Salkild and Hardie, LNCS 274:98-112, ISSN 0302-9743, Springer 1987). This paper is also reprinted (plus an additional two pages) as:
    • GRIP - a high performance architecture for parallel graph reduction (Peyton Jones, Clack, Salkild and Hardie, in Multiprocessor Computer Architecture, eds. T. J. Fountain and M. J. Shute, Chapter 5, pp 101-120, ISBN 0-444-88215-4, Elsevier 1990)