Tags:
create new tag
view all tags

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

per la lezione del 5 dicembre 2019 e successive per favore scaricare il framework CUDA all'indirizzo: https://developer.nvidia.com/cuda-downloads

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.

risultati primo esonero risultati_esonero1_multicore_updated.pdf

date di esame per la prima sessione : (esame completo + secondo esonero) 14 Gennaio ore 16-18 , (esame completo) 4 Febbraio ore 16-18 , Aula 2L - Via del Castro Laurenziano 7A

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/OpenCL
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

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

A.A. Precedenti

A.A.20182019

Topic attachments
I Attachment History Action Size Date Who Comment
PDFpdf 1920_CUDA_01.pdf r1 manage 2290.0 K 2019-12-06 - 11:23 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_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  
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 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  
Edit | Attach | Watch | Print version | History: r165 < r164 < r163 < r162 < r161 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r165 - 2019-12-06 - MicheleMartinelli





 
Questo sito usa cookies, usandolo ne accettate la presenza. (CookiePolicy)
Torna al Dipartimento di Informatica
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback