GRIDS Lab: Gridbus project & Alchemi 14/12/2006 Roberto Podesta' [email protected] 1 Grid Computing and Distributed Systems Laboratory (GRIDS Lab) • Department of Computer Science and Software Engineering (http://www.csse.unimelb.edu.au/) • University of Melbourne (http://www.unimelb.edu.au/) • GridBus project (http://www.gridbus.org) • Alchemi (http://www.alchemi.net) 14/12/2006 Roberto Podesta' [email protected] 2 GRIDS Lab • Director: Prof. Rajkumar Buyya (http://www.buyya.com/) • 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/2006 Roberto Podesta' [email protected] 3 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/2006 Roberto Podesta' [email protected] 4 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/2006 Roberto Podesta' [email protected] 5 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 looselycoupled) 14/12/2006 Roberto Podesta' [email protected] 6 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/2006 Roberto Podesta' [email protected] 7 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/2006 Roberto Podesta' [email protected] 8 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/2006 Roberto Podesta' [email protected] 9 Alchemi: A .Net-based Enterprise Grid Framework • Obiettivi: – Sfruttare la potenza computazionale sottoutilizzato 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/2006 Roberto Podesta' [email protected] 10 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/2006 Roberto Podesta' [email protected] 11 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/2006 Roberto Podesta' [email protected] 12 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/2006 Roberto Podesta' [email protected] 13 Alchemi: Architettura e-Science Application e-Business Application e-Engineering Application e-Commerce Application Precompiled executables Alchemi .NET API (Object-Oriented Grid Programming Environment) Alchemi Jobs (XML representation) Alchemi Console Interface Alchemi Cross-Platform Manager Grid Threads (.NET objects) Alchemi Manager Alchemi Executor Alchemi Executor Alchemi Executor Windows-based machines with .NET Framework 14/12/2006 Roberto Podesta' [email protected] 14 Alchemi: Architettura (2) o 1 – Owner (Grid client) m 2 – AlchemiManager 3 – AlchemiExecutor (sui nodi) o e e e m e e e e 14/12/2006 Roberto Podesta' [email protected] 15 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/2006 Roberto Podesta' [email protected] 16 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/2006 Roberto Podesta' [email protected] 17 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/2006 Roberto Podesta' [email protected] 18 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) 14/12/2006 Roberto Podesta' [email protected] 19