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