Tesi di laurea specialistica di Alessandro Bria Anno Accademico 2009-2010 Relatore: Prof. Alfredo GermaniCorrelatore: Prof. Giulio Iannello.

Slides:



Advertisements
Presentazioni simili
Programmazione ad oggetti
Advertisements

CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione.
1 Introduzione ai calcolatori Parte II Software di base.
Gestione della memoria centrale
MODULO 4 – Il Foglio elettronico
Modulo 1 – Ambiente di lavoro Windows 7
Classe III A A.s – 2011 Sistemi di Elaborazione e Trasmissione dell’Informazione 4 ore settimanali (2 laboratorio) Docenti Prof. Alberto Ferrari.
Array multidimensionali
Procedure e funzioni A. Ferrari.
L’oscillatore digitale
POLITECNICO DI MILANO Politecnico di Milano A.A. 2005/06 MECCANISMI DI SINCRONIZZAZIONE PER SISTEMI MULTIPROCESSORE BASATI SUL DISPOSITIVO D740 Candidato:
Massa Laura Mela Enrica
UNIVERSITA DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Progetto e sviluppo di.
SINCRONIZZAZIONE E TRASFERIMENTO VIA WEB DI IMMAGINI E DATI MULTIMEDIALI CON INFORMAZIONI GEOGRAFICHE E RAPPRESENTAZIONI CARTOGRAFICHE Laureando: Mitja.
Anno accademico Le classi di memorizzazione.
Introduzione al calcolo parallelo SISTEMI INFORMATIVI AZIENDALI Pierpaolo Guerra Anno accademico 2009/2010.
Dense Matrix-Matrix Multiplication in Parallel
Funzioni definite dall’utente
Algoritmi Paralleli e Distribuiti a.a. 2008/09
File.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Disco magnetico (2) Ciascuna traccia è divisa in settori
Corso di Informatica Applicata - Lezione 3 - © 2005 Saverio De Vito Corso di Informatica Applicata Lezione 3 Università degli studi di Cassino Corso di.
Struttura dei sistemi operativi (panoramica)
Analisi delle corrispondenze
memoria gestita staticamente:
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
Corso di Laurea in Ingegneria per lAmbiente e il Territorio Informatica per lAmbiente e il Territorio Docente: Giandomenico Spezzano Tutor: Alfredo Cuzzocrea.
Sistemi Operativi GESTIONE DEI PROCESSI.
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
Fondamenti di Informatica1 Ripetizioni di segmenti di codice Spesso è necessario ripetere più volte uno stesso segmento dell'algoritmo (e.g. I/O, elaborazioni.
Fondamenti di Informatica1 Software di base Tra il linguaggio macchina (basso livello) e i linguaggi evoluti (alto livello) esiste uno strato di software.
SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (alla lettera, ferramenta). La struttura.
Progetto di una architettura per lesecuzione distribuita e coordinata di azioni Progetto per lesame di Reti di Calcolatori L-S Prof. Antonio Corradi Finistauri.
Reti di Calcolatori L-S Un Sistema Decentrato di Allocazione del Carico per Applicazioni di Calcolo Distribuito Mauro Bampo.
Meteo Service Corso di Reti di Calcolatori LS Casarini Stefano matr
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Università Politecnica delle Marche
Quale valore dobbiamo assumere come misura di una grandezza?
Posizionamento Come posizionare gli elementi HTML nella pagina web e come JavaScript può muoverli cambiando la loro posizione nel tempo.
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria “Enzo Ferrari” – Sede di Modena Corso di Laurea Specialistica in Ingegneria Informatica.
U N INFRASTRUTTURA DI SUPPORTO PER SERVIZI DI FILE HOSTING Matteo Corvaro Matricola Corso di Reti di Calcolatori LS – Prof. A. Corradi A.A.
Architettura del calcolatore
Seconda Università degli Studi di Napoli Facoltà di Economia Corso di Informatica Prof.ssa Zahora Pina.
Il Sistema Operativo (1)
Daniele Marini, Maurizio Rossi
1 Lucidi delle esercitazioni di Sistemi di Elaborazione in Rete Università degli Studi della Calabria Corso di Laurea in Ingegneria Gestionale A.A. 2003/2004.
Presentazione del problema Obiettivo: Lapplicazione di Search of Sematic Services permette di ricercare sevizi semantici, ossia servizi a cui sono associati.
UNIVERSITÀ DI PISA FACOLTÀ DI INGEGNERIA CORSO DI LAUREA SPECIALISTICA IN INGEGNERIA INFORMATICA PER LA GESTIONE D’AZIENDA Tesi di laurea: Progettazione.
Stima del flusso ottico per il controllo dei movimenti oculari
1 Il Sistema Operativo: Esempio n Le operazioni effettuate sembrano abbastanza semplici ma … n Provocano una serie di eventi in cui vengono coinvolte sia.
I processi.
Migliorare le prestazioni delle cache
Clicca e vai..buona navigazione. Conoscere Mind Manager Per iniziare La barra della mappa La barra della formattazione Mappa della formattazione avanzata.
1 Gestione della Memoria. 2 Idealmente la memoria dovrebbe essere –grande –veloce –non volatile Gerarchia di memorie –Disco: capiente, lento, non volatile.
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Sistema operativo Il Sistema Operativo gestisce le risorse hw e sw del sistema di elaborazione Facilita l'interazione tra utente e sistema Esistono diversi.
Reti di calcolatori LS1 Service Middleware Reti di calcolatori LS progetto di Andrea Belardi Infrastruttura dedicata alla gestione di servizi disponibili.
Alex Marchetti Infrastruttura di supporto per l’accesso a un disco remoto Presentazione del progetto di: Reti di calcolatori L-S.
1 1. Introduzione alla gestione della memoria 2. Swapping 3. Memoria virtuale 4. Implementazione 5. Algoritmi di sostituzione Gestione della Memoria.
SnippetSearch Database di snippet bilanciato e replicato di Gianluigi Salvi Reti di calcolatori LS – Prof. A.Corradi.
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
INTRODUZIONE AI SISTEMI OPERATIVI. Introduzione Il software può essere diviso un due grandi classi: Il software può essere diviso un due grandi classi:
L’analisi di regressione e correlazione Prof. Luigi Piemontese.
Il modello di Von Neumann
© 2015 Giorgio Porcu - Aggiornamennto 27/11/2015 I STITUTO T ECNICO SECONDO BIENNIO T ECNOLOGIE E P ROGETTAZIONE Il Sistema Operativo Gestione del File.
Transcript della presentazione:

