Tuning parallel applications on software-defined supercomputers. Supercomputers are used by many Australian industries and laboratories to make better products and perform critical predictions, and it is essential that codes operate efficiently. This project aims to assist programmers in identifying performance bottlenecks in their code quickly and easily. The project expects to supersede the current methods, which are often complex and time-consuming, by developing innovative software tools and ....Tuning parallel applications on software-defined supercomputers. Supercomputers are used by many Australian industries and laboratories to make better products and perform critical predictions, and it is essential that codes operate efficiently. This project aims to assist programmers in identifying performance bottlenecks in their code quickly and easily. The project expects to supersede the current methods, which are often complex and time-consuming, by developing innovative software tools and techniques. The expected outcomes include novel software, verified by industry partners in real world case studies, ranging from life sciences to hypersonic transport. This should provide significant benefits, including the capacity for Australian industries to access world-class supercomputing technology.Read moreRead less
Finding concurrency bugs in multithreaded software. This project aims to develop sound and practical techniques for detecting and eliminating concurrency bugs for object-oriented languages like Java, enabled by a new model for concurrent effects. The expected outcome is a novel technology that will significantly improve the safety, productivity and efficiency of large-scale concurrent programming.
Data Structures for Multi-Core. The project intends to improve data structures to reduce the bottleneck effect caused by multiple processor cores. The hardware used for a typical server platform has increasing numbers of processor cores. This growing number of cores creates a bottleneck effect when accessing the data that are structured in the shared memory of these servers. These contended data structures limit the server performance and new algorithms are necessary. The project proposes to rel ....Data Structures for Multi-Core. The project intends to improve data structures to reduce the bottleneck effect caused by multiple processor cores. The hardware used for a typical server platform has increasing numbers of processor cores. This growing number of cores creates a bottleneck effect when accessing the data that are structured in the shared memory of these servers. These contended data structures limit the server performance and new algorithms are necessary. The project proposes to relax traditional consistency criteria to provide high concurrency and to leverage optimistic executions that proceed concurrently but may roll back depending on the conflicts with other concurrent executions they encounter. The concurrent data structures would allow application performance to scale with higher numbers of hardware cores.Read moreRead less
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.
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.
Symbolic synthesis of knowledge-based program implementations. Systems with concurrent streams of activity are ubiquitous in computer hardware and software designs, but are conceptually complex, and fraught with faults and inefficiency. The project aims to address these difficulties by automating aspects of system design, to relieve the designer of the need to reason about complex patterns of information flow.
Design and verification of correct, efficient and secure concurrent systems. This project aims to provide methods for the design and verification of correct, secure and efficient concurrent software that are scalable and mechanised. Computers with multiple processors are now the norm and are used in a wide range of safety, security and mission critical software applications such as transport, health and infrastructure. These multi-core architectures have the potential to lead to important effici ....Design and verification of correct, efficient and secure concurrent systems. This project aims to provide methods for the design and verification of correct, secure and efficient concurrent software that are scalable and mechanised. Computers with multiple processors are now the norm and are used in a wide range of safety, security and mission critical software applications such as transport, health and infrastructure. These multi-core architectures have the potential to lead to important efficiency gains, but can introduce complex and error-prone behaviours that cannot be managed using traditional software development approaches. This project will produce better, scalable and mechanised methods for the design and verification of such software which is expected to reduce the prevalence of failures in efficient, modern software.Read moreRead less
Verified concurrent memory management on modern processors. This project aims to formally verify automatic memory managers in the presence of concurrency and the weakly ordered memory of modern processors. A new framework for verifying memory managers, reusable for a wide range of managed programming languages, target hardware, policies, and algorithms will be developed. Expected technical outcomes include improved techniques to ensure trustworthiness of the foundations on which critical softwar ....Verified concurrent memory management on modern processors. This project aims to formally verify automatic memory managers in the presence of concurrency and the weakly ordered memory of modern processors. A new framework for verifying memory managers, reusable for a wide range of managed programming languages, target hardware, policies, and algorithms will be developed. Expected technical outcomes include improved techniques to ensure trustworthiness of the foundations on which critical software infrastructures are built. This will significantly enhance the security of public and private cyber assets, and deliver applications that are more robust and trustworthy, across a range of critical infrastructure such as transportation, communication, energy and defence.Read moreRead less