scheduling in grads il progetto grads (grid application development software) ha lo scopo di...

35
Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di un’applicazione Grid. Tra le funzionalità considerate sono comprese quelle per lo scheduling. Lo scheduling si basa su tre possibili approcci: sviluppo di uno scheduling iniziale (launch-time); modifica dello scheduling durante l’esecuzione (rescheduling); negoziazione tra le applicazioni (meta-scheduling). Il progetto parte da un’analisi dei requisiti delle applicazioni e propone delle soluzioni software mirate a soddisfare tali requisiti.

Upload: ines-molteni

Post on 01-May-2015

213 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità

Scheduling in GrADS

• Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di un’applicazione Grid. Tra le funzionalità considerate sono comprese quelle per lo scheduling. Lo scheduling si basa su tre possibili approcci: sviluppo di uno scheduling iniziale (launch-time); modifica dello scheduling durante l’esecuzione (rescheduling); negoziazione tra le applicazioni (meta-scheduling).

• Il progetto parte da un’analisi dei requisiti delle applicazioni e propone delle soluzioni software mirate a soddisfare tali requisiti.

Page 2: Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità

Struttura generale di Grads

Page 3: Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità

Launch Time scheduler in Grads

Il COP dovrebbe essere generato automaticamente dal compilatore

Page 4: Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità

COP - Application requirement specifications

• Descrizione di application requirements attraverso il linguaggio ClassAds per un programma parallelo iterativo che utilizza MPICH-G2

Page 5: Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità

COP - Performance modeling

• Prende in input una schedulazione proposta, le informazioni sulla Grid e fornisce la stima del tempo di escuzione per la schedulazione prevista.

• L’approccio più consolidato si basa su:– Sviluppo di un modello analitico di performance per gli aspetti ben

identificati di un applicazione sistema (ad esempio il tempo di esecuzione);

– Test del modello analitico tramite esperimenti;– Sviluppo di un modello empirico per gli aspetti meno definibili del

comportamento del sistema (ad esempio l’overhead dovuto al middleware)

• In alcuni casi il modello analitico può non bastare (vedi scalapack) per descrivere la computazione modello di simulazione

• I modelli di performance sono implementati come shared library

Page 6: Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità

COP - Mapper

• Il mapper prende in input una lista di macchine e informazioni sul Grid e produce un mapping dei processi applicativi alle macchine e e un’allocazione dei dati ai processi. In alcuni casi l’utente può cooperare ad esempio fornendo un ordinamento tra le macchine. In altri casi l’applicazione sceglie il mapping internamente (ad esempio Scalapack). In questi casi il mapper non è usato.

Page 7: Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità

COP - Mapper

• Le strategie utilizzate comprendono:– Equal allocation: alloca i dati in modo uniforme sulle

diverse macchine. E’ la strategia più elementare.– Time balancing: cerca di allocare i dati in modo tale

che la computazione termini il più possibile allo stesso tempo sui nodi. Molte applicazioni sono limitate dal nodo più lento: questo è molto importante per le applicazioni iterative. Il problema è spesso formulato come un problema di ottimizzazione con vincoli e risolto attraverso metodi di programmazione lineare.

– Data locality: in alcuni casi il vincolo è sulla località dei dati (ad esempio search su database); anche in questo caso usa la programmazione lineare.

Page 8: Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità

Search Procedure

• La procedura di ricerca si basa su criteri generali e non su ipotesi relative all’applicazione per poter essere utilizzata in diverse situazioni

• Questa scelta può avere degli effetti negativi sulle performance ottenute

• Sono proposti diversi approcci per la ricerca delle risorse in ogni caso i passi fondamentali sono:– Identificazione di un grande numero di insiemi di risorse che

potrebbero essere adeguate all’applicazione;– Utilizzo del mapper e del performance model specifici per

l’applicazione per avere una previsione dei tempi di esecuzione per gli insiemi di risorse considerati;

– Scelta dell’insieme per cui è previsto il tempo di esecuzione minore.

• Problema della schedulazione per il tempo minimo su un multiprocessore è NP-hard obiettivo avere un basso overhead

Page 9: Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità

Resource aware search

• Si basa sulla constatazione che esistono caratteristiche delle risorse utili a tutte le applicazioni: velocità del processore, memoria disponibile (intese come risorse individuali),banda di comunicazione (intesa come risorsa del gruppo)

CGM= Candidate Group Machine

Page 10: Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità

Resource aware scheduling

• L’obiettivo è quello di selezionare gruppi di macchine candidate (CGM) e valutarli;

• Le macchine sono divise in sottoinsiemi disgiunti o “sites” (usando ad esempio il dominio criterio generale “low latency” connection)- metodo FindSites;

