La tesi o stage è finalizzata all’ottimizzazione di una libreria Python, inizialmente concepita per l’insegnamento “Fuzzy Systems and Evolutionary Computing” del Corso di Laurea Triennale Inter-Ateneo in “Artificial Intelligence” e disponibile su GitHub all’indirizzo: https://github.com/AndreaCampagner/Fuzzy-Systems-and-Evolutionary-Computing. Scopo del lavoro sarà il profiling e studio della libreria summenzionata, al fine di individuare bottleneck (in particolar modo per quanto riguarda le parti relative ad Evolutionary Computing), nonché la sua parziale re-implementazione al fine di ottimizzare tempi di esecuzione e occupazione di memoria. Possibili soluzioni di ottimizzazione da considerare nello svolgimento del lavoro riguardano:
- Parallelizzazione del codice di esecuzione degli algoritmi di Evolutionary Computing
- Re-implementazione parziale della libreria (per quanto riguarda i principali bottleneck di esecuzione) in Cython
- Re-implementazione parziale della libreria utilizzando tecniche di GPGPU computing
PREREQUISITI
- Il candidato deve avere conoscenze di Python (Livello Programmazione 1-2)
- (Preferibilmente) Conoscenze di sistemi concorrenti, paralleli e distribuiti e ottimizzazione codice
OBIETTIVI FORMATIVI
- Lo stage o tesi permetterà al candidato di acquisire una solida competenza nello sviluppo Python, incluso l’ecosistema di Data Science (numpy, scipy, scikit-learn).
- Lo stage o tesi permetterà al candidato di acquisire una competenza nelle basi dell’evolutionary computing, con particolare riferimento ad algoritmi genetici e altri approcci population-based.
- Lo stage o tesi permetterà al candidato di acquisire una solida competenza nell’ambito del profiling ed ottimizzazione di codice, unitamente a conoscenze di base di optimized and high-performance computing.
DURATA DELLO STAGE E CONTESTO RACCOMANDATO
- Adatto a: Tesi di Laurea Magistrale (Preferibile) o Stage di Laurea Triennale in Informatica
- Durata: 3 mesi (stage)
MODALITA’ E ORARI DI LAVORO
- Modalità di lavoro: da remoto, con frequenti riscontri via mail e occasionali incontri di persona.
- Ore di lavoro: non fissate, ma generalmente ci saranno degli obiettivi settimanali da raggiungere.
CONTATTI
- Andrea Campagner, andrea.campagner@unimib.it
- Davide Ciucci, davide.ciucci@unimib.it