Programmazione di Sistemi Multicore

Corso di Laurea in Informatica, terzo anno

A.A. 2019-2020, primo semestre

Docente: Michele Martinelli

Ricevimento: per appuntamento al termine del corso.
E-mail: michele.martinelli AT uniroma1.it

Orario delle lezioni

GiornoOreAula
Martedì 16-19 Aula 1 - Via del Castro Laurenziano 7A
Giovedì 16-18 Aula 1 - Via del Castro Laurenziano 7A

Avvisi

L'appello straordinario si terrà il 27 ottobre 2020 alle 16 in modalità telematica secondo le modalità che verranno comunicate via email dal docente (probabilmente si utilizzerà la piattaforma Exam.net + SEB).


RISULTATI appello 4 febbraio 2020: voti_appello_4feb2020.pdf

RISULTATI prima sessione gennaio 2020

1920_voti_finali_esame_completo_gennaio_2020.pdf

1920_voti_finali_esoneri_gennaio_2020.pdf

in data 26 novembre 2019 sono stati presentati i progetti (li trovate nelle slide del diario delle lezioni) da svolgere in gruppo (fino a massimo 5 persone) o individualmente. Per richiedere il materiale necessario (in base alla vostra idea) inviare una email al docente con la lista di sensori / scheda (Arduino o Nucleo) ed eventuale altro hardware necessario. Saranno organizzati uno o due incontri prima della data degli appelli (probabilmente in laboratorio Colossus) per presentare il proprio progetto. Sono richieste alcune slide con la descrizione del progetto e i principali problemi affrontati.

*date di esame per la prima sessione : (esame completo + secondo esonero) 14 Gennaio ore 16-18 , Aula T1. Esame completo: 4 Febbraio ore 16-18 aula 2L *

Obiettivi e programma sintetico

Veloce ripasso di programmazione C (propedeutico per il resto del corso)
tipi primitivi, casting, controlli condizionali (if then else). controlli iterativi (while e for), array, matrici, funzioni, struct/typedef/union. Puntatori, aritmetica dei puntatori, stringhe in C. Programmazione multithread in C (pthread).

Sistemi embedded ed elettronica (propedeutico per il resto del corso)
introduzione ad Arduino. ADC e elettronica analogica, principali componenti elettronici di base: condensatori, diodi, transistor. Porte logiche (implementazione reale con transistor). Sensori: come "leggere" i diversi parametri ambientali (temperatura, umidità).Esercizi ed esempi pratici con hardware reale.

FreeRTOS ("multithread" su sistemi embedded)
Introduzione ai sistemi real time, al sistema operativo FreeRTOS e la programmazioni dei dispositivi STM. programmazione C per sistemi embedded avanzati, nozioni di gestione della memoria e dello scheduler. Gestione multitasking, queue, interrupt e comunicazioni interprocesso. Esercizi ed esempi pratici con hardware reale.

MPI
Introduzione all'HPC con cenni ai super computer. MPI: che cos'è? A cosa serve? Operazioni point to point e di massa. Esercizi ed esempi pratici.

CUDA
Introduzione al calcolo su GPU. Paradigma di programmazioni su CUDA: da CPU a GPU e gestione della memoria. Come sfruttare il parallelismo e sfruttamento del framework. Esercizi ed esempi pratici.

applicazioni pratiche di programmazione su architetture reali (droni aerei e sottomarini).

Diario delle lezioni

martedì 1 ottobre 2019:

lezione introduttiva: cosa sono i sistemi embedded e quali sono le loro caratteristiche e limitazioni. Introduzione alla piattaforma Arduino. lezione_introduttiva.pdf

giovedì 3 ottobre 2019:

ripasso del linguaddio C: struttura di un programma, variabili, tipi primitivi, controlli condizionali, controlli iterativi, array, funzioni, puntatori, esercizi pratici. 1920_ripasso_C_1.pdf

martedì 8 ottobre 2019:

ripasso del linguaddio C: Allocazione Dinamica, Struct, Typedef, Union. Esercizi pratici. 1920_ripasso_C_2.pdf

introduzione ai thread in C: parallelismo, libreria pthread, concorrenza, ripasso dei meccanismi di sincronizzazione 1920_lezione2_multithread.pdf

giovedì 10 ottobre 2019:

POSIX thread: creazione di uno o più thread, exit, join. MUTEX: introduzione, creazione e cancellazione. Esercizi pratici. 1920_lezione3_multithread2.pdf

martedì 15 ottobre 2019:

