The Ghan1 is a passenger train that operates between Darwin to Adelaide in Australia. A person who departs from Melbourne needs to book the following: a flight ticket from Melbourne to Darwin, and another ticket from Adelaide to Melbourne, accommodation in Darwin and Adelaide; and naturally, the train ticket (Figure 1.1). When booking these services, one can either contact an agency or book each service directly. The process of allocating these services in a coordinated manner is called co-allocation or co-scheduling. Apart from co-allocating these services, one must take into account possible change of plans, i.e. rescheduling the bookings.
The challenge is that changing a single booking may affect all the other bookings due to their interdependency. Co-allocation is also necessary in many other activities of our daily lives. For example, when scheduling a meeting with multiple participants, it is necessary to make sure all participants can attend the meeting at a specified time, and that a room and additional resources, such as a projector, are available. In the digital world, several software systems also require co-allocation of multiple components to execute properly, and most importantly, co-allocation decisions may change over time to meet user requirements.
Distributed computing [117] is a field of Computer Science that investigates systems consisting of multiple components over a computer network. These components, which can be software or hardware, interact with one another via a communication protocol, i.e. all components communicate at the same time or in a sequence. The complexity of component interactions depends on the scale of the system. Large-scale systems, with hundreds or thousands of resources, tend to have more complex communication protocols in order to handle heterogeneous components and failures in hardware and software layers.
Download
Adaptive Co-Allocation of Distributed Resources for Parallel Applications