Tesi di laurea specialistica di Alessandro Bria Anno Accademico Relatore: Prof. Alfredo GermaniCorrelatore: Prof. Giulio Iannello

2/33 Sommario Il progetto Obiettivi del lavoro di tesi Introduzione al problema Architettura Diagramma delle classi Fase di importazione dei dati Fase di allineamento Fase di fusione Implementazione sequenziale Architettura Ipotesi di lavoro Parallelizzazione dell’importazione dei dati Parallelizzazione dell’allineamento Parallelizzazione della fusione Risultati Implementazione parallela

3/33 Il progetto (1/2) Rete neurale in formato vettoriale ACQUISIZIONE campione di tessuto di cervelletto murino ELABORAZIONE Obiettivo del progetto: combinare le metodiche più avanzate di microscopia ottica e di analisi di immagine per sviluppare un'innovativa tecnica ad alta risoluzione, capace di risolvere piccoli dettagli neuroanatomici del cervelletto murino e ricostruirne la rete neurale. ricostruzione deconvoluzione visualizzazione 3D riconoscimento sbiancamento dei tessuti fluorescenza ultramicroscopia costruzione dell’ultramicroscopio

ELABORAZIONE 4/33 Il progetto (2/2) Ricostruzione (allineamento + fusione) Ricostruzione (allineamento + fusione) Deconvoluzione Visualizzazione 3D Segmentazione e riconoscimento ACQUISIZIONE Z Y X Stato attuale di avanzamento Disallineamenti sovrapposizione Disallineamenti e sovrapposizione convenzione stack slice

5/33 Obiettivi del lavoro di tesi RICOSTRUZIONE FusioneFusione sequenziale 1. Implementazione sequenziale della fase di ricostruzione gestione dell’occupazione spaziale in RAM delle immagini 3D (un singolo stack occupa 1-10 GB) minimizzazione dell’I/O minimizzazione del tempo di esecuzione dei calcoli in virgola mobile parallela 2. Implementazione parallela della fase di ricostruzione scalabilità dell’applicazione architettura gestione della comunicazione tra i processi per lo scambio di dati AllineamentoAllineamento CROSS CORRELAZIONE CONTROLLO COORDINATE ASSOLUTE ACQUISIZIONE DECONVOLUZIONE Importazione dei dati

6/33 Implementazione sequenziale: architettura software Un solo modulo eseguibile che funziona secondo due modalità: 1) interattiva 1) interattiva: possibilità di eseguire singolarmente ciascuna sottofase della ricostruzione e di personalizzare alcuni parametri; 2) parametrica 2) parametrica: si esegue l’intera ricostruzione a partire da un file dei parametri fornito dall’utente. 1 2

7/33 Implementazione sequenziale: diagramma delle classi N ROW x N COL memorizza 1 usa triple +x: int +y: int +z: int memorizza 1 * StackOrganizer +StackOrganizer(path): StackOrganizer +getMACHINE(): string +[…] +getSTACK_2DARRAY(): stack** +print(): void +loadStackFromDIR(dir_path): void +loadStackFromXML(xml_file_path): void +saveStackToXML(xml_file_path): void +insertCorrespondence(…): void +loadAllTIFFFilesLists(…): void +clearAllTIFFFilesLists(…): void +checkAlignments(…): bool +computeAllAbsCoordinates(): void -MACHINE: string -ID: int -CREATION_DATE: string -DESCRIPTION: string -ABS_REF_X, ABS_REF_Y, ABS_REF_Z: string -VOXEL_X, VOXEL_Y, VOXEL_Z: string -N_PIXEL_X, N_PIXEL_Y: string -N_STACK_ROWS, N_STACK_COLUMNS: int -N_SLICES: int -STACK_2dARRAY: stack** -TOP_X_COORD, BOTTOM_X_COORD, LEFT_Y_COORD, RIGHT_Y_COORD, START_Z_COORD, END_Z_COORD: int #RC: 1174 StackProcessor -generateHomotheticTriple(…): triple -smooth(…): REAL_T +processStacks(…): void +computeParallelepipedonCoordinates(…): void +mergeSlicesRow(…): REAL_T* +mergeAllStacks(): void #RC: 816 Stack +Stack(…): Stack +getCONTAINER(): void* +[…] +getIMAGE_STACK(): REAL_T* +insertToNORTH(…): void +insertToEAST(…): void +insertToSOUTH(…): void +insertToWEST(…): void +loadTIFFFilesList(): void +clearTIFFFileList(): void +load3DStack(first_file, last_file): REAL_T* +deallocate3DStack(): void +computeAbsoluteCoordinates(): void -CONTAINER: StackOrganizer* -ROW_INDEX, COLUMN_INDEX: int -DIR_name: string -ABS_PATH: string -NORTH,EAST,SOUTH,WEST: list -FILES: vector -ABS_X_COORDINATE, ABS_Y_COORDINATE, ABS_Z_COORDINATE: int -IMAGE_STACK: REAL_T* #RC: 347 TIFFManager +save16bitGrayscaleTIFF (…): void +savePortion16bitGrayscaleTIFF (…): void +loadTIFFStackToREAL_T (…): REAL_T* #RC: 404 libcrossmips #RC: 645 usa tinyxml libtiff

8/33 Implementazione sequenziale: importazione dei dati (1/2) Obiettivo primario Obiettivo primario: passare da un’organizzazione dell’input in cartelle e file ad una gerarchia di oggetti predisposti per le fasi successive di allineamento e fusione. StackOrganizer StackOrganizer -rappresenta l’intera acquisizione -gestisce importazione ed esportazione dei metadati (globali + locali dei singoli stack) Stack Stack -rappresenta il generico stack metadati locali -contiene metadati locali (nomi dei file, percorsi delle cartelle, coordinate, liste di allineamenti con stack adiacenti, ecc.) TIFFManager -gestisce lettura in RAM delle immagini dello stack interfacciandosi con TIFFManager StackOrganizer TIFFManager N ROW x N COL Stack 1 usa memorizza libtiff usa

9/33 Implementazione sequenziale: importazione dei dati (2/2) Obiettivo secondario XML Obiettivo secondario: consentire in qualunque momento (soprattutto tra le sottofasi di allineamento e fusione) di esportare/importare i metadati in formato XML StackOrganizer TIFFManager N ROW x N COL Stack 1 usa memorizza libtiff usa DTDXML liste di allineamenti metadati globali metadati locali

10/33 Implementazione sequenziale: allineamento (1/7) Il problema ΔxΔyΔz Trovare i posizionamenti Δx, Δy e Δz per ogni coppia di stack adiacenti posizionamenti tra due immagini 3D O 1)Primo sottoproblema: trovare i posizionamenti tra due immagini 3D parzialmente sovrapposte di circa O (fattore di sovrapposizione) sul piano XY ; occupa- zione in memoria caricare 1 sola volta in RAM ciascuna immagine 2D 2)Secondo sottoproblema: gestire l’occupa- zione in memoria (un singolo stack occupa 1-10 GB) avendo la possibilità di caricare 1 sola volta in RAM ciascuna immagine 2D.

Maximum Intensity Projection 11/33 Implementazione sequenziale: allineamento (2/7) cross-correlazione tra due stack sottoproblema #1: cross-correlazione tra due stack libcrossmips #RC: 645 Y Z X MIP XZ MIP YZ MIP XY delay(Δ) regione di ricerca

Implementazione sequenziale: allineamento (3/7) strategia di caricamento degli stack sottoproblema #2: strategia di caricamento degli stack Y X E-W S-N E-W S-N E-W S-N E-W Occupazione spaziale massima 12/33 Numero di caricamenti in RAM per ciascuna immagine Numero di caricamenti in RAM per ciascuna immagine : E-W S-N

1)Per ogni coppia di stack adiacenti ci sono più posizionamenti, che dovrebbero essere coerenti fra di loro (ridondanza in Z) 2)In ogni quadrato di stack adiacenti, i posizionamenti reciproci non sono indipendenti fra di loro (ridonzanza in XY) Implementazione sequenziale: allineamento (4/7) Controllo degli allineamenti W-E /33

Y X 2 Implementazione sequenziale: allineamento (5/7) Calcolo delle coordinate assolute in pixel 14/33 1)livello locale: ogni oggetto Stack calcola le sue coordinate assolute a partire da quelle del vicino di sinistra (se esiste, oppure di quello a nord) e dai posizionamenti relativi. Per lo stack (0,0) si fissa X=Y=Z=0. 2)livello globale: si scansiona la matrice di oggetti Stack per righe successive, in maniera tale che a livello locale sia sempre possibile accedere al vicino di sinistra oppure a quello a nord (se siamo sulla prima colonna). 1

1) Il modello di costo adottato approssima bene il tempo totale di esecuzione: 2) La strategia di caricamento degli stack, su dataset reali, satura la RAM per n z >300 Implementazione sequenziale: allineamento (6/7) Risultati (1/2) 15/ Pericolo saturazione RAM

trade-off 3)Il tempo di esecuzione dei calcoli in virgola mobile ( T FP ) è inversamente proporzionale ad n z, ma per n z >300, con dataset reali, si può saturare la RAM (trade-off) 4) Il parametro Δ è quello a cui T FP è maggiormente sensibile, con un andamento di ordine quadratico Implementazione sequenziale: allineamento (7/7) Risultati (2/2) 16/33 4 3

Implementazione sequenziale: fusione (1/8) Il problema 17/33 allineare salvare l’acquizione 1)Noti gli allineamenti, è necessario allineare le immagini e salvare l’acquizione senza zone di sovrapposizione -minimizzazione dell’I/O -gestione della RAM -gestione di tutte le possibili configurazioni di posizionamento smoothing 2)A causa di differenze di luminosità, contrasto, messa a fuoco, ecc., è necessario operare uno smoothing per rendere graduale il passaggio da un’immagine all’altra lungo la direzione di sovrapposizione 1 2

Implementazione sequenziale: fusione (2/8) Lo smoothing lineare 18/33

Implementazione sequenziale: fusione (3/8) Soluzione semplificata 19/33 smoothing bidimensionale -alcune aree necessitano di smoothing bidimensionale -difficile gestire tutte le possibili configurazioni per piani XY lungoZ 1)si procede per piani XY successivi lungo Z smoothing lineari 2)si eseguono solo smoothing lineari in Y (creazione delle stripe) ed X (fusione tra stripe)

Implementazione sequenziale: fusione (4/8) Smoothing lungo Y: creazione di una stripe 20/33 1. si alloca una tantum l’intero spazio di memoria per la stripe, di cui si conoscono larghezza (uguale per tutte) ed altezza calcolata come x min -x max 2. si carica in memoria la prima slice e si copia la sua zona di non sovrapposizione nella stripe risultato; 3. si carica in memoria la seconda slice; 4. per la coppia di slice in memoria si considerano due differenti zone: zona di sovrapposizione: si esegue lo smoothing lineare lungo Y; zona di non sovrapposizione: si copiano semplicemente i pixel della seconda immagine. 5. si dealloca la prima slice; 6. si carica in memoria la terza slice; 7. per la coppia di slice in memoria si procede come al punto 4; 8. …e così via

Implementazione sequenziale: fusione (5/8) Smoothing lungo X: fusione tra stripe e salvataggio 21/33 1. si alloca un buffer di larghezza pari a quella di tutte le stripe ad altezza pari a quella delle nuove immagini da salvare; Ci troviamo ad un generico livello Z: il procedimento va quindi ripetuto per tutti i livelli Z significativi.YX

Implementazione sequenziale: fusione (5/8) Smoothing lungo X: fusione tra stripe e salvataggio 21/33 2. si carica stripe 1 come fusione della prima riga e si copia la sua zona di non sovrapposizione nel buffer;

Implementazione sequenziale: fusione (5/8) Smoothing lungo X: fusione tra stripe e salvataggio 21/33 3. si carica stripe 2 come fusione della seconda riga;

Implementazione sequenziale: fusione (5/8) Smoothing lungo X: fusione tra stripe e salvataggio 21/33 4. si esegue lo smoothing lungo X della zona di sovrapposizione di stripe 1 con stripe 2 e si trasferisce il risultato nel buffer

Implementazione sequenziale: fusione (5/8) Smoothing lungo X: fusione tra stripe e salvataggio 21/33 5. Si trasferisce nel buffer la zona di non sovrapposizione tra stripe 1 e stripe 2

Implementazione sequenziale: fusione (5/8) Smoothing lungo X: fusione tra stripe e salvataggio 21/33 6. Quando il buffer è pieno, viene diviso per la larghezza delle nuove immagini e si salvano le immagini così ottenute rispettando la convenzione adottata;

Implementazione sequenziale: fusione (5/8) Smoothing lungo X: fusione tra stripe e salvataggio 21/33 7. Si riparte dal punto in cui ci si era interrotti, sovrascrivendo i vecchi valori dello stesso buffer;

Implementazione sequenziale: fusione (5/8) Smoothing lungo X: fusione tra stripe e salvataggio 21/33 8. Si dealloca stripe 1 e si carica stripe 3 come fusione della terza riga; …e così via Occupazione spaziale massima Numero di caricamenti in RAM per ciascuna immagine Numero di caricamenti in RAM per ciascuna immagine : 1

Implementazione sequenziale: fusione (6/8) Risultati (1/3) 22/33

Implementazione sequenziale: fusione (7/8) Risultati (2/3) 23/33 1) Il modello di costo adottato non tiene conto delle copie delle zone di non sovrapposizione, tuttavia la maggior parte del tempo è ancora speso per l’I/O e per le operazioni floating point; 2) L’occupazione spaziale massima di memoria è molto ridotta e decresce lentamente all’aumentare di O; 1 2

Implementazione sequenziale: fusione (8/8) Risultati (3/3) 24/33 3) Il tempo di esecuzione dei calcoli in virgola mobile è sostanzialmente proporzionale ad O, nonostante la presenza del termine quadratico nella formula di costo: 3a 3b

