System phantoms, digital twins, shadow systems. They go by different names but they share the same principle: let a machine simulate cyber-physical systems instead of observing the real world. Mathematical models can describe the evolution of a system over time. We use them to simulate scenarios which are interesting to study but impractical, costly, or simply not desirable to reproduce with physical systems.
This is the moment when a system modeller or a simulation engineer intervenes by coding the behaviour of a system according to physics equations. Differently from the most common programming languages, equation-based models do not express causality between components, and they let the compiler or translator tool deduce dependency relations and manipulate expressions to expose a minimal and sufficient set of state variables that define the behaviour of the system. This translation process is also expected to automatically verify the model consistency, and organise the variables in a system of differential algebraic equations, which can later be numerically solved.
The computer science aspects of the in-silico stages have been limited to the correctness of the translation process and to the efficiency of the model resolution algorithms. The implementation of a model resolution algorithm is usually offloaded to external implementations supported by a wider community of computational scientists. Little to no attention has been reserved for the efficiency of the translation process, which is specifically designed for automatic equation analyses and transformations.
The goal of this project is to target the efficiency problem under two points of view: computer science, and software engineering. The computer science focus will be on the algorithmic design aspect, whose target is to remove the structural limitations which are intrinsic in the scalar approach to equation processing and simulation, thus replacing it with a functionally equivalent vectorised approach.
The software engineering aspect of the project will be focused on the hardware/software co-design approach, with the intention to seamlessly offload to dedicated accelerators the parallel sections of the model simulation task in order to achieve improved latency and energy consumption.
Prospective applicants are encouraged to contact the Supervisor before submitting their applications. Applications should make it clear the project you are applying for and the name of the supervisors.
A first degree (at least a 2.1) ideally in Computer Science or related discipline with a good fundamental knowledge of algorithms and data structures.
English language requirement
IELTS score must be at least 6.5 (with not less than 6.0 in each of the four components). Other, equivalent qualifications will be accepted. Full details of the University’s policy are available online.
- Experience of fundamental C++ programming
- Competent in concurrent and parallel systems, hardware/software co-design, and code optimisations
- Knowledge of Modelica modelling and simulation language
- Knowledge of fundamentals of computer architectures
- Good written and oral communication skills
- Strong motivation, with evidence of independent research skills relevant to the project
- Good time management
- Experience with one or more heterogeneity-aware code acceleration paradigms (OpenCL, CUDA, SYCL, etc.)
- Experience with large C++ code bases
- Experience with MLIR and/or LLVM framework
- Experience with FPGA code acceleration
- Track record of open source code contributions
For enquiries about the content of the project, please email Stefano Cherubin firstname.lastname@example.org
For information about how to apply, please visit our website https://www.napier.ac.uk/research-and-innovation/research-degrees/how-to-apply
To apply, please select the link for the PhD Computing FT application form