Corrente, tensione, potenza, introduzione ai componenti elettronici di base (resistenze, diodi), legge di Ohm, Arduino, breadboard 1920_Lezione4_introduzione_elettronica.pdf

primi esperimenti con Arduino: installazione IDE, lampeggio LED integrato in Arduino, LED esterno, controllo di più LED 1920_Lezione4_Arduino.pdf

giovedì 17 ottobre 2019:

introduzione alle porte e ai pin di un microcontrollore. pulsanti e resistenze di pullup. Comandi seriali 1920_Lezione5-embedded_pullup.pdf

leggere un pulsante con Arduino, leggere un valore (resistore variabile) con un ingresso analogico di Arduino 1920_Lezione5_Arduino.pdf

mercoledì 22 ottobre 2019:

esercitazione con Arduino: seriale, display LCD 1920_Lezione_6-Arduino.pdf

giovedì 24 ottobre 2019:

lezione annullata

mercoledì 29 ottobre 2019:

ripasso legge di Ohm, condensatore, diodo, LED, interrupt. Esercizi sulla carica / scarica del condensatore. lezione7_embedded.pdf

giovedì 31 ottobre 2019:

ripasso potenziometri e divisori di voltaggio, transistor: funzionamento in zona attiva, saturazione e interdizione. Esercizi con led e transistor, porte logiche realizzate con transistor 1920_lezione8_embedded.pdf

martedì 5 novembre

esonero

giovedì 7 novembre

sospensione didattica

martedì 12 novembre

FreeRTOS: perché è necessario il Real Time, HEAP, STM32Cube IDE, Task ,Code, Timer. 1920_FreeRTOS_1.pdf

giovedì 14 novembre

correzione esonero, come si realizza un PCB, operare dirattamente sulle porte del microcontrollore, primi esempi in STM32Cube IDE 1920_lezione_PCB_nucleo.pdf

martedì 19 novembre

protocolli di comunicazione seriale, esercizi con scheda Nucleo. 1920_porte_seriale_nucleo2.pdf

giovedì 21 novembre 2019

FreeRTOS: code, timer, interrupt, task notifications. 1920_FreeRTOS_2.pdf esercizi svolti a lezione: https://drive.google.com/file/d/1jPbXiNy8inJKcHe3eUB6SALZZJ1lrTOO/view?usp=sharing

martedì 26 novembre 2019

MPI: introduzione, modelli di esecuzione, comunicazione, esercizi. 1920_MPI_1.pdf - 1920_eserciziMPI.rar

Per scaricare OPENMMPI e installarlo fare riferimento a: https://github.com/open-mpi/ompi

presentazione progetti 1920_presentazione_progetti.pdf

giovedì 28 novembre 2019

MPI: send, receive, collective, broadcast, scatter, gather, reduce, gruppi. 1920_MPI_02.pdf - 1920_esercizi_2_mpi.zip

martedì 3 dicembre 2019

MPI: esercizi 1920_Esercizi_MPI.pdf

venerdì 5 dicembre 2019

scaricare il framework CUDA all'indirizzo: https://developer.nvidia.com/cuda-downloads

CUDA: introduzione, gestione del flusso di calcolo, blocchi, thread, indicizzazione 1920_CUDA_01.pdf

martedì 10 dicembre 2019

CUDA: thread, dimblock e dimgrid, indexing, gestione GPU e parametri da passare ai kernel. esercizi pratici 1920_CUDA_02.pdf

giovedì 12 dicembre 2019

lezione annullata causa ITMEETING

martedì 17 dicembre

ambienti multi GPU: comunicazione e esempi di indirizzamento e gestione, paradigma RDMA, esempi di applicazione in ambito HPC e HEP 1920_HPC1.pdf

esempi di applicazione della programmazione multicore alla blockchain: funzionamento, puzzle, esempi in python 1920_BC1.pdf

elementi e chiarimenti per lo svolgimento dei progetti 1920_aiuti_per_progetto.pdf

giovedì 19 dicembre 2019

ripasso del programma e approfondimenti vari: 1920_ripasso_finale.pdf

A.A. Precedenti

A.A.20182019

