---++!! *Programmazione di Sistemi Multicore* ---+++!! Corso di Laurea in Informatica, terzo anno ---+++ A.A. 2019-2020, primo semestre | <font color="#AF0F0F" size="+1"> *Docente: Michele Martinelli* </font> <p> </p> *Ricevimento*: per appuntamento al termine del corso. <br />E-mail: michele.martinelli AT uniroma1.it <p> </p> | | <div align="left"> </div> <div align="left"> *Orario delle lezioni* </div> <p> </p> <table border="1" cellpadding="0" cellspacing="1"> <tbody> <tr><th>Giorno</th><th>Ore</th><th>Aula</th></tr> <tr> <td>Martedì</td> <td>16-19</td> <td>Aula 1 - Via del Castro Laurenziano 7A</td> </tr> <tr> <td>Giovedì</td> <td>16-18</td> <td>Aula 1 - Via del Castro Laurenziano 7A</td> </tr> </tbody> </table> | ---++++ Avvisi %RED% *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).* %ENDCOLOR% --- RISULTATI appello 4 febbraio 2020: [[%ATTACHURL%/voti_appello_4feb2020.pdf][voti_appello_4feb2020.pdf]] RISULTATI prima sessione gennaio 2020 [[%ATTACHURL%/1920_voti_finali_esame_completo_gennaio_2020.pdf][1920_voti_finali_esame_completo_gennaio_2020.pdf]] [[%ATTACHURL%/1920_voti_finali_esoneri_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 <strong>Veloce ripasso di programmazione C (propedeutico per il resto del corso)</strong><br />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).<br /><br /><strong>Sistemi embedded ed elettronica (propedeutico per il resto del corso)</strong><br />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.<br /><br /><strong>FreeRTOS ("multithread" su sistemi embedded)</strong><br />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.<br /><br /><strong>MPI</strong><br />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.<br /><br /><strong>CUDA</strong><br />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. [[%ATTACHURL%/lezione_introduttiva.pdf][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. [[%ATTACHURL%/1920_ripasso_C_1.pdf][1920_ripasso_C_1.pdf]] *martedì 8 ottobre 2019:* ripasso del linguaddio C: Allocazione Dinamica, Struct, Typedef, Union. Esercizi pratici. [[%ATTACHURL%/1920_ripasso_C_2.pdf][1920_ripasso_C_2.pdf]] introduzione ai thread in C: parallelismo, libreria pthread, concorrenza, ripasso dei meccanismi di sincronizzazione [[%ATTACHURL%/1920_lezione2_multithread.pdf][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. [[%ATTACHURL%/1920_lezione3_multithread2.pdf][1920_lezione3_multithread2.pdf]] *martedì 15 ottobre 2019:* Corrente, tensione, potenza, introduzione ai componenti elettronici di base (resistenze, diodi), legge di Ohm, Arduino, breadboard [[%ATTACHURL%/1920_Lezione4_introduzione_elettronica.pdf][1920_Lezione4_introduzione_elettronica.pdf]] primi esperimenti con Arduino: installazione IDE, lampeggio LED integrato in Arduino, LED esterno, controllo di più LED [[%ATTACHURL%/1920_Lezione4_Arduino.pdf][1920_Lezione4_Arduino.pdf]] *giovedì 17 ottobre 2019:* introduzione alle porte e ai pin di un microcontrollore. pulsanti e resistenze di pullup. Comandi seriali [[%ATTACHURL%/1920_Lezione5-embedded_pullup.pdf][1920_Lezione5-embedded_pullup.pdf]] leggere un pulsante con Arduino, leggere un valore (resistore variabile) con un ingresso analogico di Arduino [[%ATTACHURL%/1920_Lezione5_Arduino.pdf][1920_Lezione5_Arduino.pdf]] *mercoledì 22 ottobre 2019:* esercitazione con Arduino: seriale, display LCD [[%ATTACHURL%/1920_Lezione_6-Arduino.pdf][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. [[%ATTACHURL%/lezione7_embedded.pdf][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 [[%ATTACHURL%/1920_lezione8_embedded.pdf][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. [[%ATTACHURL%/1920_FreeRTOS_1.pdf][1920_FreeRTOS_1.pdf]] [[%ATTACHURL%/1920_Lezione4_Arduino.pdf][<br />]] *giovedì 14 novembre* correzione esonero, come si realizza un PCB, operare dirattamente sulle porte del microcontrollore, primi esempi in STM32Cube IDE [[%ATTACHURL%/1920_lezione_PCB_nucleo.pdf][1920_lezione_PCB_nucleo.pdf]] <b> martedì 19 novembre</b><br /><br /> protocolli di comunicazione seriale, esercizi con scheda Nucleo. [[%ATTACHURL%/1920_porte_seriale_nucleo2.pdf][1920_porte_seriale_nucleo2.pdf]] *giovedì 21 novembre 2019* FreeRTOS: code, timer, interrupt, task notifications. [[%ATTACHURL%/1920_FreeRTOS_2.pdf][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. [[%ATTACHURL%/1920_MPI_1.pdf][1920_MPI_1.pdf]] - [[%ATTACHURL%/1920_eserciziMPI.rar][1920_eserciziMPI.rar]] Per scaricare OPENMMPI e installarlo fare riferimento a: https://github.com/open-mpi/ompi presentazione progetti [[%ATTACHURL%/1920_presentazione_progetti.pdf][1920_presentazione_progetti.pdf]] *giovedì 28 novembre 2019* MPI: send, receive, collective, broadcast, scatter, gather, reduce, gruppi. [[%ATTACHURL%/1920_MPI_02.pdf][1920_MPI_02.pdf]] - [[%ATTACHURL%/1920_esercizi_2_mpi.zip][1920_esercizi_2_mpi.zip]] *martedì 3 dicembre 2019* MPI: esercizi [[%ATTACHURL%/1920_Esercizi_MPI.pdf][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 [[%ATTACHURL%/1920_CUDA_01.pdf][1920_CUDA_01.pdf]] *martedì 10 dicembre 2019* CUDA: thread, dimblock e dimgrid, indexing, gestione GPU e parametri da passare ai kernel. esercizi pratici [[%ATTACHURL%/1920_CUDA_02.pdf][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 [[%ATTACHURL%/1920_HPC1.pdf][1920_HPC1.pdf]] esempi di applicazione della programmazione multicore alla blockchain: funzionamento, puzzle, esempi in python [[%ATTACHURL%/1920_BC1.pdf][1920_BC1.pdf]] elementi e chiarimenti per lo svolgimento dei progetti [[%ATTACHURL%/1920_aiuti_per_progetto.pdf][1920_aiuti_per_progetto.pdf]] *giovedì 19 dicembre 2019* ripasso del programma e approfondimenti vari: [[%ATTACHURL%/1920_ripasso_finale.pdf][1920_ripasso_finale.pdf]] ---+++ A.A. Precedenti [[PSMC1819][A.A.20182019]]
Attachments
Attachments
Topic attachments
I
Attachment
History
Action
Size
Date
Who
Comment
pdf
1920_BC1.pdf
r1
manage
1976.4 K
2019-12-18 - 08:09
MicheleMartinelli
pdf
1920_CUDA_01.pdf
r1
manage
2290.0 K
2019-12-06 - 11:23
MicheleMartinelli
pdf
1920_CUDA_02.pdf
r1
manage
642.3 K
2019-12-16 - 15:50
MicheleMartinelli
pdf
1920_Esercizi_MPI.pdf
r1
manage
1409.4 K
2019-12-04 - 14:18
MicheleMartinelli
pdf
1920_FreeRTOS_1.pdf
r1
manage
1617.8 K
2019-11-22 - 09:02
MicheleMartinelli
pdf
1920_FreeRTOS_2.pdf
r1
manage
1575.7 K
2019-11-22 - 09:02
MicheleMartinelli
pdf
1920_HPC1.pdf
r1
manage
1204.3 K
2019-12-18 - 08:09
MicheleMartinelli
pdf
1920_Lezione4_Arduino.pdf
r1
manage
907.0 K
2019-10-16 - 16:01
MicheleMartinelli
pdf
1920_Lezione4_introduzione_elettronica.pdf
r1
manage
2527.1 K
2019-10-16 - 16:01
MicheleMartinelli
pdf
1920_Lezione5-embedded_pullup.pdf
r1
manage
878.5 K
2019-10-17 - 19:19
MicheleMartinelli
pdf
1920_Lezione5_Arduino.pdf
r1
manage
710.3 K
2019-10-17 - 19:19
MicheleMartinelli
pdf
1920_Lezione_6-Arduino.pdf
r1
manage
863.9 K
2019-10-28 - 15:16
MicheleMartinelli
pdf
1920_MPI_02.pdf
r1
manage
455.7 K
2019-12-02 - 09:26
MicheleMartinelli
pdf
1920_MPI_1.pdf
r1
manage
853.7 K
2019-11-27 - 06:49
MicheleMartinelli
pdf
1920_aiuti_per_progetto.pdf
r1
manage
344.9 K
2019-12-18 - 08:09
MicheleMartinelli
rar
1920_eserciziMPI.rar
r1
manage
1.5 K
2019-11-28 - 07:38
MicheleMartinelli
zip
1920_esercizi_2_mpi.zip
r1
manage
4.6 K
2019-12-02 - 09:26
MicheleMartinelli
pdf
1920_freertos1.pdf
r1
manage
1218.9 K
2019-11-14 - 19:11
MicheleMartinelli
pdf
1920_lezione2_multithread.pdf
r1
manage
501.1 K
2019-10-09 - 09:26
MicheleMartinelli
pdf
1920_lezione3_multithread2.pdf
r1
manage
1757.7 K
2019-10-11 - 09:40
MicheleMartinelli
pdf
1920_lezione8_embedded.pdf
r1
manage
1485.7 K
2019-10-31 - 20:30
MicheleMartinelli
pdf
1920_lezione_PCB_nucleo.pdf
r1
manage
3823.2 K
2019-11-14 - 19:12
MicheleMartinelli
pdf
1920_porte_seriale_nucleo2.pdf
r1
manage
3031.5 K
2019-11-20 - 08:34
MicheleMartinelli
pdf
1920_presentazione_progetti.pdf
r1
manage
547.8 K
2019-11-27 - 06:49
MicheleMartinelli
pdf
1920_ripasso_C_1.pdf
r1
manage
1585.6 K
2019-10-04 - 07:52
MicheleMartinelli
pdf
1920_ripasso_C_2.pdf
r1
manage
2533.0 K
2019-10-09 - 09:26
MicheleMartinelli
pdf
1920_ripasso_finale.pdf
r1
manage
1663.5 K
2019-12-20 - 14:09
MicheleMartinelli
pdf
1920_voti_finali_esame_completo_gennaio_2020.pdf
r1
manage
11.8 K
2020-01-15 - 14:56
MicheleMartinelli
pdf
1920_voti_finali_esoneri_gennaio_2020.pdf
r1
manage
35.0 K
2020-01-15 - 14:56
MicheleMartinelli
pdf
lezione7_embedded.pdf
r1
manage
1634.5 K
2019-10-30 - 07:50
MicheleMartinelli
pdf
lezione_introduttiva.pdf
r1
manage
4716.0 K
2019-10-01 - 17:53
MicheleMartinelli
pdf
risultati_esonero1_multicore_updated.pdf
r1
manage
17.8 K
2019-11-20 - 08:34
MicheleMartinelli
pdf
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
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback