I am a Teaching Fellow for the Department of Computer Science at the University of Warwick. Before this, I was a PhD at the Department of Computer Science at the University of Warwick, where I was in the High Performance Systems Lab under the supervision of Prof. Stephen Jarvis and Dr. Gihan Mudalige. I submitted my thesis at the end of September 2020. Before my PhD, I studied MEng Computing Systems at the University of Warwick, graduating in July 2016.
I am currently teaching the following modules:
- CS118 Programming for Computer Scientists
- CS140 Computer Security
- CS255 Artificial Intelligence
- CS310/44/50/51 Third Year Project
I have previously been a seminar or lab tutor for the following modules:
- CS118 Programming for Computer Scientists (Term 1 - 2019/20 and 2020/21)
- CS126 Design of Information Structures (Term 2 - 2016/17)
- CS139 Web Development Technologies (Term 2 - 2017/18)
- CS142 Visualisation (Term 2 - 2018/19 and 2019/20)
- CS241 Operating Systems and Computer Networks (Term 1 - 2017/18 and 2018/19)
- CS258 Database Systems (Term 1 - 2016/17 and 2017/18)
- CS261 Software Engineering (Term 2 - 2017/18)
- CS257 Advanced Computer Architecture (Term 2 - 2016/17)
- CS313 Mobile Robotics (Term 2 - 2016/17 and 2017/18)
- CS346 Advanced Databases (Term 1 - 2017/18)
My research is focused on Performance Portability within HPC systems. Performance Portability is the principle of designing a program such that it can be written with minimal alterations from a base version, whilst providing as-optimal-as-possible performance across multiple platforms. As well as this, my research also covers data structure abstraction for HPC applications, in order to allow for data structures to be altered with minimal changes to the application code. This can also be done for optimisation and specialisation of both problems and hardware.
The Warwick Postgraduate Colloquium in Computer Science (WPCCS) is an annual event for research students in the Department of Computer Science at the University of Warwick. The aims of the colloquium are to provide: (i) an experience of a conference setting for students, (ii) a place to practise presentation skills, (iii) a place to receive feedback and suggestions on their research, and (iv) an opportunity to learn about research being performed by other attendees. WPCCS has been held annually since 2003, but since 2016 many changes have been made to the event; in particular the introduction of networking aids (such as conference guides and lanyards), a new venue, the introduction of guest speakers and various efforts to encourage attendance. Meanwhile the number of submissions has increased, placing strain on the colloquium's schedule and budget. In this paper the organising committees from 2016, 2017, and 2018 reflect critically on the experience WPCCS delivers to the attendees. We present an examination of what worked well, what did not work, and what we would like to try in the future, with the aim that these experiences are useful to the organisers of similar events.
Modernizing production-grade, often legacy applications to take advantage of modern multi-core and many-core architectures can be a difficult and costly undertaking. This is especially true currently, as it is unclear which architectures will dominate future systems. The complexity of these codes can mean that parallelisation for a given architecture requires significant re-engineering. One way to assess the benefit of such an exercise would be to use mini-applications that are representative of the legacy programs.
In this paper, we investigate different implementations of TeaLeaf, a mini-application from the Mantevo suite that solves the linear heat conduction equation. TeaLeaf has been ported to use many parallel programming models, including OpenMP, CUDA and MPI among others. It has also been re-engineered to use the OPS embedded DSL and template libraries Kokkos and RAJA. We use these different implementations to assess the performance portability of each technique on modern multi-core systems.
While manually parallelising the application targeting and optimizing for each platform gives the best performance, this has the obvious disadvantage that it requires the creation of different versions for each and every platform of interest. Frameworks such as OPS, Kokkos and RAJA can produce executables of the program automatically that achieve comparable portability.
Based on a recently developed performance portability metric, our results show that OPS and RAJA achieve an application performance portability score of 71% and 77% respectively for this application.
Mr Richard Kirk
Research: R dot Kirk at warwick dot ac dot uk
Teaching: R dot Kirk dot 1 at warwick dot ac dot uk