Consistent Rollback Protocols for Autonomic ASSISTANT Applications Carlo Bertolli 1 , Gabriele Mencagli 2 , and Marco Vanneschi 2 1 Department of Computing, Imperial College London 180 Queens Gate, London, SW7 2AZ, UK c.bertolli@imperial.ac.uk 2 Department of Computer Science, University of Pisa Largo B. Pontecorvo 3, I-56127, Pisa, Italy {mencagli,vannesch}@di.unipi.it Abstract. Nowadays, a central issue for applications executed on het- erogeneous distributed platforms is represented by assuring that certain performance and reliability parameters are respected throughout the sys- tem execution. A typical solution is based on supporting application com- ponents with adaptation strategies, able to select at run-time the better component version to execute. It is worth noting that the efficacy of a re- configuration may depend on the time spent in applying it: in fact, albeit a reconfiguration may lead to a better steady-state behavior, its applica- tion could induce a transient violation of a QoS constraint. In this paper we will show how consistent reconfiguration protocols can be derived for stream-based ASSISTANT applications, and we will characterize their costs in terms of proper performance models. 1 Introduction Today distributed platforms include heterogeneous sets of parallel architectures, such as clusters (e.g. Roadrunner), large shared-memory platforms (e.g. SGI Altix) and smaller ones, as off-the-shelf multi-core components also integrated into mobile devices. Examples of applications that enjoy such heterogeneity are Emergency and Risk Management, Intelligent Transportation and Environmen- tal Sustainability. Common features are the presence of computationally de- manding components (e.g. emergency forecasting models), which are constrained by the necessity of providing results under a certain Quality of Service (QoS). To assure that the QoS is respected, applications must be autonomic, in the sense that their components must apply proper adaptation and fault-tolerance strategies. A reconfiguration can dynamically modify some implementation aspects of a component, such as its parallelism degree. In some cases, when components are provided in multiple alternative versions, a reconfiguration can also dynamically select the best version to be executed. Multiple versions can be provided in order to exploit in the best way as possible different architectures on which the com- putation may be currently deployed and executed. For this reason programming M. Alexander et al. (Eds.): Euro-Par 2011 Workshops, Part I, LNCS 7155, pp. 139–148, 2012. Springer-Verlag Berlin Heidelberg 2012