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

Prenotazione per l'appello del 4 Febbraio ore 16-18 aula 2L (ricordatevi di prenotarvi anche su infostud) : http://twiki.di.uniroma1.it/twiki/view/Prenotazioni/2019_02_04_IIAppelloProgrammazioneDiSistemiMulticore

* RISULTATI prima sessione gennaio 2020*

1920_voti_finali_esame_completo_gennaio_2020.pdf

1920_voti_finali_esoneri_gennaio_2020.pdf

Chi ha raggiunto un voto finale di almeno 18 e vuole verbalizzare, pu˛ inviare una mail al docente (chi ha ancora il materiale utilizzato per il progetto deve restituirlo prima di poter verbalizzare).

Chi vuole vedere il compito di esame / esonero (e se potesse anche chi ha un voto > 26) pu˛ farlo il 22 gennaio 2020 in via Salaria 113 stanza 317 alle ore 15.

Chi non si era prenotato per l'appello di gennaio su infostud e vuole verbalizzare, e pregato di prenotarsi per febbraio (il voto rimane e verbalizzerÓ a febbraio).

Chi vuole presentare un progetto pu˛ farlo il 30 gennaio 2020 in lab. colossus alle 14 e 30.

Chi ha bisogno del materiale per il progetto, Ŕ pregato di inviare una mail con la richiesta, lo potrÓ ritirare il 22/1 oppure il 30/1 a via salaria o su appuntamento nell'ufficio del docente.

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 History 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  
Edit | Attach | Watch | Print version | History: r174 < r173 < r172 < r171 < r170 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r174 - 2020-01-17 - 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-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback