Analisi di un ambiente simbolico per lo sviluppo di un compilatore parallelizzante

L'anteprima di questa tesi è scaricabile in PDF gratuitamente.
Per scaricare il file PDF è necessario essere iscritto a Tesionline.
L'iscrizione non comporta alcun costo. Mostra/Nascondi contenuto.

INTRODUZIONE 8 programma non alteri alcuna relazione di Input/Output originaria. Questa trasformazione è affidata ad uno strumento software, il compilatore parallelizzante, che, sulla scorta della analisi del programma in ingresso, rispettivamente l’Analisi del Flusso e l’Analisi di Dipendenza Dati, fornisce informazioni utili per l’individuazione di quali segmenti di programma sono eseguibili in parallelo (parallelismo implicito). In altre parole per l’annotazione del parallelismo ci si affida al compilatore, che procederà a scoprire i vincoli strutturali, le dipendenze, presenti in un programma che impediscono l’esecuzione in parallelo, ed a classificare questi vincoli ed infine, nei casi in cui è possibile, trasformare il programma (restructuring transformations), così che essi siamo rimossi. Ai fini del corretto utilizzo di questi strumenti è previsto un meccanismo di interazione con l’utente (user friendly tool), tutt’oggi i più moderni sistemi di compilazione (Parafrase2 [Gir90], SUIF [Hall96], Polaris [Blume96]) sono dotati di un vasto insieme di comandi ed opzioni (command line flags) e di sistemi per la visualizzazione grafica e manipolazione della rappresentazione intermedia [CFG99]. In particolare nel caso di sistemi di compilazione sorgente-sorgente, dove l’output prodotto consiste in una versione parallela del codice in cui il parallelismo è annotato in un formato che può essere riletto dallo stesso compilatore, l’utente è invogliato alla costruzione di un processo ciclico di compilazione, dove ad ogni passo, la parallelizzazione del programma è ulteriormente raffinata, attraverso la combinazione di conoscenze aggiuntive sulla struttura del programma, fornite dell’utente, e di tecniche di compilazione. I compilatori parallelizzanti sono utilizzati prevalentemente per la parallelizzazione di programmi sequenziali complessi, generalmente con un numero elevato di righe di codice, in quanto la loro riscrittura mediante l’ausilio di linguaggi di programmazione con costrutti paralleli sarebbe molto difficoltosa. Tuttavia la ristrutturazione automatica di programmi sequenziali non fornisce garanzie di miglioramento delle prestazioni; la qualità del codice ristrutturato può dipendere sia dalla struttura del programma da implementare sia dalla architettura della macchina su cui il programma

Anteprima della Tesi di Giancarlo Zaccone

Anteprima della tesi: Analisi di un ambiente simbolico per lo sviluppo di un compilatore parallelizzante, Pagina 2

Tesi di Laurea

Facoltà: Scienze Matematiche, Fisiche e Naturali

Autore: Giancarlo Zaccone Contatta »

Composta da 234 pagine.

 

Questa tesi ha raggiunto 685 click dal 03/10/2008.

Disponibile in PDF, la consultazione è esclusivamente in formato digitale.