1. PhD Studentship in Computer Science - Expressing Numerical Algorithms in Performance Portable Frameworks
(*Unavailable* - Student Recruited - 011/08/2020)
Computational fluid dynamics (CFD) has been one of the most important classes of applications targeted by high-performance computing (HPC). Use of CFD in HPC is motivated by the need for solving challenging multi-physics problems. Industries such as aerospace, nuclear power and oil and gas regularly employ these codes at scale requiring flexibility to adapt the computations to a specific problem.
With diminishing returns from Moore’s Law in recent years, accelerators, in particular GPUs, have become an important technology to boost application performance. Accelerators can now be found in many top-tier supercomputers, including Summit (ORNL) and Sierra (LLNL) as well as Europe’s Piz Daint (ETH Zurich). The use of accelerators raises concerns in terms of programming complexity and performance portability. This is even more noticeable in CFD applications that already have large established production code bases optimized for CPUs. To address these challenges new algorithms, programming paradigms and frameworks are being actively developed in the effort to create more flexible software ecosystem of the future.
Warwick University in collaboration with the University of Oxford, PPCU Hungary and Imperial College London have made important contributions in performance portability with domain-specific languages (DSLs). DSLs are designed to provide a high-level abstraction with a set of directives with well-defined semantics that the engineer or scientist can use to quickly define their model. They serve as a building block and hide boiler plate and implementation details for specific architectures.
IBM Research group at Daresbury Laboratory is working with several UK industries that leverage HPC, helping them to take full advantage of constantly evolving hardware and software stacks. Based on the current limitations in computer modelling, IBM-R is interested to build a prototype implementation of a flow solver that would serve as a testbed for novel algorithms and flexible data structures. Warwick and IBM-R have worked together in the past and both are committed to taking the DSL approach to the next level. The student will be joining a motivated group of academics and practitioners in the field and through interaction with both, will undertake an exploration in both numerical methods and acquire substantial experience in advanced compiler technologies.
This PhD research project will target the development of these algorithms and the creation of the user-friendly abstractions to demonstrate them in a DSL so as to enable wider adoption. The project involves a minimum of three months placement at IBM where the student will work with IBM-R team accessing latest software and hardware capability available at Daresbury.
Candidates must possess, or expect to obtain, a high 2:1 or 1st class degree and/or a good master’s in Computer Science, Computer Systems Engineering, Mathematics or a related discipline from a recognised University.
Due to funding restrictions, the position is only available for UK/EU candidates.
Previous experience in computational fluid dynamics and/or parallel programming using at least two of MPI, OpenMP, CUDA or OpenCL will be highly desirable.
The successful candidate is expected to spend the summer months working at IBM research Daresbury.
This studentship's funding consists of full payment of tuition fees at the Home/EU rate for 3 years, an annual stipend at the UKRI rates (currently £15,009 for 2019/2020) for 3.5 years and an IBM top-up allowance.
Applicants are strongly encouraged to contact Dr Gihan Mudalige (email@example.com) with their CV.
2. PhD Studentship in Computer Science (High Performance Computing) - Unstructured-mesh CFD Applications
(*Unavailable* - Student Recruited - 02/07/2019)
The High Performance and Scientific Computing Research group at the Department of Computer Science has a 3.5 year, fully funded PhD studentship available for the academic year starting Oct 2018 (or immediately after).
Due to the end of frequency scaling around the middle of the last decade, as a result of the unsustainable increase in energy consumption, processor architectures have moved towards massively parallel designs. Consequently, modern architectures are leading to the development of multi-core, many-core and heterogeneous processors. The expectation is that performance improvements of applications could be maintained at historical rates by exploiting these increasing levels of parallelism. However, the means with which we are to take advantage of this massive parallelism - our current programming models and environments, are rapidly approaching their limits, risking continued scientific delivery expected through the full utility of future systems. As such the high-performance computing (HPC) community is struggling to gain performance portability where an application can be efficiently executed on a wide range of HPC architectures without significant manual modifications.
One solution is to utilize a high-level abstractions (HLA) based on Domain Specific Languages (DSLs). The idea is to separate concerns in which the application developer specifies what is to be computed, without detailing how it is to be implemented. To this end, a DSL will provide a language or API with which an algorithm or application could be written using domain specific constructs. As the API is embedded in a host language such as Fortran or C/C++ the domain scientists simply see the development process as writing a standard sequential application by calling classical library functions. However, the DSL will then be able to automatically generate various parallelizations (OpenMP, MPI, CUDA, etc.) from this higher-level “declaration” of the problem, using compiler techniques such as source-to-source translation and code generation. This PhD studentship will entail working with such a DSL, OP2 (op-dsl.github.io) for the solution of unstructured mesh applications.
This project will involve working with a number of academic and industrial partners of the group including Rolls-Royce plc.
Candidates must possess, or expect to obtain, a high 2:1 or 1st class degree and/or a good master’s in Computer Science, Computer Systems Engineering, Mathematics or a related discipline from a recognised University. Previous experience in parallel programming using at least two of MPI, OpenMP, CUDA or OpenCL will be highly desirable.
Applicants are strongly encouraged to contact Dr Gihan Mudalige (firstname.lastname@example.org) with their CV and a covering letter.
(*Unavailable* - 02/07/2019)
The High Performance and Scientific Computing (HPSC) Research group at the University of Warwick’s Department of Computer Science has a 3.5 year, fully funded (Home/EU fees + stipend) PhD studentship available for the academic year starting Oct 2018 (or immediately after).
Recent and ongoing research work at the University of Warwick has investigated the utility of Domain Specific Languages (DSLs), for the development of future proof, optimized numerical simulation applications. The OP2 and OPS DSLs (https://op-dsl.github.io/) developed as part of this work specifically targets the domains of unstructured and structured mesh computations. These DSLs appear as classical software libraries with a domain specific API embedded in C/C++ and Fortran but uses source-to-source translation to generate different parallelizations to produce highly optimized platform specific code, utilizing the best low-level features of a target architecture.
Both OP2 and OPS requires the algorithms implemented to be order independent where the order of execution of mesh elements cannot affect the end result, within machine precision. This restriction has allowed the eDSLs to take full control of the computation and communication, including mesh partitioning and scheduling for gaining maximum performance. However, another important class of applications requires order of execution to be preserved during execution. Implemented as a sweep or wavefront of computations progressing through the mesh, these applications limit the available amount of paralleization that can be exploited. The objective of this PhD is to research and develop a DSL, based on techniques/lessons learnt from OP2/OPS for this class of applications.
The initial objectives will be to (1) develop the high-level abstraction including an API to declare a wavefront application, (2) utilize source-to-source translation / compilation techniques to automatically generate different parallel implementations of the application (MPI, OpenMP, CUDA, OpenCL, SIMD etc.) and (3) apply the DSL to develop industry representative numerical simulation programs and investigate its performance on modern multi-core and many-core hardware. A core part of the research will involve working with a number of HPSC’s industrial partners., in applying the new DSL for their production CFD applications and optimizing performance.
Depending on the interests of the successful candidate, further goals could be (1) generating code targeting asynchronous task-based parallelization models and (2) exploring source-to-source translation using Clang/LLVM for DSL frameworks. The project will have access to the latest large-scale multi-core and many core systems together with opportunities to develop links with a wide range of industrial partners of the research group.
Candidates must possess, or expect to obtain, a high 2:1 or 1st class degree and/or a good masters in Computer Science, Computer Systems Engineering, Mathematics or a related discipline. Previous experience in parallel programming using at least two of MPI, OpenMP, CUDA or OpenCL will be highly desirable.
Due to funding restrictions, the position is only available for UK/EU candidates. To apply for this studentship, applicants are requested to contact Dr. Gihan Mudalige (email@example.com) with their CV and a cover letter.