Computing devices with multiple processing cores are now the norm. Most smartphones, tablets, game consoles, and of course personal computers and servers, can process software tasks in true parallel fashion. This trend will keep on going, and the number of cores per device will grow to dozens and hundreds, which will enable us to run more complex applications, and more of them at the same time. However, balancing the load imposed by the multiple applications over dozens or hundreds of cores is not trivial. For example, a system with 20 application tasks and 2 cores can have 380 distinct allocations of tasks to cores, but simply by increasing the number of cores to 4, the number of possible allocations becomes 116,280. Going further, the number of possible allocations of a system with 25 tasks and 25 cores is larger than the number of stars in the observable universe!
The sheer number of alternatives for balancing the load of a manycore system is a problem because the difference in performance and energy dissipation between the best and worst allocations can be in the order of tens to hundreds of times. Choosing a poor load balancing solution can make a smartphone battery last for hours instead of days. Scaling up, the choice of a poor load balancing solution for a Cloud computing cluster with hundreds of servers can have a major financial and environmental impact. The only way to cope with such complexity is to create computing systems that are capable to balance the load over multiple cores during runtime.
(click on graphic for higher resolution)
DreamCloud’s mission is to develop novel load balancing mechanisms that can be applied during runtime in a wide range of manycore systems, allowing for a fine-tuning of the trade-off between performance guarantees and system efficiency according to the application needs. Such mechanisms will be organised in distinct types of Cloud-like system software infrastructure that will manage the workload on different kinds of systems. Embedded Clouds will be used in systems with time-critical behaviour (such as the flight control in an aircraft), allowing for restricted load balancing and privileging strict performance guarantees. Micro Clouds will rely on novel extensions to operating systems and virtual machines, allowing for the dynamic migration of threads or full virtual machines from one core to another. Finally, High Performance Clouds will balance highly dynamic workloads, aiming for full utilisation of the underlying platform but at the same time providing performance guarantees to selected applications. A number of techniques will be explored as the underlying allocation heuristics, including bio-inspired and market-inspired techniques and control-theoretic closed loop mechanisms that rely on the monitoring capabilities of the different kinds of systems.
The project includes case studies in three different domains – automotive, digital video streaming and scientific computing – to validate the three types of cloud infrastructure developed in the project. The aim is to deliver a well-tested library of reference implementations that can be applied to domains with similar workloads and requirements (e.g. aerospace, gaming). The project will ensure wide industrial applicability through the participation of both multinational partners like Bosch, as well as an SME size partners like Rheon Media, and also includes industry participation and standardisation efforts of The Open Group with over 400 members. The advances in DreamCloud target a performance boost of up to 10 times, and up to a 20% reduction in energy usage over current systems, which means applications for automotive safety can provide more advanced features to assist drivers and the costs of everyday consumer devices like smartphones and home entertainment systems can be reduced.
The following presentation provides an introduction to the project and initial results.