Topic attachments
I Attachment HistorySorted ascending Action Size Date Who Comment
PDFpdf 1920_BC1.pdf r1 manage 1976.4 K 2019-12-18 - 08:09 MicheleMartinelli  
PDFpdf 1920_CUDA_01.pdf r1 manage 2290.0 K 2019-12-06 - 11:23 MicheleMartinelli  
PDFpdf 1920_CUDA_02.pdf r1 manage 642.3 K 2019-12-16 - 15:50 MicheleMartinelli  
PDFpdf 1920_Esercizi_MPI.pdf r1 manage 1409.4 K 2019-12-04 - 14:18 MicheleMartinelli  
PDFpdf 1920_FreeRTOS_1.pdf r1 manage 1617.8 K 2019-11-22 - 09:02 MicheleMartinelli  
PDFpdf 1920_FreeRTOS_2.pdf r1 manage 1575.7 K 2019-11-22 - 09:02 MicheleMartinelli  
PDFpdf 1920_HPC1.pdf r1 manage 1204.3 K 2019-12-18 - 08:09 MicheleMartinelli  
PDFpdf 1920_Lezione4_Arduino.pdf r1 manage 907.0 K 2019-10-16 - 16:01 MicheleMartinelli  
PDFpdf 1920_Lezione4_introduzione_elettronica.pdf r1 manage 2527.1 K 2019-10-16 - 16:01 MicheleMartinelli  
PDFpdf 1920_Lezione5-embedded_pullup.pdf r1 manage 878.5 K 2019-10-17 - 19:19 MicheleMartinelli  
PDFpdf 1920_Lezione5_Arduino.pdf r1 manage 710.3 K 2019-10-17 - 19:19 MicheleMartinelli  
PDFpdf 1920_Lezione_6-Arduino.pdf r1 manage 863.9 K 2019-10-28 - 15:16 MicheleMartinelli  
PDFpdf 1920_MPI_02.pdf r1 manage 455.7 K 2019-12-02 - 09:26 MicheleMartinelli  
PDFpdf 1920_MPI_1.pdf r1 manage 853.7 K 2019-11-27 - 06:49 MicheleMartinelli  
PDFpdf 1920_aiuti_per_progetto.pdf r1 manage 344.9 K 2019-12-18 - 08:09 MicheleMartinelli  
Unknown file formatrar 1920_eserciziMPI.rar r1 manage 1.5 K 2019-11-28 - 07:38 MicheleMartinelli  
Compressed Zip archivezip 1920_esercizi_2_mpi.zip r1 manage 4.6 K 2019-12-02 - 09:26 MicheleMartinelli  
PDFpdf 1920_freertos1.pdf r1 manage 1218.9 K 2019-11-14 - 19:11 MicheleMartinelli  
PDFpdf 1920_lezione2_multithread.pdf r1 manage 501.1 K 2019-10-09 - 09:26 MicheleMartinelli  
PDFpdf 1920_lezione3_multithread2.pdf r1 manage 1757.7 K 2019-10-11 - 09:40 MicheleMartinelli  
PDFpdf 1920_lezione8_embedded.pdf r1 manage 1485.7 K 2019-10-31 - 20:30 MicheleMartinelli  
PDFpdf 1920_lezione_PCB_nucleo.pdf r1 manage 3823.2 K 2019-11-14 - 19:12 MicheleMartinelli  
PDFpdf 1920_porte_seriale_nucleo2.pdf r1 manage 3031.5 K 2019-11-20 - 08:34 MicheleMartinelli  
PDFpdf 1920_presentazione_progetti.pdf r1 manage 547.8 K 2019-11-27 - 06:49 MicheleMartinelli  
PDFpdf 1920_ripasso_C_1.pdf r1 manage 1585.6 K 2019-10-04 - 07:52 MicheleMartinelli  
PDFpdf 1920_ripasso_C_2.pdf r1 manage 2533.0 K 2019-10-09 - 09:26 MicheleMartinelli  
PDFpdf 1920_ripasso_finale.pdf r1 manage 1663.5 K 2019-12-20 - 14:09 MicheleMartinelli  
PDFpdf 1920_voti_finali_esame_completo_gennaio_2020.pdf r1 manage 11.8 K 2020-01-15 - 14:56 MicheleMartinelli  
PDFpdf 1920_voti_finali_esoneri_gennaio_2020.pdf r1 manage 35.0 K 2020-01-15 - 14:56 MicheleMartinelli  
PDFpdf lezione7_embedded.pdf r1 manage 1634.5 K 2019-10-30 - 07:50 MicheleMartinelli  
PDFpdf lezione_introduttiva.pdf r1 manage 4716.0 K 2019-10-01 - 17:53 MicheleMartinelli  
PDFpdf risultati_esonero1_multicore_updated.pdf r1 manage 17.8 K 2019-11-20 - 08:34 MicheleMartinelli  
PDFpdf voti_appello_4feb2020.pdf r1 manage 10.6 K 2020-02-05 - 08:54 MicheleMartinelli  

This topic: PSMC > WebHome
Topic revision: r185 - 2020-10-09 - MicheleMartinelli
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2021 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback