welcome: please sign in

Cerca

Link Dipartimentali

Link Esterni

Temi di tesi e stage - Donato D'Ambrosio

OpenCAL

OpenCAL è una libreria per il calcolo numerico basata sul paradigma computazionale degli Automi Cellulari. OpenCAL è, infatti, l'acronimo di Open Cellular Automata Library ed è un progetto nato e sviluppato presso il Dipartimento di Matematica e Informatica dell'Università della Calabria dal sottoscritto, in collaborazione col Prof. William Spataro e alcuni giovani talenti del Dipartimento stesso.

La libreria è scritta in linguaggio C per garantire la massima efficienza e portabilità. Allo stadio di sviluppo attuale, la versione sequenziale della libreria è quasi completa e consente l'implementazione di automi cellulari 2D e 3D. Sono, in fase di sviluppo avanzata anche due versioni parallele per l'esecuzione su CPU, sviluppata in OpenMP, e su GPU, sviluppata in OpenCL. La prima è nota come OpenCAL-OMP, mentre la seconda come OpenCAL-CL. E' in fase di sviluppo anche un sistema visualizzazione 2D e 3D in OpenGL Legacy e di un'interfaccia grafica minimale in GLUT (freeglut). Con OpenCAL-GL si identifica la parte visuale della libreria.

Possibili temi legati a OpenCAL sono elencati di seguito. Altri temi possono comunque essere definiti in accordo col tesista per soddisfare eventuali propensioni e/o preferenze del tesista stesso.

Riduzione delle ridondanze nel codice sorgente di OpenCAL

La scelta del linguaggio C per lo sviluppo di OpenCAL ha garantito una considerevole efficienza computazionale ma è anche stata causa di un consistente livello di ridondanza del codice sorgente. Diversi approcci, basati ad esempio sull'uso delle macro del linguaggio C, possono essere analizzati e utilizzati per la riduzione di tale ridondanza. E' inoltre possibile ricondurre l'implementazione della parte 2D della libreria a un caso particolare della versione 3D, dove la terza dimensione è preimpostata a uno. In quest'ultimo caso, è richiesta un'analisi delle prestazioni per valutare un eventuale degrado delle performance computazionali.

Miglioramento delle performance computazionali della versione OpenMP di OpenCAL

La tesi consiste nella revisione dell'attuale implementazione della versione OpenMP di OpenCAL al fine di migliorare lo speed-up su sistemi di calcolo a memoria condivisa basati su CPU.

Miglioramento delle performance computazionali della versione OpenCL di OpenCAL

La tesi consiste nella revisione dell'attuale implementazione della versione OpenCL di OpenCAL al fine di migliorare lo speed-up su sistemi di calcolo a memoria condivisa basati su GPU.

Porting di OpenCAL-GL in OpenGL 3.0 (o versione successiva)

Nel 2008 è stata rilasciata la version 3.0 di OpenGL. A partire da questa versione, molte delle funzioni e delle costanti OpenGL delle versioni precedenti sono state dichiarate deprecate. Le versioni precedenti alla 3.0 sono pertanto dette legacy. La tesi consiste nel porting di OpenCAL-GL da OpenGL legacy a OpenGL versione 3.0 (o successiva).

Sviluppo di una versione parallela per cluster di computer in MPI di OpenCAL

La tesi consiste nell'implementazione di OpenCAL in MPI (Message Passing Interface), al fine di poter distribuire il carico computazionale su calcolatori interconessi su rete.

Binding di OpenCAL per altri linguaggi di programmazione (ad esempio C++, Pyton, Fortran, Java)

La tesi consiste nello sviluppo di uno o più binding di OpenCAL per altri linguaggi di programmazione, quali il C++, Pyton, Fortran e Java.

Applicazione della libreria OpenCAL per l'implementazione di modelli numerici complessi

La tesi consiste nell'implementazione di un modello numerico complesso con OpenCAL. Possibili ambiti applicativi possono riguardare la biomedicina, la geofisica e l'ingegneria ambientale. Questa tesi si svolgerà in collaborazione con esperti dell'ambito applicativo.

Compilazione dei sorgenti di OpenCAL con Autotools e pacchettizazione per le maggiori distribuzioni Linux/Unix

La tesi consiste nell'applicazione degli strumenti Autotools per la compilazione dei sorgenti di OpenCAL col metoto configure-make-make install e nella pacchettizazione della libreria stessa per le maggiori distribuzioni Linux/Unix, per esempio Debian.

Stage aziendali

In ambito aziendale, possibili stage possono essere volte presso le seguenti società: