Applying the Lessons of the Virtual Battlefield to Financial Modelling - Investigating Innovative use of Distributed Simulation. The development of Distributed Simulations is recognised as an increasingly important part of training, scientific modelling and acquisitions in the defense community. While the benefits of simulation are well understood the actual development costs and complexity remain prohibitive, requiring expert programming skills and training. These limitations are greatly impedi ....Applying the Lessons of the Virtual Battlefield to Financial Modelling - Investigating Innovative use of Distributed Simulation. The development of Distributed Simulations is recognised as an increasingly important part of training, scientific modelling and acquisitions in the defense community. While the benefits of simulation are well understood the actual development costs and complexity remain prohibitive, requiring expert programming skills and training. These limitations are greatly impeding the wider adoption of simulation in the broader business community.
To address these issues this proposal investigates the means of applying simulation technologies to a domain in which user-configurable desktop tools, such as spreadsheets and word processors, are more the norm - for example financial modelling.
We aim to extend the development of tools and techniques that support the desktop use of simulation and to assess the relative merits of these approaches. Our eventual goal is to provide approachable simulation services, without adversely compromising their inherent power, to a far wider range of application domains.
Read moreRead less
Effective software vulnerability detection for web services. This project aims to design and implement new and better methods to find vulnerabilities in software services delivered over the web or through the cloud, as well as methods for proving the absence of certain types of vulnerability. So-called injection attacks are pervasive and generally considered the most important security threat on today's Internet. The programming languages used for software services tend to use strings as a unive ....Effective software vulnerability detection for web services. This project aims to design and implement new and better methods to find vulnerabilities in software services delivered over the web or through the cloud, as well as methods for proving the absence of certain types of vulnerability. So-called injection attacks are pervasive and generally considered the most important security threat on today's Internet. The programming languages used for software services tend to use strings as a universal data structure, which unfortunately makes it hard to separate trusted code from untrusted user-provided data. This project intends to develop novel program analysis tools and string constraint solvers, and employ these tools to support sophisticated automated reasoning about string manipulating software.Read moreRead less
Processing large data sets on commodity data-parallel hardware. The project aims to reduce the costs of software development by improving the accessibility of massively data-parallel processors, termed graphics processing units (GPUs). The project seeks to develop a high-level programming system with data streaming support targeting GPUs and multi-GPU architectures. This would facilitate the difficult task of developing parallel applications for high-performance computing architectures. The comb ....Processing large data sets on commodity data-parallel hardware. The project aims to reduce the costs of software development by improving the accessibility of massively data-parallel processors, termed graphics processing units (GPUs). The project seeks to develop a high-level programming system with data streaming support targeting GPUs and multi-GPU architectures. This would facilitate the difficult task of developing parallel applications for high-performance computing architectures. The combination of parallelism and data streaming is designed to enable efficient processing of data too big to be held in device memory, which is a common problem in scientific computing, data analysis and machine learning. The project plans to integrate data streaming into an existing system, currently targeting single GPU architectures and which is successfully used in both industry and research.Read moreRead less
Micro Virtual Machines: Abstraction, contained. This project will address a systemic source of inefficiency in widely used software which leads to many programs running as much as ten times slower and using considerably more energy than necessary, shortening battery life on mobile phones and increasing costs for large server farms. This inefficiency is endemic because it is due to the underlying languages rather than the particular software. This project will address this problem by developing a ....Micro Virtual Machines: Abstraction, contained. This project will address a systemic source of inefficiency in widely used software which leads to many programs running as much as ten times slower and using considerably more energy than necessary, shortening battery life on mobile phones and increasing costs for large server farms. This inefficiency is endemic because it is due to the underlying languages rather than the particular software. This project will address this problem by developing a high efficiency substrate, called a micro virtual machine, on which languages may be built.Read moreRead less
Improving the integrity of complex software systems. Software systems are among the most complex artifacts created today. The problems of reliability and maintenance of complex software systems are well-known. Improving reliability and lowering production cost continues to be an important challenge. The aim of this project is to create software development tools that allow programmers to express more of their intentions about program behaviour, in a way which can be automatically checked, in ord ....Improving the integrity of complex software systems. Software systems are among the most complex artifacts created today. The problems of reliability and maintenance of complex software systems are well-known. Improving reliability and lowering production cost continues to be an important challenge. The aim of this project is to create software development tools that allow programmers to express more of their intentions about program behaviour, in a way which can be automatically checked, in order to find discrepancies between intended and actual behaviour. This will facilitate the construction of software that is more secure, reliable, maintainable and reusable, that is, improve the integrity of complex software systems.
Read moreRead less
Automating data placement and movement for explicitly managed memory hierarchies. Efficient management of explicitly managed memory hierarchies is essential, making a difference often by one order of magnitude in performance. Compiler-directed techniques promise to take the burden of memory management from the programmer and enable significant performance potential for a broader community, resulting in higher productivity.
Towards High-performance and Fault-tolerant Distributed Java Implementations. Java Virtual Machines form an important part of the web and business
server market. Distributed Java Virtual Machines have the potential to
make a significant contribution to industries that utilize this
technology. An attractive platform for this purpose is the
cluster, a highly cost-effective and scalable parallel computer
model. However, realizing on such a platform a high performance virtual
machine implem ....Towards High-performance and Fault-tolerant Distributed Java Implementations. Java Virtual Machines form an important part of the web and business
server market. Distributed Java Virtual Machines have the potential to
make a significant contribution to industries that utilize this
technology. An attractive platform for this purpose is the
cluster, a highly cost-effective and scalable parallel computer
model. However, realizing on such a platform a high performance virtual
machine implementation tolerant to hardware and software faults, and
having efficient memory utilization, presents many challenging research
issues. This project will address these issues by extending a highly
efficient and extensible Java implementation to be aware of its cluster
environment.
Read moreRead less
Automatic software verification: harnessing constraint technologies. As we come to rely on software to manage more and more aspects of our lives, the importance of software reliability increases; yet as programs become increasingly complex, reliability becomes ever more elusive. This project will develop automated tools and techniques to ensure that programs do what they were intended to do.
Analysing Computer Arithmetic to Improve Software Reliability. Most computer programs deal with integers. Automated tools designed to verify the correct behaviour of software usually assume the software deals with idealised mathematical integers, since this simplifies reasoning significantly. In reality, most programs work with integer number representations that approximate the ideal. This compromises the soundness of many verification tools. This project will design sound reasoning tools that ....Analysing Computer Arithmetic to Improve Software Reliability. Most computer programs deal with integers. Automated tools designed to verify the correct behaviour of software usually assume the software deals with idealised mathematical integers, since this simplifies reasoning significantly. In reality, most programs work with integer number representations that approximate the ideal. This compromises the soundness of many verification tools. This project will design sound reasoning tools that are aware of the true nature of computer integer arithmetic.Read moreRead less
An extensible framework for analysis of Java language-based security conformance. Java is a programming language and platform running on 3 billion devices. While Java provides a sandbox-based security architecture within the Java Class Library to protect systems from untrusted code downloaded from Internet, it cannot defend against implementation bugs that occur in the Java Class Library. The goal of this project is to provide a formal model of the Java security architecture, which can be used b ....An extensible framework for analysis of Java language-based security conformance. Java is a programming language and platform running on 3 billion devices. While Java provides a sandbox-based security architecture within the Java Class Library to protect systems from untrusted code downloaded from Internet, it cannot defend against implementation bugs that occur in the Java Class Library. The goal of this project is to provide a formal model of the Java security architecture, which can be used by program analysers to identify faulty or insufficient security checks in the Java Class Library that may lead to the sandbox being bypassed.Read moreRead less