14/12/2006Roberto Podesta' - 1 GRIDS Lab: Gridbus project & Alchemi
14/12/2006Roberto Podesta' - 2 Grid Computing and Distributed Systems Laboratory (GRIDS Lab) Department of Computer Science and Software Engineering ( University of Melbourne ( GridBus project ( Alchemi (
14/12/2006Roberto Podesta' - 3 GRIDS Lab Director: Prof. Rajkumar Buyya ( Staff: 5 post-doc, 3 research programmers, 6 Ph.D. students, 3 research students Sponsor: University of Melbourne, Australian Research Council (Australian Government), Apac, IBM, Sun, Microsoft, StorageTek ( Sun), Platform (USA), UE
14/12/2006Roberto Podesta' - 4 GridBus GRID computing e tecnologie di BUSiness combinate per creare una nuova generazione di applicazioni in ambito eScience e eBusiness Il progetto include: creazione di standard aperti, architetture e strumenti di riferimento per lo svilluppo di services-oriented grid, utilities per applicazioni distribuite scientifiche e finanziarie
14/12/2006Roberto Podesta' - 5 GridBus Middleware Visual Grid application development tool Grid scheduler Cluster scheduler Web Services-based Grid Market Directory (GMD) Grid accounting services Portals for web-based Grid management GridSimm Heterogenous resources brokering
14/12/2006Roberto Podesta' - 6 GridBus Broker Obiettivo: soddisfare le richieste di un utente dati certi vincoli di QoS in un ambiente Grid Progettato sulla base di 3 concetti chiave: 1. Flessibilita’ (fa leva su risorse eterogenee) 2. Fault Tolerant 3. SOA oriented (basato su componenti loosely- coupled)
14/12/2006Roberto Podesta' - 7 GridBus Broker: Componenti Workers: componenti che effettuano qualche azione e cambiano lo stato di entità passive (es. Scheduler, Dispatcher, Job Monitor) Entities: componenti passivi in grado di memorizzare il proprio stato (es. Job, Task, ComputeServer …).
14/12/2006Roberto Podesta' - 8 GridBus Broker: Componenti (2) Entities Task: descrive cosa deve essere fatto da un Job ed è un insieme di comandi Job: descrive l’unità di lavoro assegnata a un nodo e contiene, ad esempio, i valori dei parametri per il calcolo che rappresenta e il task a cui è associato (il mapping è one-to-one) ComputeServer: descrive le caratteristiche di un nodo computazionale della Grid (SO, architettura, numero di CPU, memoria, grid middleware… )
14/12/2006Roberto Podesta' - 9 GridBus Broker Ha quindi 2 ruoli: –Grid Enabler per user application (ad es. applicazioni web oppure legacy) –Grid Manager per le risorse computazionali in grado di interfacciarsi con differenti Grid middleware: Globus Alchemi
14/12/2006Roberto Podesta' - 10 Alchemi: A.Net-based Enterprise Grid Framework Obiettivi: –Sfruttare la potenza computazionale sotto- utilizzato o non utilizzata dei desktop per costruire un super-calcolatore virtuale –Minimizzare l’investimento in infrastrutture hardware e software –Minimizzare l’impatto nella quotidiana attività dell’utente –Struttura centralizzata strettamente controllata facile da amministrare
14/12/2006Roberto Podesta' - 11 Alchemi: motivazioni Il 90% a livello mondiale delle macchine all’interno di aziende e istituzioni hanno SO della famiglia Windows, sicché basare un’infrastruttura Grid su Windows può essere un fattore chiave per l’adozione ti tecnologia Grid nell’industria La piattaforma.Net offre un ambiente di programmazione molto vasto e completo con caratteristiche particolarmente interessanti (ad es. il supporto multi-language)
14/12/2006Roberto Podesta' - 12 Alchemi (1) Usabilità –Facile da installare e da configurare Connettività –In grado di lavorare dietro firewall e NAT Bassa intrusività –Possibilità nei nodi di far girare i task in background Modello di programmazione –Astrazione a grana fine thread-based (con un’implementazione specifica, i GThread) –Astrazione a grana grossa basata su job file –API per lo Scheduling che consentono di aggiungere altri algoritmi Interoperabilità –Web Services interfaces per la sottomissione di job (GridBus Broker)
14/12/2006Roberto Podesta' - 13 Alchemi (2) Affidabilità: –I thread di esecutori che si sono disconnessi a run-time vengono fatti ripartire su un’altra risorsa –In caso di crash del sistema riparte dall’ultimo stato conosciuto Scalabilità: –Database per la memorizzazione dello stato molto ridotto –Multithreaded Sicurezza: –Prevede autenticazione secondo profili con pre-determinate autorizzazioni (AAA) Management dell’infrastruttura: –GUI per amministrazione e monitoraggio
14/12/2006Roberto Podesta' - 14 Alchemi: Architettura Alchemi Manager e-Science Applicatione-Business Application e-Engineering Application Windows-based machines with.NET Framework Precompiled executables e-Commerce Application Alchemi Executor Alchemi Jobs (XML representation) Grid Threads (.NET objects) Alchemi.NET API (Object-Oriented Grid Programming Environment) Alchemi Console Interface Alchemi Cross-Platform Manager
14/12/2006Roberto Podesta' - 15 Alchemi: Architettura (2) 1 – Owner (Grid client) 2 – AlchemiManager 3 – AlchemiExecutor (sui nodi)
14/12/2006Roberto Podesta' - 16 Applicazioni Alchemi-based Implica scrivere un Grid Client per un Manager (a cui naturalmente devono essere resi disponibili degli esecutori): –Si connette autenticandosi al Manager (attraverso la classe GApplication) –Invia un certo numero di oggetti che sono estensioni della classe GThread –Attende i risultati
14/12/2006Roberto Podesta' - 17 Applicazioni Alchemi-based E’ necessario scrivere una classe che estenda la classe GThread con l’override del metodo Start: [Serializable] class customGThread : GThread { public override void Start(){ // calcolo che viene eseguito su ciascun nodo }
14/12/2006Roberto Podesta' - 18 Applicazioni Alchemi-based GridClient: static GApplication GridClient; … Init();//connessione e dipendenze int i; for (i = 0; i < N; i++) { GridClient.Threads.Add(new CustomThread(...)); } GridClient.Start();
14/12/2006Roberto Podesta' - 19 Considerazioni Modello di programmazione efficiente e soprattutto in grado di produrre applicazioni che funzionano Sincronizzazione non automatica Problemi nell’interazione con oggetti COM wrappati (sugli Executor) Esempio: AlchEx (Alchemi Excelerator)