$heading = "ICSA mission"; include ("head"); >
The process of synthesising new structures must operate at all levels, ranging from languages and their implementation, through protocols, micro-architectures, and the optimisation techniques for mapping computations onto computing structures. It also is a continuing challenge to harness the theoretical tools arising from foundational research, but one which we believe is essential.
For example, in the design of parallel systems a key challenge is how to make parallel software engineering a mainstream activity. The motivation is to make parallel programming as accessible as sequential programming. This requires better ways of expressing parallel algorithms, and possibly even new languages. Arguably parallel programming "in the small" is not yet fully understood, let alone the design of large-scale parallel software.
Traditionally, systems research recognised a clear distinction between the hard and soft components of a system; today this boundary is becoming blurred, and simultaneous design of both the hard and soft components of a system, through co-design, is a hot topic. Several members of the institute are actively researching this area.
For example, there is a strong emphasis on instruction-level parallelism, in which compiler and architecture work together to exploit parallelism in ordinary sequential languages. The goal is to reduce execution time through parallelism, but without having to re-write applications using explicitly parallel languages. The fundamental challenges are: how to expose instruction level parallelism, the development of scalable architectural structures, and the development of cooperative compiler/architecture solutions.
New opportunities are arising through the concept of soft circuitry, where circuitry can be created dynamically and is therefore as programmable as traditional software. This enables each algorithm to be expressed in the most effective combination of circuitry and software, and opens up a wide range of research issues in co-design and hardware resource management. It also breaks down the artificial barrier between software and hardware introduced by fixed instruction sets, and opens up possibilities for radically different forms of parallelism.
Developments in circuit technologies over the next ten years will have a profound effect on the research in this institute, at all levels of abstraction. For example, the increasing relative difference between computation and communication speeds will force architects to think about clustering, asynchrony and compiler-directed partitioning for single chip systems. Research in these areas is already taking place in the institute
In the area of protocols we are investigating two particular characteristics; robustness and flexibility. Whilst the individual components in distributed computing systems are getting more reliable, new computing environments such as mobile computing and the Internet, in which people aspire to carry out distributed computing, are inherently less reliable. In view of this, robust communication protocols that can survive partial failure and erratic behaviour are more important than ever. Our research in this area aims to develop a new representation that should facilitate the automation of testing for such protocols. Research into active protocols is also underway within the institute. Here communication protocols can be defined, implemented and distributed dynamically, rather than being defined statically by extremely slow human processes.