• Il metodo ComputeSiteCollections calcola il “power set” per l’insieme dei sites (2s elementi con s = numero di siti)

• I tre cicli in cascata raffinano la ricerca in base a:– Connessione (esterno);– Velocità del processore, capacità di memoria e combinazione

delle due delle macchine individuali (intermedio);– Taglia dell’insieme di risorse (interno)

• La funzione SortDescending ordina la collection consideratain base alla machineMetric (ad esempio dual)

Page 11: Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità

Resource aware scheduling

• GetFirstN ritorna le prime r macchine della lista ordinata ( list )

• Per valutare ogni CGM il metodo GenerateSchedule utilizza:– Il mapper per produrre un mapping dei dati sul CGM;– Il performance model per fornire una stima del tempo di esecuzione

( predtime )– Produce una struttura (currSched) che contiene il CGM , il

mapping ed il tempo previsto

• Il tempo di esecuzione è utilizzato per selezionare il best schedule

• La complessità di una ricerca esaustiva è di 2p con p = numero di processori, in questo caso la complessità è 3p*2s

con s = numero di siti ( s<<p )

Page 12: Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità

Simulated annealing (vedi wikepedia)

• Questa strategia non utilizza, in prima istanza, alcuna preferenza indicata dall’applicazione per la selezione delle risorse ( nel caso precedente connessione).

• Si basa su un algoritmo di carattere generale che affronta un problema di ottimizzazione globale su uno spazio di ricerca (search space) e attraverso un approccio probabilistico individua una buona approssimazione della soluzione ottima.

Page 13: Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità

Simulated annealing

• L’algoritmo generale è derivato dall’osservazione del processo di riscaldamento e progressivo raffreddamento utilizzato per trattare alcuni materiali ed ottenere cristalli con configurazioni migliori (annealing).

• Il riscaldamento sblocca gli atomi dalla loro posizione iniziale (di minimo locale rispetto all’energia interna) e permette loro di muoversi a caso attraverso stati con energia maggiore; il processo di lento raffreddamento permette agli atomi di disporsi in configurazioni con energia interna minore rispetto a quella iniziale

• La funzione da ottimizzare è l’energia interna del sistema; ogni punto dello spazio di ricerca definisce lo stato del sistema; da un punto ci si sposta verso un vicino in modo da ridurre l’energia interna. L’energia può aumentare per evitare di scegliere un minimo locale. Il procedimento è ripetuto fino ad ottenere un risultato accettato, o fino ad un numero di iterazioni prefissato .

Page 14: Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità

Simulated annealing

– s := s0 e := E(s) k := 0 while k < kmax and e > emax

sn := neighbour(s) en := E(sn) if en < e or random() < P(en - e, temp(k/kmax)) then

s := sn; e := en k := k + 1

return s

• Il valore della funzione di probabilità P determina la transizione al nuovo stato in modo da evitare la scelta di minimi locali (possibilità di passare ad uno stato con energia più alta), ma garantendo che quando l’energia è abbastanza bassa vengono scelti preferibilmente valori minori (downhill)

Page 15: Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità

Simulated annealing

• Nella formulazione originale del metodo (Kirkpatrick et. al, 1983) la probabilità P(δE, T) è definita come 1 se δE < 0 (i.e., downhill moves were always performed); altrimenti la probabilità è

• Questa formula deriva dall’algoritmo Metropolis-Hastings, utilizzato per generare campioni dalla distribuzione Maxwell-Boltzmann che governa la distribuzione dell’energia delle molecole in un gas.

Page 16: Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità
Page 17: Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità

Simulated annealing search

• In questo caso la ricerca tramite SA viene effettuata per tutte le possibile taglie di risorse (da 1 all’intero set).

• Fissata una taglia r viene creata una lista di macchine che soddisfano i requisiti di memoria.

• Viene quindi creato un CGM (stato) iniziale e quindi viene generato lo scheduling e valutato per questo CGM

• Il CGM viene quindi perturbato ed eventualmente viene scelto un nuovo CGM; l’operazione è ripetuta abbassando progressivamente la temperatura (loop di annealing)

• Il best scheduling prodotto viene ritornato al chiamante

Page 18: Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità

Rescheduling

• Per applicazioni “long running” lo scheduling iniziale può non essere più efficace a causa di variazioni del carico delle risorse. A questo scopo può essere necessario ridefinire lo scheduling (rescheduling) attraverso due azioni che coinvolgono l’applicazione in esecuzione:

– Migrazione

– Bilanciamento dinamico del carico

Page 19: Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità

Rescheduling

