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.
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
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
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
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
A Programming Model of Object Validity for Secure and Efficient Concurrency. To provide improved performance and security for software applications, Australia's ICT industry must adapt to the complex programming demands of modern multicore processors. The programming model developed in the project represents a breakthrough solution. A seamless integration of concurrency and object orientation leads to a simple yet powerful programming style that is compatible with today's premier approach to bui ....A Programming Model of Object Validity for Secure and Efficient Concurrency. To provide improved performance and security for software applications, Australia's ICT industry must adapt to the complex programming demands of modern multicore processors. The programming model developed in the project represents a breakthrough solution. A seamless integration of concurrency and object orientation leads to a simple yet powerful programming style that is compatible with today's premier approach to building large-scale software systems with significantly improved performance and security. The product will reduce development time for compute-intensive applications in many industry sectors, including health care (e.g. patient monitoring), finance, defence, environment, mining, manufacturing and computer games.Read moreRead less
Analysis and Optimisation of Incomplete Object-Oriented Programs. This project will push Australia to the forefront of OO technologies and will increase the profile of advanced programming language design and implementation research in Australia. The completed framework will
likely be commercially viable as Australia industries such as banks and
insurance companies and government organisations hosting large
OO software systems may benefit (in terms of performance and
code security) from the ....Analysis and Optimisation of Incomplete Object-Oriented Programs. This project will push Australia to the forefront of OO technologies and will increase the profile of advanced programming language design and implementation research in Australia. The completed framework will
likely be commercially viable as Australia industries such as banks and
insurance companies and government organisations hosting large
OO software systems may benefit (in terms of performance and
code security) from the technology developed as a result of this research. The completed framework will also provide an excellent platform for researchers in Australia and elsewhere to do research in OO technologies, helping in producing quality students for the Australian IT industry.Read moreRead less
Scratchpad-based Memory Allocation Techniques for Embedded Software. This research aims at developing automatic memory allocation algorithms to maximise the effective utilisation of scratchpad memories, which will lead to significantly improved performance and energy usage in embedded applications. The outcomes of this project will provide generic solutions to many Australia-based industries, including telecommunication, network management, sensor networks, automotive and instrumentation/measure ....Scratchpad-based Memory Allocation Techniques for Embedded Software. This research aims at developing automatic memory allocation algorithms to maximise the effective utilisation of scratchpad memories, which will lead to significantly improved performance and energy usage in embedded applications. The outcomes of this project will provide generic solutions to many Australia-based industries, including telecommunication, network management, sensor networks, automotive and instrumentation/measurement, where embedded systems are ubiquitously used. Therefore, this project will significantly contribute to the Priority Area (Frontier Technologies for Building and Transforming Australian Industries), hence fits into its Priority Goal: Frontier Technologies.Read moreRead less
Compiler-Directed Code Tiling for Higher Program Performance and Predictability on Multi-Level Memory Hierarchies. Programming languages invariably induce a perception of memory as being flat, whereas actual computers are being equipped increasingly with deep memory hierarchies to overcome the ever-widening performance gap between processors and memories. This mismatch can result in low locality of reference and poor performance. This project will develop a new array layout transformation, calle ....Compiler-Directed Code Tiling for Higher Program Performance and Predictability on Multi-Level Memory Hierarchies. Programming languages invariably induce a perception of memory as being flat, whereas actual computers are being equipped increasingly with deep memory hierarchies to overcome the ever-widening performance gap between processors and memories. This mismatch can result in low locality of reference and poor performance. This project will develop a new array layout transformation, called data tiling, used in tandem with loop tiling to achieve significantly improved performance gains (and predictability) for array-dominated applications on multi-level memory hierarchies. We will explore this joint restructuring to obtain higher performance and predictability for whole programs, kernel libraries, iterative stencil codes and embedded applications.
Read moreRead less
A safe and efficient multi-language component framework based on dynamic compilation. Components are a versatile mechanism for the construction of extendible systems and for improved code reusability. Emerging environments like Microsoft's .NET support the interaction of components written in different programming languages. To date, such systems do not adequately isolate components which therefore must trust each other. This is unacceptable for components loaded across the Internet. We will dev ....A safe and efficient multi-language component framework based on dynamic compilation. Components are a versatile mechanism for the construction of extendible systems and for improved code reusability. Emerging environments like Microsoft's .NET support the interaction of components written in different programming languages. To date, such systems do not adequately isolate components which therefore must trust each other. This is unacceptable for components loaded across the Internet. We will develop a framework for secure execution of component software, based on hardware-enforced protection domains. To minimize the resulting runtime overheads we will provide a component model with lightweight context switching. A novel typed intermediate language and dynamic compilation techniques will offer complementary optimisations.
Read moreRead less