Micro Compilers: An Extensible Compiler Architecture for Increased Flexibility and Safety. Programming languages specialised to a particular application domain can cut software development costs and reduce programming errors. Unfortunately, most application domains cannot sustain the costly development and maintenance of the specialised compilers required to implement specialised languages. We address this problem by introducing a novel customisable compiler architecture that can be adapted to ....Micro Compilers: An Extensible Compiler Architecture for Increased Flexibility and Safety. Programming languages specialised to a particular application domain can cut software development costs and reduce programming errors. Unfortunately, most application domains cannot sustain the costly development and maintenance of the specialised compilers required to implement specialised languages. We address this problem by introducing a novel customisable compiler architecture that can be adapted to specialised languages and other special-purpose compiler requirements. Customisable compilers are especially important to a country like Australia that has only limited resources for special purpose developments. Moreover, we will train students at undergraduate and postgraduate level in the area of programming languages and compilers.Read moreRead less
Improving the Performance, Scalability and Reliability of the Linux Operating System. This project aims to improve the scalability of the Linux operating system to large systems without loss of performance on small, embedded, systems. It will improve Linux robustness and security by de-privileging particularly error-prone code, such as device drivers, without undue impact on performance. It will improve configurability and ease tuning by making critical components, such as processor, disk and me ....Improving the Performance, Scalability and Reliability of the Linux Operating System. This project aims to improve the scalability of the Linux operating system to large systems without loss of performance on small, embedded, systems. It will improve Linux robustness and security by de-privileging particularly error-prone code, such as device drivers, without undue impact on performance. It will improve configurability and ease tuning by making critical components, such as processor, disk and memory schedulers, pluggable and their policies controllable at user level. It will investigate the feasibility and benefits of user-level file systems and processor and memory scheduling and will demonstrate that these can improve system reliability without undermining performance.Read moreRead less
Portable High-Performance Computing Based on Flattening and Fusion. We aim at simplifying the development and improving the portability of computing intensive applications, such as those from computational science and engineering, which are of growing scientific and economic relevance (e.g., drug synthesis, virtual wind tunnel, and geologic surveys). Our focus is on achieving portable high-performance for a particularly expressive high-level notation supporting irregular algorithms (like sparse ....Portable High-Performance Computing Based on Flattening and Fusion. We aim at simplifying the development and improving the portability of computing intensive applications, such as those from computational science and engineering, which are of growing scientific and economic relevance (e.g., drug synthesis, virtual wind tunnel, and geologic surveys). Our focus is on achieving portable high-performance for a particularly expressive high-level notation supporting irregular algorithms (like sparse matrices and hierarchical N-body codes). We will develop a set of program transformations and integrate them into a compiler implementing an aggressive fusion strategy optimising for the memory hierarchy. We do not propose a new programming language, but work within an existing one.Read moreRead less
A framework for modelling feature variability and dependencies in software product lines. In most Australian software development organisations software products are developed individually rather than product line based. This project will promote the awareness of product line based software development and provide a frontier technology, the effective feature modelling approaches, to help Australian software industry transform from the single product based development to the product line based de ....A framework for modelling feature variability and dependencies in software product lines. In most Australian software development organisations software products are developed individually rather than product line based. This project will promote the awareness of product line based software development and provide a frontier technology, the effective feature modelling approaches, to help Australian software industry transform from the single product based development to the product line based development to achieve significant improvement on the productivity and the quality of the software development. This improvement will dramatically reduce the cost of software products and alleviate the pressure of skill shortage that currently threatens Australian economy.Read moreRead less
Operating systems meeting the challenges of modern computer architectures. This project will develop operating system techniques that allow extracting the best performance out of modern computer architectures. It will concentrate on the latest architecture, Itanium, whose innovative features make it a particular challenge for operating systems. The techniques will be implemented in the open source Linux operating system and will result in significantly reduced operating system overheads and enh ....Operating systems meeting the challenges of modern computer architectures. This project will develop operating system techniques that allow extracting the best performance out of modern computer architectures. It will concentrate on the latest architecture, Itanium, whose innovative features make it a particular challenge for operating systems. The techniques will be implemented in the open source Linux operating system and will result in significantly reduced operating system overheads and enhanced application performance.Read moreRead less
Dataparallel Programming for Multicore Processors. The proposed project will contribute to the development of frontier technologies to help build Australian industries. The project is designed to unlock significant performance improvements with current and future multicore (processor) computer architectures. This potential performance improvement can be achieved with parallel programming models. This is crucial for ICT applications in performance hungry areas, such as biotechnology, finance, mul ....Dataparallel Programming for Multicore Processors. The proposed project will contribute to the development of frontier technologies to help build Australian industries. The project is designed to unlock significant performance improvements with current and future multicore (processor) computer architectures. This potential performance improvement can be achieved with parallel programming models. This is crucial for ICT applications in performance hungry areas, such as biotechnology, finance, multi-media, and 'info-tainment'. The project will also provide research training and increase local expertise in parallel programming for multicore processors, an area that is quickly growing in importance.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