Tesi di laurea su "Sviluppo di un Simulatore per sistemi multicore"

La tesi consiste nel progettare un programma per la simulazione
parallela di sistemi complessi, espressamente disegnato per sistemi
multicore di tipo NUMA.

Il simulatore sarà di tipo sincronizzato, ovvero verrà
definito un intervallo di tempo constante T, e ogni entità del sistema
evolve con un passo temporale pari a T. Tutti gli oggetti si
sincronizzano a intervalli di tempo pari a multipli di T. Lo stato di
ogni oggetto del sistema al tempo t+T viene calcolato a partire dallo
stato al tempo t, e nessun oggetto può calcolare il suo stato al tempo
t+T se prima non è stato stabilito lo stato di tutti gli oggetti del
sistema al tempo t. Il problema è che bisogna evitare un'unica
barriera di sincronizzazione, che su sistemi NUMA molto grandi (>32
core) è molto inefficiente, e invece una sincronizzazione
gerarchica. A tal proposito, sarà utile studiare la letteratura su
sincronizzazione distribuita.

Il linguaggio di programmazione sarà il C++. La durata stimata
della tesi sarà di 6-9 mesi. E' richiesta una buona conocscenza di
progettazione e programmazione ad oggetti.

Relatore: Prof. Giuseppe Lipari.