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
Scarica

GRIDS Lab: Gridbus project & Alchemi