Introduzione alla Simulazione Definizione di simulazione Tipi di simulazione Vantaggi e limiti della simulazione Modelli di simulazione Simulazione discreta Struttura di uno studio di simulazione Introduzione alla Simulazione Definizione di simulazione Imitazione delle operazioni eseguite nel tempo da un sistema o processo reale Scopo della simulazione Generazione di una storia artificiale del sistema Studio e valutazione delle caratteristiche del sistema (analisi delle prestazioni) Risposta alla domanda cosa accade se S1.1 S1.2 Introduzione alla Simulazione Scopo della simulazione (continua) Progetto: analisi di sistemi ipotetici Confronto tra due o più sistemi Ottimizzazione: determinare valore ottimale di parametri Determinare i punti critici (bottlenecks) Capacity planning Previsionale: predire le prestazioni del sistema nel futuro Aree di applicazione Sistemi di elaborazione Sistemi di comunicazione Sistemi di trasporto Sistemi di produzione e automazione Sistemi militari Sistemi sociali Sistemi naturali Sistemi economici S1.3 S1.4 Introduzione alla simulazione Simulazione per l analisi quantitativa di sistemi di elaborazione e comunicazione Possibili alternative per l analisi di QoS (prestazioni, affidabilità) di sistemi: Simulazione Misurazione: monitor del sistema (benchmark) Analisi (modelli e metodi) S1.5 Simulazione: metodo di analisi quantitativa Metodologie di valutazione delle prestazioni di sistemi Misurazione (empiriche) Misurazione Propotipazione diretta Benchmarking (carico artificiale) Modellistiche Benchmark: insieme di programmi (lavori) applicativi che rappresentano il tipico carico del sistema da misurare Ripetibilità Modelli analitici Modelli ibridi Modelli di simulazione S1.6 1
Motivazioni alla simulazione Perché la simulazione? Se il sistema non esiste non posso usare benchmarks Permette valutazioni di sistemi nelle stesse condizioni Permette valutazioni di eventi e condizioni rare o rischiose Permette stime non misurabili su sistemi reali Non introduce overhead o alterazioni delle stime nel sistema (es. benchmark per valutare prestazioni S.O.) Permette una buona accuratezza S1.7 Adeguatezza della simulazione Quando la simulazione non è appropriata? Simulazione vs metodi matematici: per problemi risolvibili con metodi più semplici, p.es. con soluzioni analitiche di modelli matematici Simulazione vs sperimentazione diretta: quando è più semplice ed efficiente effettuare una sperimentazione diretta del sistema (esistente) Costo: quando il costo (e tempo) di una simulazione che fornisca risultati accurati è proibitivo Convalida: quando non si è in grado di convalidare il modello di simulazione S1.8 Vantaggi della simulazione Test di sistemi prima di investire sulle strutture Possibilità di espansione e compressione del tempo simulato Possibilità di capire le cause di eventi Esplorare e valutare nuove politiche di gestione Diagnosi di problemi Identificazione di requisiti Comprensione del sistema Svantaggi della simulazione Costo: costruzione dei modelli lunga e non banale Interpretazione dei risultati lunga e complessa Vengono in aiuto Simulatori (primitive e strutture dati) Ambienti di simulazione (che includono strumenti per l analisi dell output) S1.9 S1.10 Simulazione: modelli e sistemi Concetti di modeling Sistemi vs. modelli Variabili di stato del sistema Eventi Entità e attributi Risorse Gestione di liste Attività e ritardi Modelli di simulazione a eventi discreti Introduzione ai modelli di simulazione Sistema da analizzare: una collezione di HW, SW e FW Metrica: criterio usato per la valutazione delle prestazioni del sistema da analizzare Carico di lavoro (workload) Le richieste fatte dagli utenti del sistema S1.11 S1.12 2
Sistemi e modelli Sistemi e modelli Sistema: collezione di componenti (elementi, entità) interdipendenti che interagiscono fra loro in accordo a specifiche predefinite Sistema Modello Creazione di un modello: rappresentazione del sistema Obbiettivo: studio del comportamento del sistema e delle relazioni fra le sue componenti Processo di creazione ed uso del modello : 1. Definizione 2. Parametrizzazione 3. Valutazione S1.13 Analisi impiego Sistema Modello Livello di astrazione del modello: livello di dettaglio di rappresentazione Definizione degli obbiettivi Usare modelli semplici e facilmente risolubili specie nelle prime fasi di progetto di sistema Creazione Formalizzazione S1.14 Modellazione - vantaggi Costruzione di un modello di sistema rappresentazione astratta formalizzazione di osservazioni empiriche Vantaggi organizzazione delle conoscenze e osservazioni empiriche comprensione del sistema rilevanza di componenti e/o interazioni facilita l analisi del sistema modificabilità indispensabile in fase di progetto valutazione di alternative impiego di diversi modelli in funzione degli obbiettivi S1.15 Modellazione - limiti Rischi livello di astrazione non appropriato tendenza ad estrapolare i risultati del modello oltre al suo campo di applicabilità Componenti (proprietà elementari del sistema) Interazioni nel sistema Comportamento del sistema SISTEMA Componenti (proprietà elementari del modello) + + Interazioni nel modello Comportamento del modello MODELLO S1.16 Modelli di simulazione Modello: astrazione o rappresentazione di un sistema reale Analisi del sistema e isolamento delle caratteristiche da includere nel modello Complessità: commisurata alle necessità dell analisi Semplicità: favorisce implementazione corretta e prestazioni del simulatore Fedeltà: fornisce dati realmente descrittivi Approssimazione: trade-off con semplicità Tempo simulato vs. wall-clock time Modelli di simulazione: variabili Variabili di stato del sistema variabili che descrivono lo stato del sistema al tempo (simulato) t, e al livello di definizione sufficiente per l analisi permettono di interrompere e riprendere la simulazione sono strutture dati del modello S1.17 S1.18 3
Modelli di simulazione: eventi Evento un cambiamento nello stato del sistema avviene al tempo simulato t tempo di occorrenza dell evento Evento interno (endogeno) Riguarda variabili interne al modello Es. inizio di un servizio di un job in coda Evento esterno (esogeno) Riguarda variabili esterne al modello Es. arrivo di un nuovo utente in coda Modelli di simulazione: entità Entità Oggetti esplicitamente definiti nel modello Dinamici (es. clienti) o statici (es. server) Possono competere per ottenere le risorse ed essere accodati nelle corrispondenti code di attesa Attributi Sono valori locali delle entità Es. tempo di arrivo del cliente, velocità di servizio del server S1.19 S1.20 Modelli di simulazione: risorse Risorse Sono entità che forniscono servizi passivi o attivi ad entità dinamiche (che possono richiedere una o più unità della risorsa) Le risorse richieste, se occupate, possono determinare un attesa in coda Possono fornire servizi in parallelo (server parallelo) Modelli di simulazione: liste Liste Sono strutture usate per implementare code Possono essere mantenute ordinate, secondo i valori di attributi per ragioni di efficienza Discipline di attesa/servizio Es. FIFO, LIFO Shortest Request First (basata su attributo locale) S1.21 S1.22 Modelli di simulazione: attività Modelli di simulazione: tempo Attività Periodo di tempo di durata pre-determinata caratterizzato da attività in corso, ovvero collezione di operazioni che trasforma lo stato di una componente Scheduling di eventi di inizio/fine attività Nella simulazione a eventi discreti (DES) le attività fanno avanzare il tempo simulato t Durata dell attività Caratterizzata da distribuzione statistica Ritardo (delay) Durata indefinita di un attività, legata alle condizioni e all evoluzione del sistema (attesa) S1.23 Modelli a tempo continuo/discreto tempo continuo (continuous-time model): lo stato del sistema è definito sempre in ogni t tempo discreto (discrete-time model): lo stato del sistema è definito in istanti di tempo discreti: t, t+1 Es. numero utenti di un sistema ogni giorno alle ore 12 S1.24 4
Modelli di simulazione: stato Classificazione di modelli Modelli a stato continuo/discreto stato continuo (continuous-state o -event model): le variabili di stato sono continue Es. livello del liquido in un bacino idrico Possono essere approssimati da modelli a eventi discreti stato discreto (discrete-state o -event model): le variabili di stato sono discrete e cambiano valori in corrispondenza di eventi discreti Es. numero di persone in attesa alla posta S1.25 Dipendenza delle variabili di stato Modello deterministico/probabilistico deterministico: dipendenza deterministica output(input k)= x probabilistico: almeno una variabile casuale output(input k)= x1, x2, x3 Modello statico/dinamico statico: lo stato non dipende dal tempo dinamico: lo stato (almeno una variabile di stato) dipende dal tempo S1.26 Classificazione di modelli Modello lineare/non lineare lineare: output(x)= k*x non lineare: output(x) k*x Modello aperto/chiuso chiuso: non esistono variabili esterne, es. nuovi job non entrano o escono dal sistema aperto: esistono variabili esterne, es. esistono source e sink per i job Classificazione di modelli Modello stabile/instabile stabile: comportamento converge allo stato stazionario instabile: comportamento che cambia continuamente (e se è oscillante?) S1.27 S1.28 Tipi di modelli di sistema I possibili modelli del sistema Modello matematico, statistico e di input/output Descrivono input e output del sistema attraverso relazioni matematiche o statistiche Modello descrittivo Modello di simulazione a eventi discreti Rappresentazione dettagliata della struttura interna del modello Tipi di simulazione: emulazione Tipi di simulazione (Emulazione): simulazione che coinvolge componenti del sistema hw e firmware es. emulatore di terminale hw, emulatore di processore: emula un instruction set di un altro processore S1.29 S1.30 5
Tipi di simulazione: Monte Carlo MonteCarlo simulation: non esiste o non è rilevante l asse del tempo utilizzata per modellare fenomeni che non cambiano nel tempo richiede generazione di numeri pseudo-casuali anche valutazione di espressioni non probabilistiche es. calcolo di integrali, calcolo di Pigreco, ecc. Tipi di simulazione: trace-driven Trace-driven simulation: simulazione basata su una sequenza di eventi ordinati per tempo registrati dal sistema reale (traccia) vantaggi: credibile: non basata su ipotesi e distribuzioni di input semplice validazione nessuna assunzione sul workload e correlazione possibile fare una buona analisi di sensitività minori variabilità (varianza minore) che permette una stima più accurata e/o veloce il confronto tra sistemi è certamente equo (fairness) S1.31 S1.32 Tipi di simulazione: trace-driven svantaggi complessità del modello è maggiore (di solito) rappresentatività: difficoltà di ricavare una traccia rappresentativa dei carichi possibili (soprattutto per sistemi diversi e molto dinamici) lunghezza: la traccia è lungo e legato alla situazione in cui è registrato, problema della scelta della parte di traccia da utilizzare convalida: occorrono molte tracce diverse per motivare e dimostrare i risultati comportamenti transienti devono essere registrati nella traccia tracce diverse per ogni diverso carico (workload) S1.33 Tipi di simulazione: a eventi discreti Discrete-event simulation (DES) simulazione che usa un modello del sistema a tempo discreto opposto di continuous-event simulation può essere basata su stato continuo o discreto le variabili di stato cambiano solo in corrispondenza ad eventi discreti, determinati a loro volta da attività e ritardi S1.34 Tempo in simulazione Tempo reale : tempo del sistema da simulare simulato : tempo rappresentato nel modello (clock : variabile del modello il cui valore è il tempo simulato corrente) di esecuzione : tempo di elaborazione del programma di simulazione Nota: il tempo di esecuzione dipende dalle componenti del modello e dalla complessità dei cambiamenti di stato rappresentati, e non dalla scala del tempo simulato. Contrazione / espansione temporale Avanzamento del tempo Meccanismi di avanzamento del tempo in simulazione per intervalli fissi (unit-time): si incrementa il clock di una quantità fissa e si esamina il sistema per determinare gli eventi che devono aver luogo per i quali si effettuano le necessarie trasformazioni tratta tutti gli eventi con tempo di occorrenza t i (t, t+ ] Problema: scelta dell incremento Eventi con diversi tempi di occorrenza possono essere trattati come eventi simultanei Possibili intervalli vuoti Rappresentazione dell'evoluzione temporale (clock) S1.35 S1.36 clock 6
Avanzamento del tempo Meccanismi di avanzamento del tempo in simulazione per eventi (event-driven): si incrementa il clock fino al tempo di occorrenza del prossimo (primo) evento incrementi irregolari eventi simultanei solo se hanno lo stesso tempo di occorrenza evita tempi di inattività Schemi di simulazione Strutture di modelli di simulazione Esistono essenzialmente quattro metodologie Interazione tra Processi Scheduling di Eventi Scansione di Attività Metodo a Tre fasi clock S1.37 S1.38 Schemi di simulazione: processi Simulazione per Interazione tra Processi Il flusso di esecuzione di un processo in esecuzione emula il flusso di un oggetto (entità) attraverso il sistema L esecuzione procede finché il flusso non viene bloccato, ritardato, terminato o inizia una nuova attività es. attesa in coda, servizio (ritardo), sink Quando il flusso di un entità viene bloccato, il tempo di simulazione avanza al tempo di inizio previsto dalla prima successiva entità in esecuzione Schemi di simulazione: eventi Simulazione per scheduling di eventi Si avanza il tempo simulato al tempo del prossimo evento successivo (di solito il termine o l inizio di un attività) Lista ordinata di eventi e scheduler di eventi Il termine di un attività coincide con la nuova allocazione di risorse rilasciate tra le entità in attesa lo scheduling di nuove attività causalmente determinate S1.39 S1.40 Scheduler (sequenziatore) di eventi Schemi di simulazione per eventi scheduler di eventi mantiene struttura di lista ordinata per tempo simulato (multi-linked) di eventi futuri (schedulati, cancellati, rinviati, bloccati). Gestisce l avanzamento del tempo simulato event-driven: clock tempo del prossimo evento in lista unit-time: clock clock +... Sono accaduti eventi? Struttura dati Evento = (time, puntatore al codice della routine di evento) La routine di evento aggiorna le variabili di stato routine di inizializzazione: chiamate per prime, definiscono lo stato iniziale del sistema, le sequenze dei numeri pseudo-casuali, ecc. routine di gestione degli eventi report generator: procedure che al termine della simulazione generano i dati di stima delle grandezze di interesse routine di trace: procedure per notificare eventi o stime a run-time gestione dinamica della memoria e garbage collection aggiorna la lista di eventi (inserisce, cancella, o rinvia eventi) S1.41 S1.42 7
Schemi di simulazione: attività Simulazione per scansione attività due fasi simili alla rule-based programming Condizione ok esecuzione azione Esiste un insieme di moduli in attesa di esecuzione, uno per attività Avanzamento del tempo per intervalli fissi Periodicamente si esegue test sulle condizioni che determinano esecuzione di eventi Esecuzione di eventi aggiornamento delle variabili di stato S1.43 Schemi di simulazione: tre fasi Simulazione: metodologia in tre fasi Avanzamento del tempo per intervalli fissi Fase 1: avanzamento del tempo simulato Fase 2: rilascio risorse mantenute dalle attività che risultano terminate dopo l avanzamento Fase 3: esecuzione attività per le quali siano disponibili le risorse S1.44 Pianificazione di uno studio di simulazione 1 - Formulazione del problema 2 - Definizione degli obbiettivi 3 -Astrazione del modello 4 -Raccolta dei dati No No 5 - Codifica del modello 6 -Verifica 7 -Validazione No 8 - Progetto degli esperimenti di simulazione 9 - Esecuzione e analisi dei dati - Accuratezza? Pianificazione della simulazione - 1 Formulazione del problema Definire e verificare la corretta e completa formulazione del problema attraverso un dialogo tra cliente e analista Definire le assunzioni delle specifiche e delle definizioni del sistema adottate Perché? 10 -Documentazione e presentazione dei dati S1.45 S1.46 Pianificazione della simulazione - 2 Pianificazione della simulazione - 3 Definizione degli obiettivi Preparazione di una proposta Obiettivi: cosa? Definire le risposte attese dalla simulazione Definire gli scenari oggetto di indagine Definire i tempi necessari Definire le risorse necessarie Definire i costi Definire le fasi dell analisi S1.47 Astrazione del modello concettuale Relazioni logiche, matematiche e causali delle componenti e strutture del sistema Modello: livello di astrazione componenti, attributi, caratteristiche funzionali, relazioni complessità strutturale, solubilità Metodologia Top-Down Partire dalle cose semplici ed estendere il modello fino a raggiungere il grado di complessità descrittiva necessario La complessità descrittiva non necessaria all analisi aumenta rischio di errori, costi e tempi Coinvolgimento del cliente nella costruzione del modello S1.48 8
Pianificazione della simulazione - 4 Raccolta dei dati caratterizzazione del carico (workload characterization) Analisi e indagine sui dati che caratterizzano il modello le discipline di accesso e servizio i tempi medi di permanenza, attesa e servizio le distribuzioni di probabilità tecniche di misurazione Pianificazione della simulazione - 5 Codifica del modello Il modello concettuale ottenuto viene codificato in una forma interpretabile dal calcolatore, ottenendo un modello operazionale Tecniche di codifica approccio object-oriented simulazione distribuita ambienti di simulazione S1.49 S1.50 Pianificazione della simulazione - 6-7 Verifica e validazione del modello verifica della correttezza del modello operazionale (soluzione) del modello convalida del modello concettuale come adeguata rappresentazione del sistema convalida della adeguatezza di: modello, obbiettivi, risultati possibile iterazione ai punti (2), 3, 4 o 5 con relative modifiche S1.51 Pianificazione della simulazione - 8-9 Progetto degli esperimenti di simulazione lunghezza della simulazione numero di prove simulazione a termine o stazionaria esperimenti pilota Esecuzione e analisi dei dati scelta del metodo di analisi intervalli di confidenza e stimatori - feedback a 8 interpretazione dei risultati analisi comparativa S1.52 Pianificazione della simulazione - 10 Documentazione obbiettivi assunzioni modello tecniche di analisi dei risultati risultati degli esperimenti Analisi di sensitività scelta del metodo di analisi intervalli di confidenza e stimatori - feedback a 8 interpretazione dei risultati analisi comparativa S1.53 9