Distributed and parallel systems
Parallel computing makes use of concurrency to reduce the runtime, increase the throughput, or improve the fault tolerance of a computational process.
Languages for expressing concurrency, the development of parallel algorithms and performance optimisation of parallel applications on a variety of modern computing platforms are of interest in this priority area.
Distributed computing may also exploit concurrency, although the performance and energy constraints generally differ from those of a tightly coupled parallel computer in one location. Distributed computing also encompasses software architectures for managing, monitoring, and executing distributed workflows, and portals for managing such workflows.
This priority area is interested in compute-intensive and data-intensive multidisciplinary applications spanning traditional computational science and the emerging area of big data science.