DReflect Middleware riflessivo per la distribuzione di applicazioni Java su cluster Grid Borsista COMETA: Paolo Giarrusso (10 mesi, apr - sett 2007, feb.

Slides:



Advertisements
Presentazioni simili
U N INFRASTRUTTURA DI SUPPORTO PER SERVIZI DI FILE HOSTING Matteo Corvaro Matricola Corso di Reti di Calcolatori LS – Prof. A. Corradi A.A.
Advertisements

FESR Consorzio COMETA Pier Paolo CORSO Giuseppe CASTGLIA Marco CIPOLLA Industry Day Catania, 30 Giugno 2011 Commercial applications.
Layered Grid Architecture. Application Fabric “Controlling elements locally”: Access to, & control of, resources Connectivity “Talking to Grid elements”:
Workshop CCR e INFN-GRID Hotel Cala di Lepre Palau, maggio 2009 Il futuro di INFGRID nell'era IGI:
Martedi 8 novembre 2005 Consorzio COMETA Progetto PI2S2 FESR DReflect Middleware riflessivo per la distribuzione di applicazioni Java su cluster Grid Borsista.
Giuseppe Andronico CCR-WS10 Santa Tecla, 18 Maggio 2010 Introduzione MPI & GPU.
MUSE BT - CLIENT Music Everywhere BlueTooth progetto Client Acquaviva Luca Reti di Calcolatori LS AA
Università degli Studi di Perugia, LS in Informatica Seminario per il corso di Sicurezza Informatica (Prof. S. Bistarelli) Valentina Franzoni I nuovi paradigmi.
D. Talia - UNICAL 1. 1 Sistemi Operativi Domenico Talia Facoltà di Ingegneria Università della Calabria.
Generazione di codice dinamico per la realizzazione di catene di servizi componibili Progetto di Reti di Calcolatori LS A.A. 2007/08 Studente: Silvia Cereda.
Alma Mater Studiorum - Università di Bologna Facoltà di Scienze Matematiche Fisiche e Naturali Dipartimento di Scienze dell’Informazione Supporto al multihoming.
FESR Consorzio COMETA - Progetto PI2S2 Utilizzo dell’Infrastruttura Grid per il lancio in remoto di Simulazioni ad Agenti realizzate.
Porting RGCAD - Gianfranco Gargano II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID Porting RGCAD.
Fondamenti di Informatica A - Massimo Bertozzi LE RAPPRESENTAZIONI CONCATENATE.
I socket.
NAT, Firewall, Proxy Processi applicativi.
SCoPE - Stato dei Lavori
Piattaforma per industrie stampaggio
Tratto da: Anna Labella (a cura), E questo tutti chiamano Informatica, Manuali Scienze e Tecnologie – Formazione, La Sapienza Roma.
dCache Test effettuati al CNAF
Riunione INFN – Bologna, 17 January 2013
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Monitoring e loadbalancing dei servizi Grid
Comput-ER l'infrastruttura di calcolo distribuito in Emilia Romagna
GNALIS: Grid technologies for Natural Language Interaction System
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Dipartimento di Scienze Fisiche, Informatiche e Matematiche Corso di Laure in Informatica Relatore: Riccardo.
Generazione di codice dinamico per la realizzazione di catene di servizi componibili Matteo Fazi – matr
CRITTOGRAFIA Per crittografia si intende la protezione delle informazioni mediante l'utilizzo di codici e cifre. La crittografia è un componente fondamentale.
Studente/i Relatore Correlatore Committente Vanetti Stefano
Dati in rete Appunti.
Breve report su corso RedHat Enterprise Virtualization (RH318)
PROGETTO DI RETI DI CALCOLATORI L-S
Guido Cuscela INFN-Bari
LE ARCHITETTURE NON VON NEUMANN
Dichiarazione dei servizi di sito nel GOCDB
Real-time 3D reconstruction using multiple depth cameras
PRIN Roma1 – status Luciano Barone, Alessandro De Salvo
Sicurezza e Grid Computing
GridFlex: gestione di software
Metriche SE monitoring G.Donvito G.Cuscela INFN Bari
Studente/i Relatore Correlatore Committente Aris Piatti
ViralPack: Un pacchetto integrato di bioinformatica su Genius
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Introduzione alle griglie computazionali
Job Application Monitoring (JAM)
V. Di Stefano a, O. Muscato b, W.Wagner c
OR 6 – Citizen’s Marketplace
* Il Sistema Operativo GNU/Linux * Sistema Operativo e Applicazioni
SAS® OnDemand for Academics SAS Studio
analizzatore di protocollo
Sviluppo di un'applicazione web per l'utilizzo del framework SparkER
Sistemi ERP (Enterprise Resource Planning)
Corso di Ingegneria del Web A A Domenico Rosaci 1
Programmazione parallela in Matlab e Test per ENEA-GRID
Processi e Thread Meccanismi di IPC (1).
[Nome progetto] Relazione finale
Attività svolte nel progetto CRESCO dal Centro di Ricerca CRIAI
ADO Per gestire i database con tecnologia ASP si utilizzano strumenti ADO (ActiveX Data Objects): un'architettura che fornisce oggetti.
Scheduling in Linux (Kernel 2.4 e 2.6)
© 2007 SEI-Società Editrice Internazionale, Apogeo
[Nome progetto] Relazione finale
Ricorsione 16/01/2019 package.
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA
Il Livello di Trasporto
INFN-Grid DI PRODUZIONE grid-use-model grid.infn.it
SAGE – Un sistema per l’accounting dello storage in gLite
Parti interne del computer
ATLAS PRIN Roma1 - status Alessandro De Salvo
Ebsco HLM2ACNP: l’esportazione dei dati “chiavi in mano”
Transcript della presentazione:

DReflect Middleware riflessivo per la distribuzione di applicazioni Java su cluster Grid Borsista COMETA: Paolo Giarrusso (10 mesi, apr - sett 2007, feb - mag 2008) UniCT: Giuseppe Pappalardo, Emiliano Tramontana Dipartimento di Matematica e Informatica, Università di Catania

Obiettivi “Verrà considerato l'impiego di tecniche di progettazione a oggetti innovative per l’ambito Grid, quali la riflessione computazionale, miranti a un'integrazione quanto più possibile trasparente tra l'applicazione e il supporto proposto per la gestione delle risorse” [Allegato B, pag. 79] Pertanto DReflect mira a costituire il prototipo di un middleware che consenta a un’applicazione Java nata per un ambiente centralizzato di “girare” su Grid in modo distribuito, su n host (worker node) disponibili, in maniera trasparente Si è quindi resa necessaria la trasformazione automatica di applicazioni Java, per abilitarle all’uso trasparente dell’ambiente distribuito E’ stato sviluppato un set di componenti per: la gestione delle interazioni tra le varie parti remote la trasformazione del bytecode di un’applicazione, ai fini di inserirvi il supporto per le interazioni con le parti remote l’ispezione delle caratteristiche delle classi applicative scegliere dinamicamente, in base alle caratteristiche delle classi applicative e delle risorse Grid disponibili, l’host che eseguirà le classi

DReflect DReflect permette l’analisi delle caratteristiche di una classe Java la trasformazione automatica del bytecode di applicazioni Java centralizzate ai fini specificati nei due punti seguenti l’implementazione di varie politiche di allocazione ai fini della scelta degli host che eseguiranno oggetti a runtime la distribuzione trasparente delle classi e delle interazioni tra i vari oggetti eseguiti in ambito distribuito DReflect ispeziona il bytecode di una classe per ricavare: il grado di accoppiamento tra classi misurato come il numero di invocazioni trovate nel codice le percentuali di bytecode di una classe che si riferiscono all’uso di CPU e IO

Politiche di allocazione Per l’allocazione di oggetti, DReflect fornisce alcune politiche che operano in base alle caratteristiche delle classi, p.es.: Match dei requisiti In base alle caratteristiche di una classe, trova, tra gli host disponibili, quello con le librerie ed il tipo di CPU più appropriati Bilancia il carico tra gli host: l’allocazione è possibile su un host quando il suo workload è minore di una soglia Minimizzazione del ritardo di comunicazione tra oggetti Nel rispetto della soglia di workload degli host, invia, sullo stesso host o su host “vicini”, oggetti fortemente accoppiati Una misura di “vicinanza” per gli host è effettuata, a priori, sulla base della latenza nelle comunicazioni tra ciascuna coppia di host

Architettura di DReflect

Architettura di DReflect In ambiente Grid vengono eseguiti tramite opportuni JDL un job lato client su un worker node uno o più job lato server su altrettanti worker node A regime tipicamente il job lato client eseguirà alcune classi di UI ed ogni job lato server alcune classi remotizzate in automatico da DReflect Ogni job lato server comunica il proprio IP a un repository, poi si mette in ascolto di richieste di esecuzioni tramite il componente ServerProxy Inizialmente il job lato client contiene l’applicazione Java da distribuire, che viene avviata su un unico worker node nella fase di caricamento il bytecode delle classi verrà trasformato per consentire il controllo trasparente dell’applicazione da parte di DReflect La classe Interceptor è associata riflessivamente con ogni classe applicativa e ne attua in remoto, quando occorre, istanziazioni e chiamate ad altri oggetti La Riflessione Computazionale (e la manipolazione del bytecode) permettono di intercettare allocazioni ed esecuzioni di metodi

Trasformazioni a Load-time Il componente TranslatorOut cambia il bytecode di ciascuna classe dell’applicazione, usando la libreria Javassist Per ciascuna classe trasformata, i riferimenti a potenziali oggetti remoti sono cambiati nel tipo ObjRRef Un parametro di configurazione suggerisce quali classi possono diventare remote Le invocazioni verso potenziali oggetti remoti vengono modificate come segue, così da poter gestire la comunicazione remota: ob.m1(args) in _metaObj.trapMethodCall(ob, args, “m1”) L’istanza ob di ObjRRef registra: il nome della classe che ob rappresenta un identificatore dell’oggetto remoto corrispondente un identificatore dell’host remoto

Trasformazioni a Load-time TranslatorOut cambia i tipi dei parametri delle chiamate remote nel tipo ObjRRef I parametri originari sono oggetti che dovranno essere acceduti da parte di un host remoto La trasformazione permette la gestione della comunicazione remota Nella classe remota tutti gli accessi a tale parametro trasformato saranno gestiti tramite intercettazione TranslatorOut inserisce dei controlli per evitare la gestione di una invocazione tramite riflessione quando l’istanza potenzialmente in remoto è in effetti locale Questo riduce l’overhead della riflessione ob.m1(a) in if (ob==this) ob.m1(a) else if(ob.isLocal()) ob.getLocalObject().m1(a) else _metaObj.trapMethodCall(...)

Esperimento Vedremo un esperimento in cui il job lato server è mandato in esecuzione su n worker node, comincia ad eseguire, comunica il proprio indirizzo, si mette in ascolto di connessioni remote Il job lato client, contenente l’applicazione BasicSearch, è mandato in esecuzione, trasforma il bytecode, esegue l’applicazione che permette di cercare in parallelo una chiave su un repository di dati Diversi thread (istanze di classe Request) per la ricerca sono fatti partire ed ogni thread invoca metodi di un’istanza di InfoElement La classe Request è accoppiata con la classe InfoElement La classe InfoElement non è accoppiata con altre classi Istanze di Request e InfoElement vengono distribuite a runtime (lato server) al momento della loro istanziazione sui worker node disponibili, grazie alle politiche di ottimizzazione della comunicazione e al load-balancing

Conseguenze e conclusioni L’applicazione BasicSearch viene distribuita trasparentemente, come desiderato, sui worker node disponibili Sono state valutate le prestazioni dell’applicazione distributa e confrontate con quelle dell’esecuzione centralizzata I tempi di esecuzione quando vari thread sono in esecuzione diminuiscono rispetto all’esecuzione centralizzata, ammortizzando quindi l’overhead dovuto alle comunicazioni tra host La Riflessione Computazionale è stata usata per ottenere trasparenza nella gestione del deployment remoto di oggetti Sono state realizzate alcune politiche per allocare in modo efficace gli oggetti sulla base delle loro caratteristiche

Bibliografia A. Di Stefano, M. Fargetta, G. Pappalardo, E. Tramontana. Supporting Resource Reservation and Allocation for Unaware Applications in Grid Systems. In Journal of Concurrency & Computation: Practice & Experience (CCPE). John Wiley. Volume 18, Issue 8. 2006 P. Giarrusso, G. Pappalardo, L. Toscano, E. Tramontana. RexMidas: A Reflective Middleware for Transparently and Effectively Distributing Objects on a Grid System. In Proceedings of IEEE WETICE. 2008 P. Giarrusso, G. Pappalardo, E. Tramontana. RexMidas: Automatically Spreading an OO Application over Grid Resources. In Proceedings of Workshop finale dei Progetti Grid del PON "Ricerca" 2000-2006 - Avviso 1575. 2009

Bibliografia G. Novelli, G. Pappalardo, C. Santoro, E. Tramontana. Transcoding Agents for Multimedia Content Delivery in a Grid. In Proceedings of the International Transactions on Systems Science and Applications. 2006 G. Novelli, G. Pappalardo, C. Santoro, E. Tramontana. A Grid-based Infrastructure to Support Multimedia Content Distribution. In Proceedings of ACM UPGRADE-CN Workshop of HPDC. 2007 R. Giunta, G. Pappalardo, E. Tramontana. An Aspect-Generated Approach for the Integration of Applications into Grid. In Proceedings of ACM SAC. 2007 R. Giunta, G. Pappalardo, E. Tramontana. Handling Replica Management Concerns by means of Aspects. In Proceedings of IEEE WETICE. 2007 R. Giunta, F. Messina, G. Pappalardo, L. Toscano, E. Tramontana. Testing Replica Selection Policies in a pan-European Grid VO. In Proceedings of IEEE WETICE. 2008 R. Giunta, F. Messina, G. Pappalardo, E. Tramontana. Analysing the Performances of Grid Services handling Job Submission. In Proceedings of IEEE WETICE. 2009 R. Giunta, F. Messina, G. Pappalardo, E. Tramontana. Measuring Performances of Globus Toolkit middleware Services. In Proceedings of Workshop finale dei Progetti Grid del PON "Ricerca" 2000-2006 - Avviso 1575. 2009 R. Giunta, F. Messina, G. Pappalardo, E. Tramontana. Improving the Performances of a Grid Infrastructure by means of Replica Selection Policies. In Proceedings of Workshop finale dei Progetti Grid del PON "Ricerca" 2000-2006 - Avviso 1575. 2009 12