Neutrons are exceptionally powerful probes of materials properties; firstly, they have wavelengths similar to atomic spacings, which means that they can diffract, and hence provide information on structure. Neutrons also have energies compatible with dynamic processes like lattice vibrations, which they are able to map in both space and time, and they possess a magnetic moment, which makes them sensitive to magnetism. Although all of these useful properties make neutrons ideal probe particles, they are both difficult and expensive to produce, and it is therefore critical that neutron instruments are designed to best use the limited number available. A powerful computer simulation tool to achieve this is Monte-Carlo ray-tracing (MCRT), where the physical components (the neutron source, optics, etc.) that make up an instrument are represented as a sequence of virtual elements, each of which modifies the properties of the neutron beam. By repeatedly tracing the paths of a large number of neutrons through the virtual instrument and changing the element parameters in response, the performance of an instrument can be optimised.
Although MCRT has revolutionized how neutron instruments are designed, the ever-increasing complexity of instrumentation means that large computer clusters are usually required to carry out such calculations. This is largely due to the architecture of current simulation packages, which do not take full advantage of the opportunities for massive parallelization offered by modern computer hardware. In particular, high-performance graphics cards are ideally set up to perform MCRT, as the calculations are very similar to those involved in generating 3D graphics. In order to test the potential of graphics cards to accelerate MCRT, a new software package called RAMP has recently been developed at the ISIS Neutron and Muon Source. Initial testing shows that RAMP can increase the speed of calculations by over an order of magnitude, meaning that demanding instrument optimisations can now feasibly be done on a high-end desktop computer. However, RAMP currently only supports a few instrument components, and has not yet been verified against other software packages. The main aims of this project are therefore to (i) add several commonly used components to the RAMP component library and (ii) verify the performance of these against other simulation packages. Should these aims be achieved, additional objectives are to use RAMP in real-time calculations of instrumental resolution, and in the optimisation of a real instrument.
Full scientific support will be provided throughout the placement. Some knowledge of programming languages such as python, C/C++, and OpenCL is desirable.
The successful candidate will have an opportunity to work on a cutting-edge software project at one of the world's leading neutron sources, the ISIS Neutron and Muon Source. They will learn about the practical aspects of programming for graphics cards, and will gain an appreciation of both neutron instrumentation and science.
Nilsen (firstname.lastname@example.org), Duc Le (email@example.com), and Rob Bewley (firstname.lastname@example.org)