Senior Technical Consultant - Numerical Algorithms Group
Overview of Experience
Craig has over 10 years of experience supporting large High Performance Computing codes as well as writing a range of numerical codes for a diverse range of computing platforms.
He has worked on projects for NAG clients in many science areas, in finance, and in other commercial sectors.
His research and work areas include:
- High performance software system support and development
- OpenMP and MPI
- Linear Algebra
- Matrix Functions
Specific Technical Experience
Craig is skilled in the design and development of serial and parallel algorithms and software, for clients; including contribution to a range of commercial and open source libraries and applications.
Projects for the parallelization of serial codes
Craig has supported the users of large HPC systems, including a number of national supercomputing services, by helping to improve the way their code works for a particular target platform. Craig works on many projects involving the adapting of serial code to make better use of multi core, many core and large HPC clusters. He also advises and coaches clients on appropriate approaches for writing parallel numerical code. His projects include a focus on shared memory programming and how parallelized code can be made more accessible to novice users, while still maintaining interoperability with the expert user’s own specialist parallel code.
Design and development of methods for computing nearest covariance and correlation matrices
Craig has developed and written a number of codes for solving correlation matrix problems. These are used by global financial organisations.
Craig has developed and presented training courses on code optimization, Parallel IO, OpenMP, MPI and modern Fortran. He has also been a visiting lecturer at the University of Southampton where he taught OpenMP on an MSc course.
Craig looks after NAG’s links with academic groups on various projects including Matrix Functions and new parallel algorithms. He regularly gives guest lectures and also acts as a PhD Supervisor. He has also attended the OpenMP Language Committee, for three years, where he helps to provide users’ perspectives for the design of new features in the language.
• Linear Algebra
• Matrix Functions
• Nearest Correlation Matrix Problems
• Parallel Algorithms
- PhD, Mathematics (Numerical Analysis), University of Manchester 'Designing algorithms and software to solve problems in numerical linear algebra'
- MSc, Numerical Analysis and Computing, University of Manchester
- BSc, Mathematical Science with Computer Science, City University
Honours & Awards
- BSc First Class Hons
Papers & Talks
LAPACK-style codes for pivoted Cholesky and QR updating
S Hammarling, N Higham, C Lucas (2007)
Applied Parallel Computing. State of the Art in Scientific Computing, 137-146
Computing nearest covariance and correlation matrices, MSc Thesis
C Lucas (2001)
University of Manchester