• Esistono diversi problemi che devono essere affrontati per consentire il rescheduling di applicazioni parallele:

– Disponibilità di meccanismi adatti a permettere migrazione di processi e ribilanciamento nella distribuzione dei dati;

– Monitoraggio delle risorse attive e passive;

– Overhead relativo alle operazioni precedenti

Page 20: Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità

Rescheduling

Page 21: Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità

Rescheduling

• L’architettura mostrata in figura comprende N processi in esecuzione sui nodi; si suppone anche che esista un contratto di performance stabilito in una fase precedente di gestione dell’applicazione; appositi application sensor sono co-allocati con i processi applicativi per poterne verificare lo stato di avanzamento; resource sensor sono presenti sulle risorse (attive e passive) per poterne verificare il livello di utilizzo.

• I dati prodotti dagli application sensor e il performance contract sono a disposizione del contract monitor che a fronte di una contract violation interpella il rescheduler

• Il rescheduler valuta se un azione di rescheduling può essere conveniente oppure no, utilizzando i dati provenienti dai resource sensor e considerando l’overhead derivato dall’azione di rescheduling

Page 22: Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità

Rescheduling

• Il rescheduler contatta i rescheduler actuators per eseguire le azioni necessarie al rescheduling

• Allo stato attuale della tecnologia per effettuare le azioni di monitoraggio, migrazione e ribilanciamento del carico è necessaria la collaborazione dell’applicazione.

• Per applicazioni con struttura regolare una soluzione di tipo generale è più facilmente definibile, anche se tuttora esistono solo strumenti di ricerca, non consolidati che implementano questa possibilità

Page 23: Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità

Contract monitoring

• In GraDS il monitoraggio del contratto di performance è basato su sensori dell’applicazione realizzati utilizzando il sistema Autopilot.

• Questi sensori sono eseguiti in un thread separato nello spazio del processo applicativo. Per il loro utilizzo è necessario inserire alcune chiamate a funzioni specifiche nel codice applicativo. I sensori possono essere configurati in modo da poter leggere e fornire all’esterno i valori di alcune variabili: un valore di interesse in questi casi è quello che dei contatori associati a fasi di calcolo iterative.

• Altri sensori possono riportare valori hw quali ad esempio il processor flop rate e il volume di comunicazioni in Mb/sec

• I valori rilevati dai sensori sono inviati al contract monitor che li verifica e prende le opportune decisioni

Page 24: Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità

Rescheduling attraverso migrazione dell’applicazione

• Il rescheduling può essere implementato attraverso una migrazione basata su un’operazione di stop/restart.

• Quando viene deciso il rescheduling di un’applicazione tutti i processi effettuano un checkpoint si fermano, e quindi l’applicazione riparte utilizzando i dati salvati al checkpoint.

• GRaDS fornisce una user-level checkpointing library chiamata Stop Restart Software (SRS)

• L’utilizzo di SRS prevede i passi descritti di seguito

Page 25: Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità

Rescheduling con migrazione

• Dopo la MPI_Init()deve esser chiamata la funzione SRS_Init()e prima della MPI_Finalize() deve esser chiamata la funzione SRS_Finish()

• L’utente può utilizzare opportunamente gli statement condizionali per distinguere il codice da eseguire all’avvio del programma, da quello da eseguire in caso di restart (ad esempio inizializzazione dei valori di un array = 0 all’avvio e utilizzando un checkpoint al restart) A questo scopo il sistema fornisce la funzione SRS_Restart_Value() che ritorna il valore 0 all’avvio e 1 dopo il restart

Page 26: Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità

Migrazione

• E’ fornita la primitiva SRS_Check_Stop()che permette di verificare se dall’esterno è stata richiesta un’operazione di migrazione (dal momento in cui la primitiva era stata chiamata precedentemente). Questa primitiva deve essere chiamata in punti “ragionevoli” ( ad esempio dove esiste una sincronizzazione anche lasca tra i processi paralleli).

• E’ fornita la primitiva SRS_Register()per “registrare” le variabili che saranno salvate (checkpointed) dalla libreria. Quando una componente esterna ferma l’applicazione vengono salvate solo le variabili registrate.

Page 27: Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità

Migrazione

• SRS_Read()è utilizzata dopo un restart per leggere i dati salvati nel checkpoint. Fornisce anche l’accesso alla distribuzione dei dati ed al numero di processori utilizzati nel checkpoint. La distribuzione dei dati può essere ripristinata o modificata al restart

• L’header file della libreria deve essere incluso nel codice e la libreria deve essere linkata all’applicazione

• E’ prevista l’esistenza di un demone (Runtime Support System RSS) sulle macchine che possono essere coinvolte nell’operazione di rescheduling

