Understanding concurrent programs using rely-guarantee thinking. Multi-core processors are standard in computers and devices (e.g. smart phones) but much of the software available for these machines is either unreliable or does not exploit the available hardware parallelism. This project will devise techniques for designing concurrent software that exploits these platforms while delivering dependable operation.
Model-driven engineering of scientific software for graphical processing units. Novel visual models, model-driven engineering techniques and software engineering tools will be invented to synthesize and optimise graphical processing unit software for scientific applications. These will be validated using large data-centric applications from molecular simulation and astrophysics domains.
Software debuggers for next generation heterogeneous supercomputers. Supercomputing underpins a wide range of areas of importance to the Australian economy; mining, agriculture, engineering and medical research to name a few. It is of critical importance that software solutions in these areas behave correctly. This project will develop software tools and techniques to help locate errors in such applications.