7 research outputs found

    Developing Real-Time Emergency Management Applications: Methodology for a Novel Programming Model Approach

    Get PDF
    The last years have been characterized by the arising of highly distributed computing platforms composed of a heterogeneity of computing and communication resources including centralized high-performance computing architectures (e.g. clusters or large shared-memory machines), as well as multi-/many-core components also integrated into mobile nodes and network facilities. The emerging of computational paradigms such as Grid and Cloud Computing, provides potential solutions to integrate such platforms with data systems, natural phenomena simulations, knowledge discovery and decision support systems responding to a dynamic demand of remote computing and communication resources and services. In this context time-critical applications, notably emergency management systems, are composed of complex sets of application components specialized for executing specific computations, which are able to cooperate in such a way as to perform a global goal in a distributed manner. Since the last years the scientific community has been involved in facing with the programming issues of distributed systems, aimed at the definition of applications featuring an increasing complexity in the number of distributed components, in the spatial distribution and cooperation between interested parties and in their degree of heterogeneity. Over the last decade the research trend in distributed computing has been focused on a crucial objective. The wide-ranging composition of distributed platforms in terms of different classes of computing nodes and network technologies, the strong diffusion of applications that require real-time elaborations and online compute-intensive processing as in the case of emergency management systems, lead to a pronounced tendency of systems towards properties like self-managing, self-organization, self-controlling and strictly speaking adaptivity. Adaptivity implies the development, deployment, execution and management of applications that, in general, are dynamic in nature. Dynamicity concerns the number and the specific identification of cooperating components, the deployment and composition of the most suitable versions of software components on processing and networking resources and services, i.e., both the quantity and the quality of the application components to achieve the needed Quality of Service (QoS). In time-critical applications the QoS specification can dynamically vary during the execution, according to the user intentions and the Developing Real-Time Emergency Management Applications: Methodology for a Novel Programming Model Approach Gabriele Mencagli and Marco Vanneschi Department of Computer Science, University of Pisa, L. Bruno Pontecorvo, Pisa Italy 2 2 Will-be-set-by-IN-TECH information produced by sensors and services, as well as according to the monitored state and performance of networks and nodes. The general reference point for this kind of systems is the Grid paradigm which, by definition, aims to enable the access, selection and aggregation of a variety of distributed and heterogeneous resources and services. However, though notable advancements have been achieved in recent years, current Grid technology is not yet able to supply the needed software tools with the features of high adaptivity, ubiquity, proactivity, self-organization, scalability and performance, interoperability, as well as fault tolerance and security, of the emerging applications. For this reason in this chapter we will study a methodology for designing high-performance computations able to exploit the heterogeneity and dynamicity of distributed environments by expressing adaptivity and QoS-awareness directly at the application level. An effective approach needs to address issues like QoS predictability of different application configurations as well as the predictability of reconfiguration costs. Moreover adaptation strategies need to be developed assuring properties like the stability degree of a reconfiguration decision and the execution optimality (i.e. select reconfigurations accounting proper trade-offs among different QoS objectives). In this chapter we will present the basic points of a novel approach that lays the foundations for future programming model environments for time-critical applications such as emergency management systems. The organization of this chapter is the following. In Section 2 we will compare the existing research works for developing adaptive systems in critical environments, highlighting their drawbacks and inefficiencies. In Section 3, in order to clarify the application scenarios that we are considering, we will present an emergency management system in which the run-time selection of proper application configuration parameters is of great importance for meeting the desired QoS constraints. In Section 4we will describe the basic points of our approach in terms of how compute-intensive operations can be programmed, how they can be dynamically modified and how adaptation strategies can be expressed. In Section 5 our approach will be contextualize to the definition of an adaptive parallel module, which is a building block for composing complex and distributed adaptive computations. Finally in Section 6 we will describe a set of experimental results that show the viability of our approach and in Section 7 we will give the concluding remarks of this chapter

    Complex Application Architecture Dynamic Reconfiguration Based on Multi-criteria Decision Making

    Full text link

    How To Touch a Running System

    Get PDF
    The increasing importance of distributed and decentralized software architectures entails more and more attention for adaptive software. Obtaining adaptiveness, however, is a difficult task as the software design needs to foresee and cope with a variety of situations. Using reconfiguration of components facilitates this task, as the adaptivity is conducted on an architecture level instead of directly in the code. This results in a separation of concerns; the appropriate reconfiguration can be devised on a coarse level, while the implementation of the components can remain largely unaware of reconfiguration scenarios. We study reconfiguration in component frameworks based on formal theory. We first discuss programming with components, exemplified with the development of the cmc model checker. This highly efficient model checker is made of C++ components and serves as an example for component-based software development practice in general, and also provides insights into the principles of adaptivity. However, the component model focuses on high performance and is not geared towards using the structuring principle of components for controlled reconfiguration. We thus complement this highly optimized model by a message passing-based component model which takes reconfigurability to be its central principle. Supporting reconfiguration in a framework is about alleviating the programmer from caring about the peculiarities as much as possible. We utilize the formal description of the component model to provide an algorithm for reconfiguration that retains as much flexibility as possible, while avoiding most problems that arise due to concurrency. This algorithm is embedded in a general four-stage adaptivity model inspired by physical control loops. The reconfiguration is devised to work with stateful components, retaining their data and unprocessed messages. Reconfiguration plans, which are provided with a formal semantics, form the input of the reconfiguration algorithm. We show that the algorithm achieves perceived atomicity of the reconfiguration process for an important class of plans, i.e., the whole process of reconfiguration is perceived as one atomic step, while minimizing the use of blocking of components. We illustrate the applicability of our approach to reconfiguration by providing several examples like fault-tolerance and automated resource control

    Contribution to dynamic reconfiguration in component-based systems: consistency and non-functional properties specification

    Get PDF
    Le travail réalisé dans le cadre de cette thèse a deux objectifs principaux. Le premier est de contribuer `à la spécification de la reconfiguration dynamique des systèmes à base de composants. Le deuxième objectif est de s´sélectionner la configuration optimale parmi un ensemble de configurations qui fournissent des fonctionnalités identiques ou similaires. Le processus de sélection dépend des propriétés non-fonctionnelles du système. La propriété de reconfigurabilité est essentielle pour de nombreux systèmes à base de composants contemporains. En effet, cette propriété améliore la disponibilité, l'adaptabilité, l'évolutivité, la maintenabilité et la performance des systèmes tels que les systèmes avioniques, les commutateurs de télécommunications et les systèmes commerciaux. Pour ces systèmes, l'arrêt de longue durée n'est pas admissible pour des raisons s´sécuritaires ou économiques. L'adaptabilité et l'evolvabilité sont également des caractéristiques importantes pour ces systèmes qui ont besoin d'inclure des changements de l'environnement ou des nouvelles exigences des utilisateurs dans le logiciel. Toutes ces motivations plus montrent l'importance de permettre, dès la conception, la reconfiguration dynamique de systèmes. La reconfiguration est la capacité de modifier la structure ou le comportement d'un système à l'exécution et sans l'arrêter complétement. Le travail présenté dans cette thèse étudie les mécanismes et les techniques pour fournir la reconfigurabilité aux systèmes à base de composants. La fourniture de reconfigurabilité nécessite la prise en considération de la cohérence du système pendant et après la reconfiguration. Il y a deux sortes de cohérence : cohérence globale et cohérence locale. Dans cette thèse, nous proposons une approche pour préserver la cohérence globale d'un système à base de composants reconfigurable en utilisant un langage formel déclaratif, Alloy. Une autre approche est proposée pour préserver la cohérence locale en analysant la relation entre la dépendance indirecte et la reconfiguration dynamique. Enfin, la sélection de configuration consiste à choisir la configuration la plus optimale à partir d'un ensemble de choix dans le but de maximiser la satisfaction de l'utilisateur. Une approche proposée pour faire le meilleur choix en fonction des préférences de l'utilisateur exprimées sur des métriques non-fonctionnellesThe research of this thesis has two main goals. The first goal is to provide the reconfigurability feature to the component-based systems. The second goal is to select the optimal configuration from a set of configurations, which provide similar functionality. The selection process depends on the non-functional properties of the system. Reconfigurability is essential feature for many contemporary component-based systems. Reconfigurability enhances the continuous availability, the adaptability, the evolvability, the maintainability, and the performance. Avionics systems, telecommunications switches and some commercial systems require the high availability. For these systems, long shutting down is not allowable due to economical or safety reasons. The adaptability and the evolvability are also important features for those systems which need to accommodate the environmental changes or the new requirements of software users. The maintainability and the performance are important requirements for a large category of systems. All the previous motivations and more show the importance of having the reconfigurability. Reconfigurability is the ability to change the system structure or the system behavior at running time without stopping it. The work presented in this thesis investigates the required mechanisms and techniques in order to provide the reconfigurability feature to a component-based system. The provision of the reconfigurability feature requires preserving the system consistency during and after the reconfiguration. The consistency has two kinds: global consistency and local consistency. In this thesis, we propose an approach to preserve the global consistency of a reconfigurable component-based system using declarative formal language. Another approach is proposed to preserve the local consistency during the reconfiguration. The second approach investigates the relationship between the indirect dependency and the dynamic reconfiguration. Configuration selection is to select the most optimal configuration from a set of alternatives in order to maximize the end user satisfaction. The thesis proposes an approach to make the best selection depending on the user preference

    A Control-Theoretic Methodology for Adaptive Structured Parallel Computations

    Get PDF
    Adaptivity for distributed parallel applications is an essential feature whose impor- tance has been assessed in many research fields (e.g. scientific computations, large- scale real-time simulation systems and emergency management applications). Especially for high-performance computing, this feature is of special interest in order to properly and promptly respond to time-varying QoS requirements, to react to uncontrollable environ- mental effects influencing the underlying execution platform and to efficiently deal with highly irregular parallel problems. In this scenario the Structured Parallel Programming paradigm is a cornerstone for expressing adaptive parallel programs: the high-degree of composability of parallelization schemes, their QoS predictability formally expressed by performance models, are basic tools in order to introduce dynamic reconfiguration processes of adaptive applications. These reconfigurations are not only limited to imple- mentation aspects (e.g. parallelism degree modifications), but also parallel versions with different structures can be expressed for the same computation, featuring different levels of performance, memory utilization, energy consumption, and exploitation of the memory hierarchies. Over the last decade several programming models and research frameworks have been developed aimed at the definition of tools and strategies for expressing adaptive parallel applications. Notwithstanding this notable research effort, properties like the optimal- ity of the application execution and the stability of control decisions are not sufficiently studied in the existing work. For this reason this thesis exploits a pioneer research in the context of providing formal theoretical tools founded on Control Theory and Game Theory techniques. Based on these approaches, we introduce a formal model for control- ling distributed parallel applications represented by computational graphs of structured parallelism schemes (also called skeleton-based parallelism). Starting out from the performance predictability of structured parallelism schemes, in this thesis we provide a formalization of the concept of adaptive parallel module per- forming structured parallel computations. The module behavior is described in terms of a Hybrid System abstraction and reconfigurations are driven by a Predictive Control ap- proach. Experimental results show the effectiveness of this work, in terms of execution cost reduction as well as the stability degree of a system reconfiguration: i.e. how long a reconfiguration choice is useful for targeting the required QoS levels. This thesis also faces with the issue of controlling large-scale distributed applications composed of several interacting adaptive components. After a panoramic view of the existing control-theoretic approaches (e.g. based on decentralized, distributed or hierar- chical structures of controllers), we introduce a methodology for the distributed predictive control. For controlling computational graphs, the overall control problem consists in a set of coupled control sub-problems for each application module. The decomposition is- sue has a twofold nature: first of all we need to model the coupling relationships between control sub-problems, furthermore we need to introduce proper notions of negotiation and convergence in the control decisions collectively taken by the parallel modules of the application graph. This thesis provides a formalization through basic concepts of Non-cooperative Games and Cooperative Optimization. In the notable context of the dis- tributed control of performance and resource utilization, we exploit a formal description of the control problem providing results for equilibrium point existence and the compari- son of the control optimality with different adaptation strategies and interaction protocols. Discussions and a first validation of the proposed techniques are exploited through exper- iments performed in a simulation environment

    An open framework for dynamic reconfiguration

    No full text
    EThOS - Electronic Theses Online ServiceGBUnited Kingdo

    An Open Framework for Dynamic Reconfiguration

    No full text
    Dynamic reconfiguration techniques appear promising for building systems that have requirements for adaptability and/or high availability. Current systems that support dynamic reconfiguration tend to use a single, fixed, reconfiguration algorithm to manage the change process. Furthermore, existing change management systems lack support for measuring the impact of reconfiguration on a running system. In this paper, we introduce OpenRec, an open framework for managing dynamic reconfiguration which addresses these drawbacks. Using OpenRec, developers can observe the costs, in terms of time and disturbance, associated with making a particular run-time change. In addition, OpenRec employs an extensible set of reconfiguration algorithms where one algorithm can be substituted for another. Developers can thus make an informed decision as to which algorithm to use based on comparative analysis. Finally, OpenRec is itself dynamically reconfigurable.
    corecore