HPC Software for Medical Imaging
Lead Research Organisation:
University College London
Department Name: Medical Physics and Biomedical Eng
Abstract
The performance of computers with a single core , i.e. a traditional CPU, is not expected to continue increasing at the same rate as in the past. To boost overall computer performance, manufacturers now provide multi-core processors. For the development of faster software, programmers are going to be forced to make use of multi-core technology. The power of the mass market means that there are now two relatively cheap hardware configurations each with about 100 cores. These are computer clusters where PCs are networked together, and, graphics cards. The performance of graphics cards has recently been outstripping that of CPUs. Graphics cards have the added advantages of being cheap and self-contained.In medical imaging, the alignment or registration of images is an important step in clinical image analysis. In diseases such as Alzheimer's or other forms of dementia, the brain shrinks over an extended period of time. Over shorter time scales these changes are not obvious when looking at two images side-by-side. Registration aligns images by accounting for differences in the patient position and scanner variations. It also provides a measure of local changes in tissue volume. These algorithms take hours to run, longer than the time a patient is in a scanner. If the data processing could be complete with a few minutes, more detailed follow-up scanning could be possible.Registration is also used to combine large numbers of datasets to determine normal and abnormal anatomy. This is often called atlas building. The creation of atlases needs large amounts of memory and this currently limits the number of datasets that can be included. Building an atlas is well suited to a computer cluster. Once created, if an atlas could be registered with a patient's image whilst they were still in the scanner, it could provide information on-the-spot about abnormal anatomy in the patient. Some of the newer Magnetic Resonance Imaging (MRI) techniques such as diffusion weighted imaging and functional MRI provide detailed information about nerve connections in the brain or show up thoughts . The processing of this data requires images to be in alignment, again, if this could be complete in minutes, diagnosis would be enhanced. This proposal aims to develop algorithms using high-level languages for use on graphics cards or computer clusters. Much of the previous work in this area has required specialised knowledge of the hardware and considerable programming skills. By using the newer high-level languages, we will be able to concentrate more on the applications and problems than the details of the hardware and software architecture. This lends itself to high-quality code because it can be read easily by others, checked on other systems and integrates with debugging and visualisation tools.We aim to demonstrate and evaluate registration algorithms in clinical applications that are currently not feasible due to the data processing being too slow or memory-intensive.
Organisations
Publications
Atkinson D
(2008)
Commodity Graphics Cards for Image Registration, Biomechanical Modelling and Cardiac Imaging.
in Bioengineering 08.
Taylor ZA
(2008)
Modelling anisotropic viscoelasticity for real-time soft tissue simulation.
in Medical image computing and computer-assisted intervention : MICCAI ... International Conference on Medical Image Computing and Computer-Assisted Intervention
Taylor ZA
(2009)
On modelling of anisotropic viscoelasticity for soft tissue simulation: numerical solution and GPU execution.
in Medical image analysis
Description | An important and developing area is the incorporation into image analysis algorithms of biomechanical models of how tissues deform. Common example applications include surgical guidance and planning, and, the warping of one image to align it with another (non-rigid registration). In such cases biomechanical models provide a powerful basis for analysing and accounting for the deformation of structures within images. To be clinically useful, however, any approach must yield solutions within a "reasonable" time: intra-operative applications require near real-time solutions; statistical atlas construction involving multiple registrations dictates rapid individual registrations (these atlases capture information from multiple subjects but require anatomic features to be aligned). Biomechanical models are generally computationally intensive, especially in the clinically relevant cases of nonlinear analyses. Consequently, their clinical employment has been limited. In response to this we have developed methods for accelerating biomechanical computations using graphics processing units (GPUs). Such devices derive very high floating point operation capacities from massively parallel Single Instruction Multiple Data chip architectures. The power of these devices is best harnessed when algorithms are data parallel. Our developments were based on efficient parallelisation of tissue models, rather than any simplification of models. The most physically consistent biomechanical models are those based on a soft tissue response that varies with time. Though there have existed mature frameworks for modelling such phenomena (the predominant one being viscoelasticity), they have largely been omitted because of their computational complexity. We developed an efficient numerical procedure that allows inclusion of viscoelastic models in Finite Element models. We used an "explicit" method that allows the system to be decomposed into parallel loops over the nodes and elements of a Finite Element mesh. GPU-based implementations of all algorithms were produced using NVidia's CUDA language. In this framework code is divided into a CPU-host component and a GPU-device component. The former comprises regular C/C++ code, while the latter comprises C code augmented by a number of additional types and functions, plus some CUDA-specific execution structures. Being an extension of the C language, CUDA simplifies integration of GPU computation with larger or existing systems. Results from the GPU-based solver were compared with those of a serial CPU-based implementation developed concurrently. No precision errors appear to be introduced in the GPU version. Comparison of execution times for meshes of various sizes shows a peak acceleration of 56.3 times for the GPU implementation. Models with up to 55,000 degrees of freedom are solvable in real-time, while even large problems of around 1.5M degrees of freedom are solvable in approx. 42sec, making them viable for intra-operative applications. The performance of the viscoelastic solution method was assessed by comparison with equivalent elastic models. The procedure was shown to result in only an approx. 5% increase in computation time. Combined with a Finite Element framework, the procedure allows use of robust viscoelastic constitutive models in time-critical applications. Originality: First efficient implementation of anisotropic, visco-elastic tissue models on GPUs. Technique allows realistic modelling of tissue deformations with time varying material properties including stress dissipation. Significance: Enables rapid simulation of tissue deformation with applications to interactive surgery simulation and interoperative image registration. Implemented in the SOFA Open Source Framework. With one other paper, forms the principal basis for the Open Source NiftySim software (sourceforge.net/projects/niftysim/) with over 500 downloads since launch. Rigour: Performance evaluated using simulations and data derived from liver images. Extensive measures of algorithm timings relevant to real-time applications. |
Exploitation Route | The material modelling techniques may be applicable in an industrial context. NiftySim code is available for download: http://cmic.cs.ucl.ac.uk/home/software/ |
Sectors | Healthcare |
URL | http://cmic.cs.ucl.ac.uk/home/software/ |
Description | The methodology for more realistic simulation of biological tissue has been published and related software is now available open source. |
First Year Of Impact | 2011 |
Sector | Healthcare |
Impact Types | Policy & public services |
Title | NIftySim |
Description | Nifty Sim is a high-performance nonlinear finite element solver, developed at University College London. A key feature is the option of GPU-based execution, which allows the solver to significantly out-perform equivalent commercial packages. |
Type Of Technology | Software |
Year Produced | 2009 |
Open Source License? | Yes |
Impact | Work in this grant contributed to the NiftySim package. This has 1700+ downloads from sourceforge.net |
URL | http://niftysim.sourceforge.net/ |