38 research outputs found
Developing Real-Time Emergency Management Applications: Methodology for a Novel Programming Model Approach
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
Improving stability in Adaptive Distributed Parallel applications: a cooperative predictive approach
With this thesis we take a step further on improving reconfiguration decisions in adaptive distributed parallel computations. The concept of switching cost is introduced with the aim of reducing the amount of reconfigurations and of improving the reconfigurations stability in dynamic execution scenar- ios. Computation modules control is based on the Model-Based Predictive Control (MPC) approach. We study the effectiveness of this approach in parallel distributed computations, where each module cooperates to find global optimal reconfiguration trajectory. Experimental results are obtained by means of experiments performed in a simulation environment
A Control-Theoretic Methodology for Adaptive Structured Parallel Computations
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
Two Fundamental Concepts in Skeletal Parallel Programming
We define the concepts of nesting mode and interaction mode as they arise in the description of skeletal parallel programming systems. We sugegs
Caratteristiche della programmazione di applicazioni context-aware e una proposta di modello ad alte prestazioni
In questa tesi analizziamo il problema di descrivere applicazioni pervasive ad alte prestazioni. Dopo aver studiato i problemi dei modelli esistenti proponiamo un nuovo approccio nato dall'esperienza maturata con l'ambiente ad alte prestazioni ASSIST
Topologia ad albero per PARMOD ASSIST
L'obiettivo della tesi è quello di integrare all'interno del costrutto parallelo Parmod di ASSIST il supporto per computazioni logicamente strutturate ad albero.
Si discutono l'implementazione ed i risultati sperimentali
Supporto di strumenti di programmazione parallela strutturata per sistemi basati su CELL
Il lavoro nasce dall'esigenza di un framework per la programmazione parallela strutturata su sistemi multicore recenti. Il risultato è una libreria che consente di dichiarare un modulo parallelo equivalente al costrutto parmod di ASSIST sull'architettura Cell BE
Supporto di strumenti di programmazione parallela strutturata per sistemi basati su CELL
Il lavoro nasce dall'esigenza di un framework per la programmazione parallela strutturata su sistemi multicore recenti. Il risultato è una libreria che consente di dichiarare un modulo parallelo equivalente al costrutto parmod di ASSIST sull'architettura CELL BE
Supporti alla programmazione Grid-aware - esperienze di allocazione dinamica di programmi ASSIST a componenti
In questa tesi viene proposta e sperimentata una metodologia per il supporto di applicazioni grid-aware espresse come moduli paralleli ASSIST puri e incapsulati in componenti CCM (CORBA Component Model). La metodologia oggetto della tesi prevede il monitoraggio del tempo di servizio di applicazioni, basate su stream di dati, e la riconfigurazione da parte di un Application Manager, che può autonomamente decidere quali moduli/componenti paralleli utilizzare per bilanciare il carico, rispettando quindi il contratto di performance o evitando uno spreco inutile di risorse. A conclusione della sperimentazione, viene fatto un confronto tra i due approcci proposti (ASSIST puro ed integrato CCM), valutando l'impatto dei componenti CCM in una applicazione in esecuzione su una griglia, e valutando la bontà dell'Application Manager nei due casi