Un framework per simulazione massiva distribuita basata su Agenti D-MASON: Architettura Carmine Spagnuolo 1 Simulazione Multi-Agente • Una simulazione multi-agente è un sistema in cui entità (agenti) intelligenti interagiscono per soddisfare un certo insieme di obiettivi allo scopo di portare a termine un certo insieme di compiti. • La simulazione consente di confrontare il comportamento di un sistema biologico tramite il comportamento di un sistema artificiale. 2 Esempio di Simulazione: Modello di Reynolds • Agenti autonomi riproducono il movimento di uno stormo di uccelli. i. • Ogni volatile è un agente definito da tre regole: i. ii. cerca di dirigersi verso lo stormo. cerca di evitare le zone troppo affollate. iii. si muove nella stessa direzione dello stormo. • Eseguendo la simulazione si nota che gli agenti tendono a unirsi in gruppi. ii. iii. 3 Simulazione Multi-Agente Agenti Definizione della struttura degli agenti e dei rapporti reciproci che si possono instaurare Modello ad agenti Creazione di modelli che rappresentano la realtà mediante gli agenti. Simulazione ad agenti Implementazione software dei modelli ad agenti ed analisi dei risultati emergenti. 4 Ambiti di utilizzo Scienze Sociali (Modello di segregazione di Schelling) Economia (Andamento della Borsa) Biologia (Propagazione dell’antrace nel corpo umano) Fisica (Fisica delle Particelle) Intelligenza Artificiale (Videogiochi, robots, ecc…) 5 Simulazione Multi-Agente distribuita La simulazione parallela/distribuita consente a un programma di simulazione di essere eseguito da più computer interconnessi. Vantaggi 1. Riduzione del tempo di esecuzione. 2. Fault tolerance. 6 MASON – Toolkit di simulazione multi-agente • Libreria scritta in Java per la modellazione di sistemi basati su agenti. • L’architettura di MASON si divide in due parti: - simulation model, che può essere eseguito da linea di comando - visualization toolkit, per analizzare e manipolare il modello. 7 Obiettivi del lavoro • Parallelizzare MASON per migliorarlo Permettere la simulazione di un numero maggiore di agenti. Eseguire la stessa simulazione in un tempo inferiore. Ottenere tutto ciò modificando il meno possibile il codice delle simulazioni in MASON. • Recuperare potenza di calcolo non utilizzata tramite l’utilizzo di macchine eterogenee. 8 Perché si è scelto MASON ? • E’ uno fra i più efficienti (in termini di velocità e di flessibilità) [Matthew Berryman-Review of Software Platforms for Agent Based Models-2008]. • E’ open-source. • La sua struttura a moduli permette un facile reengineering in chiave distribuita. • Un significativo numero di simulazioni già presenti da poter studiare. 9 Problematiche Distribuzione del carico di lavoro Sincronizzazione Riproducibilità della simulazione 10 Distribuzione del carico di lavoro • La distribuzione del carico di lavoro è ottenuta tramite il partizionamento del campo in celle: o AOI (area of interest) – raggio di interesse dell’agente. o Ogni entità del sistema distribuito esegue una o più celle. D-MASON una dimensione D-MASON due dimensioni MASON Suddivisione 11 Partizionamento del Campo • Si utilizzano concetti descritti in “Distributed Load Balancing for Parallel Agent-based Simulations [2011]” • L’agente α è interessato a tutti gli agenti nel suo raggio di interesse. • Per ogni passo i di simulazione gli agenti interagiscono con lo stato del campo al passo i-1. 12 Partizionamento del Campo • In D-MASON ogni agente si sposta da una cella all’altra e le interazioni avvengono in un sistema distribuito. • Il sistema provvederà all’aggiornamento del campo consentendo agli agenti di interagire in modo corretto. 13 Sincronizzazione e Comunicazione • Self-synchronization: il passo i della cella c utilizza gli stati dei passi i-1 delle celle del vicinato. • La sincronizzazione permette di mantenere coerente la simulazione. • La comunicazione è distribuita e utilizza il paradigma Publish/Subscribe (nel caso di D-MASON è utilizzato Java Message Service) 14 Architettura D-MASON • D-MASON si colloca nel secondo layer di MASON. • D-MASON dipende da MASON ma non è vero il contrario. • Le scelte architetturali effettuate seguono la necessità di mantenere lo sviluppo di applicazioni D-MASON evoluzione naturale di quelle in MASON. 15 Architettura D-MASON • In Util sono presenti tutti gli oggetti necessari ai vari layer. • In Field sono presenti le versioni distribuite dei campi di simulazione di MASON. • In Engine è presente il modello di simulazione e la definizione di agente. MASON • Per ogni elemento di MASON è fornita la controparte “distribuita” in D-MASON. dmason.Util dmason.Field dmason.Engine 16 Un framework per simulazione massiva distribuita basata su Agenti D-MASON: Applicazioni Dario Mazzeo 17 Struttura di un’applicazione D-MASON Campo distribuito della simulazione Agenti simulati Generatore di Numeri PseudoCasuali Simulato da Simulatore Worker 18 Agente Ri-localizzazione posizione e recupero del vicinato Stato della simulazione Visualizzazione Simulazione di una singola porzione del campo Visualizzazione di una singola porzione del campo Differenze MASON / D-MASON Il programmatore deve avere coscienza dell’ambiente distribuito solo per alcuni aspetti implementativi delle classi della simulazione 19 Differenze MASON / D-MASON MASON D-MASON • • Ogni agente è un Remote Agent, un’astrazione di un agente che vive e interagisce in un ambiente distribuito. • Ogni agente è di tipo Steppable permette di definire il comportamento dell’agente nel metodo step(). Un passo di simulazione eseguito dall’oggetto Schedule richiama ripetutamente il metodo step() di ogni agente. – Memorizza i dati necessari alla migrazione da un nodo all’altro. – Può essere schedulato solo per un passo, nel successivo bisogna considerare a quale cella appartiene. • DistributedSchedule è l’oggetto delegato all’esecuzione della simulazione distribuita : passo di simulazione – sincronizzazione & aggiornamento. 20 Differenze MASON / D-MASON MASON D-MASON • L’oggetto che rappresenta lo stato della simulazione è SimState: sono memorizzati i campi di simulazione contenitori di agenti o di informazioni. . • Lo stato della simulazione, l’oggetto DistributedState, aggiunge le informazioni per un ambiente distribuito: utilizza campi di simulazione distribuiti, identifica le celle e gestisce la loro sincronizzazione, inizializzando i campi con i particolari RemoteAgents. 21 Esecuzione MASON / D-MASON Modello di Studio Cella 0-0 Di D-MASON MASON 22 System Management D-MASON Client Console di gestione 23 System Management D-MASON 24 Testing D-MASON • Motivazioni – Capacità di eseguire simulazioni impraticabili con MASON eseguito su una singola macchina. – Capacità di sfruttare hardware eterogeneo. – Scalabilità del sistema in termini del numero di agenti e grandezza del campo. 25 Testing – Scalabilità di D-MASON • Il test confronta le prestazioni di MASON e di D-MASON. – I tempi di esecuzione al variare del numero di agenti e macchine del sistema distribuito. 7 HOST : Intel i7-2600 4x3,4GHz con HT 8GB RAM JVM 32 bit Avg simulation step timing (s) 14 12 10 8 6 Mason 4 DMason 2x2, (1,1,1,1) DMason 3x3, (2,2,2,2,1) 2 DMason 4x4, (3,3,3,3,2,2) 0 DMason 5x5, (4,4,4,4,3,3,3) 0 2000000 4000000 6000000 8000000 Agents 10000000 12000000 14000000 26 Testing D-MASON Il sistema eterogeneo utilizzato è composto dalle macchine: Macchina 1 Pentium 4 - 3,4 GHz - 2GB di RAM - Win XP 32bit Macchina 2 2 x Xeon - 2,67 GHz - 3GB di RAM - Win7 32 bit Macchina 3 2 x AMD Opteron 252 – 1.9 GHz - 4GB di RAM - Win 7 64bit Macchina 4 i5 2 x 2,53GHz con HT - 4GB di RAM - Win7 64bit Macchina 5 i7-2600 4 x 3,4GHz con HT - 8GB di RAM - Win7 64bit - Si confrontano i tempi di esecuzione di una particolare simulazione al variare del carico di lavoro di ogni macchina del sistema. - Il numero di agenti simulati è di 3 e 5 milioni. 27 Testing – Sistema Eterogeneo 3,000,000 Agents 5,000,000 Agents Avg simulation step timing (s) 20 19,65 15 12,70 11,87 10,75 9,88 10 11,48 9,16 9,15 7,43 7,24 6,25 5,61 5,65 5,52 5 0 (0,0,0,0,25) (1,1,1,1,21) (1,2,2,2,18) (1,2,2,3,17) (1,2,2,4,16) Configurations (P4, Xeon, Opt, I5,I7) (1,3,3,6,12) (5,5,5,5,5) 28 Punti di forza • D-MASON ottimizza l’uso di sistemi multi-core, permettendo di incrementare il numero di agenti simulabili rispetto a MASON. • D-MASON richiede mirate modifiche a simulazioni preesistenti in MASON. • D-MASON permette di sfruttare l’eterogeneità di un sistema non composto solo da macchine ad alte prestazioni (come nei laboratori di ricerca) 29 Sviluppi futuri • Visualizzazione grafica centralizzata • Load Balancing • Overlay P2P 30 31 Grazie per l’attenzione. 32
© Copyright 2024 ExpyDoc