Decentralized allocation of safety-critical applications on parallel computing architecture

Thumbnail Image
Sutter, Louis
Feron, Eric
Associated Organizations
Supplementary to
This work presents a decentralized task allocation algorithm for an abstract parallel computing architecture made of a set of Computational Units connected together, each of them being prone to fail. Such an architecture can represent for example a multi-core processor with each Computational Unit standing for one core. The aim of the algorithm is to find the best mapping between Computational Units and the different applications we want to execute on the architecture, while taking into account faulty Computational Resources and the priority of the applications. The proposed approach consists in formulating the allocation problem as an Integer Linear Program (ILP), that is solved thanks to a state-of-the-art ILP solver. The second main aspect of this work is the decentralization the allocation process, in the sense that no central element decides alone of the allocation for the rest of the network. Redundant copies of the allocation algorithm are executed on the architecture itself, meaning that the copies must reallocate themselves. Then, the proposed allocation process is implemented on an experimental setup reproducing the multi-core architecture that inspired this work. Each core is represented by a Raspberry Pi single board computer. The model is used to demonstrate the capabilities of the proposed allocation process to maintain operation of a physical system in a decentralized way, while individual components fail.
Date Issued
Resource Type
Resource Subtype
Rights Statement
Rights URI