Page 28: Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità

Migrazione – interazione con il contract monitor

• Il contract monitor può contattare il “migration rescheduler” in caso di violazione del contratto

• E’ possibile interrogare il contract monitor per avere informazioni sul tempo di esecuzione rimanente

• E’ possibile modificare dinamicamente il contratto di performance, nel caso in cui lo scheduler non sia in grado di applicarlo

• Il migration rescheduler opera in due modi:– On request: quando si rileva una violazione del contratto e viene

richiesta un’operazione di aggiustamento;

– Opportunistic: se il CM. si accorge che un’applicazione è terminata e ha liberato delle risorse può proporre allo scheduler di utilizzarle

– In entrambe i casi il CM interagisce con un tool opportuno (ad es. NWS)

Page 29: Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità

Rescheduling attraverso process swapping

• Una strategia alternativa al rescheduling è il process swapping. Meno flessibile ma più economica e meno intrusiva.

• L’applicazione è lanciata su un numero maggiore di macchine rispetto a quelle utilizzate. Su alcuni nodi l’applicazione è attiva mentre su altri è inattiva.

• L’utilizzatore vede solo i nodi attivi nel comunicatore MPI (MPI_Comm_World), mentre il sistema diffonde i messaggi su tutti i nodi.

Page 30: Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità

Rescheduling - swapping

• E’ fornita una libreria per lo swapping che permette di:– Registrare le variabili interessate dallo swapping:

swap_register(); questa operazione deve essere fatta per le variabili che controllano cicli di iterazioni, e per tutte le variabili potenzialmente interessate dallo swapping;

– Effettuare l’operazione di swap all’interno del ciclo di calcolo (MPI_Swap())

• L’utente deve linkare la libreria di swap ed includere il file mpi_swap.h al posto di mpi.h

Page 31: Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità

Swapping • Sono forniti diversi servizi run-time:

– Lo swap_handler che svolge il ruolo application sensor, resource sensor e rescheduling actuator

– Lo swap manager che svolge il ruolo di rescheduler. Esiste uno swap manager attivo per ogni applicazione e dedicato all’applicazione.

• Lo swap handler fornisce le informazioni allo swap manager che, agendo in modo opportunistico, determina se effettuare l’operazione di swap. Nel caso interagisce con lo swap handler.

• Lo swap handler memorizza la richiesta di swap e la prossima volta in cui l’applicazione verifica se uno swap è stato richiesto (MPI_Swap()) questo viene eseguito.

Page 32: Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità

Metascheduling

• Lo scheduling “launch time” e il rescheduling considerano le applicazioni una alla volta.

• Questo genera diversi possibili problemi:– 2 applicazioni concorrenti sottomesse allo stesso tempo;

– Se il launch time scheduler dice che non ci sono abbastanza risorse si rischia la starvation

– Un job molto lungo può penalizzare fortemente le altre eventuali richieste

• Problema chiave: non esiste una conoscenza “globale” in grado di bilanciare le esigenze delle applicazioni

• L’obiettivo del metascheduling è quello di prendere in considerazione sia le esigenze dell’applicazione e le performance complessive del sistema.

Page 33: Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità
Page 34: Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità

Metascheduling

• Best case analysis: il metascheduler gestisce tutto ciò che avviene nel sistema.

• E’ basato su quattro componenti aggiuntivi:• Il Database manager contiene le informazioni su tutte le

applicazioni nel sistema; per ogni applicazione il suo stato, le risorse schedulate a launch time e il tempo previsto di terminazione. Il database è aggiornato durante l’esecuzione dell’applicazione, e fornisce informazioni agli altri componenti del metascheduler.

• Il Permission service determina se le risorse filtrate hanno capacità adeguate all’applicazione e fornisce o nega il permesso all’applicazione per proseguire con i passi successivi. Se le risorse non sono sufficienti il permission service agisce in modo pro-attivo eventualmente fermando un’altra applicazione che sta consumando una grande quantità di risorse

Page 35: Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità

Metascheduling

• Il contract negotiator riceve dal contract developer le informazioni sui contratti di performance dell’applicazione (in termini di stima di performance e schedulazione). Questo componente può rifiutare un contratto nel caso in cui: – A suo giudizio utilizza informazioni non aggiornate;

– L’applicazione chiede troppe risorse;

– La richiesta di risorse ha un forte impatto su un’applicazione in esecuzione.

Allo stesso tempo può aumentare le risorse fornite se questo è possibile, eventualmente interrompendo un’applicazione in esecuzione.

• Il rescheduler agisce all’interno del metascheduler