PhD project on Automatic code generation for computational scienceA candidate from the European Union/UK is sought for a 4-year PhD studentship opportunity funded at the standard EPSRC maintenance grant level (currently about GBP14,000 per annum) to start in September 2016. The position is open for UK applicants, and some EU candidates (unfortunately, candidates from outside the European Union/UK are not eligible for this funding scheme). Please contact Hans Fangohr <fangohr@soton.ac.uk> for informal queries, expressions of interest or applications. Research programmeMany computational science and engineering problems can be expressed as (time-dependent) partial differential equations, which generally have to be computed numerically. The emergence of new computational paradigms (such as shared memory parallel computation, distributed memory parallel computation, general purpose computing on Graphical Processing Units) often results in the development of new codes to solve the same science problem on the new hardware. In this project, we aim to develop a simulation software generation framework in which the partial differential equations (PDEs) can be specified symbolically, and (compilable) code will be autogenerated to solve the equations. By developing multiple code generating modules, we can translate the symbolic equations into fast code for multiple computational target platforms, such as shared memory machines using OpenMP, supercomputers such as the UK's high performance computing resource Archer using MPI and appropriate tools for GPU. A simplified schematic view of this tool chain is shown in the figure. ![]() Caption: The figure shows a simplified view of the anticipated flow : given (A) equations, geometry and boundary conditions, one can (B) derive a discretised form of the equations automatically, for which (C) code can be generated automatically that can compute the finite difference representation of the discretised problem (here shown as a matrix) before (D) established numerical libraries can compute a solution to the finite difference formulation of the original problem. We aim to delevop a system that can generate (compile) a finite difference simulation code automatically in step (C), and for which different computational backends can be used to make use of different hardware (such as CPU, GPU, OpenMP, ...) We will restrict ourselves to finite difference discretisation themes, and use Python as the top-level language in which the user (a scientist or engineer) can specify their PDE using symbolic tools, for example the symbolic Python package sympy. While we aim for a general purpose tool that can create simulation codes for many different PDEs, we will follow an agile approach with the initial aim of providing automatic code generation for the micromagnetic problem. Southampton has a long track record in in this field [1], and there are micromagnetic finite difference codes for CPUs [2, 3] and GPUs [4] available that will be used for validation and performance comparison. The resulting tool will be open and free, developed using test-driven approaches, and hosted on Github. We will closely work with users of micromagnetic simulation software and test drive the tool on systems of current interest, including Skyrmions and biomagnetic technology to support diagnosis and treatment in the health sector. We may apply the tool to other computational problems. For this project, we are looking for a computer scientist with interest in science and computational science, or a mathematician/physicist/engineer/... with interest in programing and software engineering to pursue this project, embedded in a larger team. We appreciate that this project requires multiple skill sets and no single applicant will have them all. Training will be provided to fill the gaps. [1] Nmag, http://nmag.soton.ac.uk [2] OOMMF, http://math.nist.gov/oommf/ [3] Fidimag, https://github.com/fangohr/fidimag [4] Mumax, http://mumax.github.io DetailsThis project is part of the 4-year EPSRC Centre for Doctoral Training in Next Generation Computational Modelling which comes with 1 year of (mostly) taught training (programming, software engineering, applied mathematics, ...) and an above average support package. Please see the project description NGCM-0054 and generic information about the doctoral training programme at http://ngcm.soton.ac.uk and http://ngcm.soton.ac.uk/programme/index.html. Application deadline: applications are invited as soon as possible. Funding: This project can be funded (fees and studentship) through the Centre for Doctoral Training in Next Generation Computational Modelling. The project will start in September 2016, but do apply now. Eligibility: Please see http://www.ngcm.soton.ac.uk/studentships.html Contact and Applications: Please contact Hans Fangohr <fangohr@soton.ac.uk> for informal queries, expressions of interest or applications. To apply formally, please follow instructions at http://ngcm.soton.ac.uk/apply.html. Last updated: 10 November 2015 Questions?If you wish to discuss any details of the project informally, please contact Hans Fangohr, Email: Fangohr@soton.ac.uk, Tel: +44 (0) 2380 598345, @ProfCompMod, or Sam Sinayoko <s.sinayoko@soton.ac.uk>. ![]() Figure 2: This image depicts the magnetisation vector field in a 200nm diameter nickel half-sphere in zero field, computed with the OOMMF code. The coloured cones show the magnetisation in the x-y plane cross section of the half-sphere and highlight that the magnetisation forms a vortex (i.e. shows circular 'flows'). The colour in these cones shows the x-y angle of magnetisation (where z is pointing up). The monochrom cones display the magnetisation in the x-z plane cross-section and demonstrate that cones in the centre of the vortex are pointing down. The streamlines serve to highlight the overall vortex core shape. There are many publications relying on simulation codes like OOMMF, with application to magnetic data storage, spintronics, sensing and energy harvesting that are all based on micromagnetic models. |
|