Implementazione parallela: architettura 25/33 MIMD 1) Architettura MIMD (Multiple Instruction stream Multiple Data): ogni processore legge le proprie istruzioni ed opera sui propri dati multicomputer a memoria distribuita message passing - sottoclasse multicomputer a memoria distribuita: ogni processore ha la sua memoria e comunica con gli altri mediante message passing COW - sottoclasse COW (Cluster Of Workstations): computer commerciali separati collegati in rete SPMD 2) Modello SPMD (Single Program Multiple Data): stesso programma per tutti i processi

Implementazione parallela: ipotesi di lavoro 26/33 distribuzione dei dati 1) La distribuzione dei dati è ottenuta mediante suddivisione dell’acquisizione lungo l’asse Z in tanti sottovolumi quante sono le workstation; ordinamento tra i processi 2) Esiste un ordinamento tra i processi, ovvero il processo P i possiede il sottovolume i+1 dell’acquisizione; API standard MPI-1 3) Si utilizza l’API standard MPI-1 per il message passing, in particolare attraverso l’implementazione MPICH2.

Implementazione parallela: importazione dei dati 27/33 Il generico processo P i sa di possedere il sottovolume i+1 dell’acquisizione, ma non conosce esattamente l’intervallo Z di slice a cui fa riferimento, perché non conosce il numero esatto di slice degli altri processi. comunicazione collettiva Una comunicazione collettiva rende ogni processo consapevole del numero di slice degli altri processi, per cui ciascuno può calcolare l’intervallo Z di slice a cui fa riferimento. La versione parallela dell’importazione dei dati consiste nella corrispondente versione sequenziale più una piccola porzione di codice in cui si utilizzano le funzioni MPI per rendere ogni processo consapevole dell’esatta porzione di dati a cui fa riferimento.

Implementazione parallela: allineamento 28/33 controllo locale Ogni processo esegue un controllo locale degli allineamenti e calcola le coordinate assolute nello spazio globale, ma non è assicurato che queste siano uguali per tutti i processi. comunicazione molti-a-uno master 1)tramite una comunicazione molti-a-uno, tutti i processi inviano ad un processo master le loro coordinate assolute, il quale controlla che siano uguali; comunicazione uno-a-molti master 2)tramite una comunicazione uno-a-molti, il processo master comunica agli altri processi l’esito del suo controllo. La versione parallela dell’allineamento consiste nella corrispondente versione sequenziale con l’aggiunta di un controllo globale delle coordinate assolute. 1 2

Implementazione parallela: fusione (1/2) 29/33 Punto di vista del singolo processo

Implementazione parallela: fusione (2/2) 30/33 Punto di vista dell’insieme dei processi

1)Singola workstation con 8 processori ed unico hard disk - Conflitti in I/O → aumento dell’I/O al crescere del numero dei processi - Interferenze tra i processi - Interferenze tra i processi nell’accesso al sottosistema di memoria → sincronizzazione nelle regioni di processamento dei dati mediante inserimento di barriere valutazione preliminare scalabilità 2)Possibilità di dare una valutazione preliminare alla scalabilità dell’applicazione 3)Suddivisione bilanciata dei dati tra i processi e test con 2 fino ad 8 processori Implementazione parallela: risultati (1/3) 31/33 Ipotesi di lavoro ed obiettivi dei test PN z (P 1 )N z (P 2 )N z (P 3 )N z (P 4 )N z (P 5 )N z (P 6 )N z (P 7 )N z (P 8 )

Implementazione parallela: risultati (2/3) 32/33 Valutazione preliminare della scalabilità dell’applicazione 1 2

Implementazione parallela: risultati (3/3) 33/33 Conclusioni 1. alla luce dell’interferenza che esiste tra i processi in esecuzione sulla stessa macchina, con la parallelizzazione della fase di allineamento abbiamo ottenuto l’effetto desiderato dal punto di vista della scalabilità. del 90% rispetto alla versione sequenziale I risultati sono incoraggianti per il futuro e rendono concreta la possibilità di abbattere il tempo di esecuzione dell’allineamento tra stack anche oltre del 90% rispetto alla versione sequenziale, utilizzando un numero relativamente basso di workstation (6-8). 2. la parallelizzazione della fase di fusione mostra, in assenza di comunicazioni tra i processi, effetti positivi dal punto di vista della scalabilità.