Testo progetto
Transcript
Testo progetto
Mandelbrot Progetto del corso di Calcolo Parallelo AA 2003-04 Salvatore Orlando CALCOLO PARALLELO - S. Orlando 1 CALCOLO PARALLELO - S. Orlando 2 Mandelbrot set • L’insieme di Mandelbrot è un frattale • I Frattali sono oggetti con caratteristiche di “self-similarity” quando ci muoviamo nella scala di rappresentazione – Ingrandendo un frattale scopriamo dettagli a piccola scala molto simili alle caratteristiche a scala più grande – Comunque i dettagli a piccola scala non sono identici all’insieme complessivo. • Il processo per generare i frattali è comunque estremamente semplice, e coinvolge un’equazione che tratta numeri complessi Maldelbrot set e numeri complessi • L’insieme di Mandelbrot è una collezione di numeri complessi. • Poiché i numeri complessi hanno due parti, per la loro rappresentazione grafica è utile impiegare un piano cartesiano bi-dimensionale. – Piano dei numeri complessi – I punti colorati sul diagramma rappresentano i numeri: [2 + 1i] [-1.5 + 0.5i] [2 - 2i] [-0.5 - 0.5i] [0 + 1i] [2 + 0i] • Abbiamo bisogno a test per determinare se un certo numero è dentro/fuori la collezione: – Il test per sapere se C appartiene alla collezione è basato sull’equazione Z = Z2 + C – Z all’inizio è posto uguale a zero – Ad ogni iterazione creiamo un nuovo Z CALCOLO PARALLELO - S. Orlando 3 CALCOLO PARALLELO - S. Orlando 4 Mandelbrot set e test di appartenenza • Non siamo intessati al valore di Z, ma al suo modulo |Z| “Distanza da zero” • Durante le varie iterazioni Z cambia e così il suo modulo – o |Z| rimane uguale o minore di 2 per sempre – o |Z| alla fine supera 2 e da quel momento cresce indefinitamente • Quando il modulo di Z supera 2 – Il numero non fa parte dell’insieme di Mandelbrot Rappresentazione grafica • Se testiamo molti numeri e visualizziamo come punti neri nel piano complesso solo quelli che fanno parte dell’insieme di Mandelbrot otteniamo un’immagine come quella a lato • Possiamo anche colorare l’immagine – I colori si aggiungono ai punti non appartenenti all’insieme – I colori differiscono in base a quante iterazioni sono richieste prima che |Z| superi 2 CALCOLO PARALLELO - S. Orlando 5 Requisiti del progetto • Parallelizzazione del codice sequenziale sia in MPI che PVM – Master/slave – Senza/con creazione dinamica dei task • Modello delle prestazioni (vedi lezione), con analisi delle prestazioni sul campo (tempo medio di computazione, tempo di comunicazione, ecc.) – Su macchine scariche, comparazione tra performance prevista e misurata – Con o senza bilanciamento del carico CALCOLO PARALLELO - S. Orlando 6 Requisiti del progetto • Analisi sperimentale di metodi di scheduling agli slave per bilanciare il carico, minimizzando gli overhead – Vedi ad esempio l’articolo su “Weighted Factoring” come metodo di “chuncking” del lavoro assegnato ai vari task – Valutare qualche metodo sia su macchine cariche (caricate artificialmente) che scariche CALCOLO PARALLELO - S. Orlando 7 Requisiti del progetto • Costruire una shell per lanciare mandelbrot in parallelo – Allocazione di risorse, launch del job, attesa del completamento del job – Alla shell deve essere noto, che per vari size del problema, la quantità massima di nodi da allocare – La shell deve individuare, sulla base del carico attuale delle macchine del Lab, il miglior insieme di risorse su cui eseguire CALCOLO PARALLELO - S. Orlando 8 Allocatore di risorse • La shell deve conoscere lo stato delle varie risorse per poter scegliere le più veloci/scariche • Per permettere un monitoring delle risorse, sulle macchine del laboratorio abbiamo istallato – Network Weather Service (NWS) – E’ costituito da un insieme di daemon per monitorare e prevedere le prestazioni di un sistema distribuito (reti & CPU) – I daemon possono essere fatti partire in background anche da semplici utenti (non root) • % nohup nome_daemon -parameters CALCOLO PARALLELO - S. Orlando 9 Architettura di NWS • Daemon che compongono NWS – Processo Persistent State • Memorizza, accede e restituisce le misure dalla memoria persistente • Processi Sensori – Raccolgono misure sulle risorse monitorate • Processo Name Server – Serve come al solito per collegare nomi di processi logici con informazioni di basso livello per poter contattare i vari daemon • Processo Forecaster – Produce un valore di predizione della performance CALCOLO PARALLELO - S. Orlando 10 Architettura del sistema CALCOLO PARALLELO - S. Orlando 11 CPU Sensor • Tra i vari daemon, quello che più ci interessa è il CPU Sensor, da far partire su ogni macchina: – Combina informazioni ottenute da utility UNIX come uptime e vmstat, con anche “active probes” periodici – Active probes • Esecuzione di un programma “probe” artificiale (compute-intensive) • E’ possibile non usare NWS, basandosi su semplici informazioni raccolte con uptime – In un ambiente eterogeneo, è necessario considerare oltre al carico (quello “passato”, anche il tipo di CPU – In pratica dobbiamo inventarci una funzione di forecaster basata sulla conoscenza di informazioni • Statiche (tipo di risorsa) • Dinamiche sul passato (carico passato della risorsa) CALCOLO PARALLELO - S. Orlando 12