Laurea Magistrale in Informatica - AA 2016/17 Docente G. Grossi. Lezione 3 Il modello di esecuzione CUDA (1)
|
|
- Lucrezia Simone
- 6 anni fa
- Visualizzazioni
Transcript
1 Laurea Magistrale in Informatica - AA 2016/17 Docente G. Grossi Lezione 3 Il modello di esecuzione CUDA (1)
2 Array scalabile di Streaming Multiprocessor (SM): core CUDA (SP) Global/shared/texture/constant/ memory L1 e L2 caches per global memory Registri Unità load/store Unità per funzioni speciali sin, cos, exp Scheduler dei warp Funzionamento: Ogni SM supporta l esecuzione concorrente di centinaia di thread (la GPU migliaia) I blocchi di thread vengono ripartiti dallo scheduler sui vari SM, massimizzandone l impiego Tutti i thread di un blocco vengono eseguiti concorrentemente sull SM assegnato Numerosi blocchi vengono assegnati allo stesso SM poi rischedulati in base alle risorse disponibili all SM Pipelining al livello istruzione in ogni thread 2
3 Grid Device 3
4 ü Ogni thread viene eseguito su un cuda core ed ha un suo privato spazio di memoria per registri, chiamate di funzioni e variabili C automatiche ü Un thread block è un gruppo di thread eseguiti concorrentemente che può cooperare attraverso barriere di sincronizzazione ü Un thread block usa shared memory per la comunicazione interthread e condivisione dati ü Una grid è un array di thread block che eseguono tutti lo stesso kernel, legge e scrive in global memory e sincronizza le chiamate di kernel tra loro dipendenti ü Esecuzione: Viene mappata la gerarchia di thread nella gerarchia di processori sulla GPU La GPU esegue una o più kernel grid Uno streaming multiprocessor (SM) esegue uno più thread block I core e altre unità di esecuzione nello SM eseguono i thread Gli SM eseguono i thread a gruppi di 32 thread chiamati warp 4
5 ü Numero magico: warp = 32 thread (consecutivi) ü Tutti i thread in un warp eseguono in parallelo allo stesso tempo ü Ogni thread ha il suo program counter e register state, ed esegue l istruzione corrente su dati assegnati ü Ogni thread può seguire cammini distinti di esecuzione delle istruzioni (parallelismo a livello thread) ü I thread che compongono un warp iniziano assieme alla stesso indirizzo del programma, ma ognuno è libero di seguire path propri indipendentemente da altri thread, seguendo flussi distinti ü Architettura SIMT: Single Instruction Multiple Thread Una differenza chiave è che SIMD espone l intero set di dati (vettore) all istruzione che deve essere eseguita, mentre SIMT specifica il comportamento di esecuzione e branching di un singolo thread 5
6 ü I core sono organizzati in 16 SM, ognuno con 32 CUDA core (16*32= 512 core massimo) ü 6 interfacce di memoria DRAM a 64-bit (tot. 384-bit) GDDR5 che supportano fino un tot di 6 GB di global on-board memory ü Una interfaccia con l host che connette la GPU alla CPU tramite PCI Express bus ü GigaThread scheduler globale che distribuisce i blocchi di thread agli scheduler dei warp ü L2 cache da 768 KB, condivisa tra tutti i 16 SM ü Quanti cuda core nelle Tesla M2050 e Tesla M2090? 6
7 ü Ogni CUDA core contiene: fully pipelined integer arithmetic logic unit (ALU) una istruzione per ciclo di clock floating-point unit (FPU) - una istruzione per ciclo di clock Dispatcher port per i thread ü Unità Scheduler e dispatcher che schedulano i warp ü Shared memory, register file e L1 cache ü Ogni SM ha 16 unità load/store che permettono di calcolare indirizzi di source e destination per 16 thread (un half-warp) per ciclo di clock ü Unità speciali (SFUs) per funzioni come sine, cosine, square root, e interpolation (unaistruzione per thread per ciclo di clock) 7
8 ü I thread di ogni block assegnato a un SM sono suddivisi in warp ü Ogni SM contiene 2 warp scheduler e 2 instructiondispatch unit ü I 2 scheduler selezionano 2 warp (eseguiti simultaneamente) e distribuiscono un istruzione a ognuno dei 16 core o alle 16 unità load/store o alle 4 FPU ü L architettura Fermi (compute capability 2.x) può trattare simultaneamente 48 warp per SM, per un totale di 1536 thread alla volta residenti su un singolo SM Su FERMI si possono assegnare fino a 1536 thread ad ogni SM in non più di 8 blocchi per volta: Per es. 6 blocchi da 256 thread, 3 blocchi da 512 thread, oppure 8 da blocchi da 128 (inefficiente!) 8
9 ü Una caratteristica chiave di Fermi è che la memoria di 64 KB on-chip è configurabile a runtime: può essere ripartita tra shared memory e L1 cache ü Per molte applicazioni HPC la shared memory consente grandi prestazioni perché consente ai thread di un blocco di cooperare, facilita il riuso di dati onchip data e riduce il traffico off-chip ü CUDA provides a runtime API that can be used to adjust the amount of shared memory and L1 cache. Modifying ü Fermi supporta l esecuzione concorrente di kernel: kernel multipli lanciati dalla stessa applicazione sulla stessa GPU ü Meglio in generale un numero alto di piccoli kernel per un utilizzo completo della GPU ü Fermi consente fino a 16 kernel in esecuzione nello stesso tempo 9
10 Prospettiva logica: I blocchi di thread possono essere configurati con ID nelle 3 dimesioni: 1D, 2D o 3D Prospettiva hardware: Tutti i thread sono organizzati in una sola dimensione con un ID progressivo Per esempio, un blocco con 128 thread verrà suddiviso in 4 warp: warp0, warp1, warp2, warp3 Warp 0: thread 0, thread 1, thread 2,... thread 31 Warp 1: thread 32, thread 33, thread 34,... thread 63 Warp 2: thread 64, thread 65, thread 66,... thread 95 Warp 3: thread 96, thread 97, thread 98,... thread
11 Vista logica: un blocco di thread bidimensionale con 40 thread nella dimensione x e 2 thread nella dimensione y. Vista HW: verranno allocati 3 warp HW per il blocco, con un totale di 96 thread per supportarne 80 SW Nota che l ultimo semi-warp è inattivo e comunque consumano risorse anche quelli inattivi, registri, memoria, etc. Blocchi di thread: vista logica vs vista HW Dal punto di vista logico, un blocco di thread è una collezione di thread organizzati in 1D, 2D, o 3D Dal punto di vista hardware, un blocco di thread è una collezione 1D di warp. I thread in un blocco formano i warp a gruppi di 32 thread consecutivi alla volta 11
12 ü 15 streaming multiprocessors (SMs) ü Enhanced SMs ü 64-bit memory controller ü Dynamic Parallelism ü Hyper-Q ü Compute capability
13 SMX: 192 single-precision CUDA cores 64 double-precision units 32 special function units (SFU) 32 load/store units (LD/ST) 4 warp schedulers 8 instruction dispatchers 4 warps executed concurrently on a single SMX 64 warps per SM scheduled 2048 threads resident in a single SM at a time 64K register file size more partitions of on-chip memory between shared memory and L1 cache more than 1 TFLOP of peak double-precision Dynamic Parallelism Hyper-Q 13
14 ü Nuova feature introdotta nelle GPU Kepler ü Consente alla GPU di lanciare diminamicamente nuove grid da una grid in esecuzione ü Ogni kernel può lanciare un altro kernel e gestire dipendenze inter-kernel ü Gestire la sincronizzazione e lo scheduling dei task ü Elimina la necessità di comunicare con la CPU ü Rende più semplice creare e ottimizzare pattern di esecuzione ricorsivi e datadependent ü Senza il parallelismo dinamico l host si occupa di lanciare ogni kernel sulla GPU 14
15 ü Più connessioni hardware simultanee tra CPU e GPU ü Abilita più CPU core a lanciare kernel su una singola GPU ü Abilita i core di CPU ad eseguire più task simultaneamente sulla GPU ü Ci si aspetta di aumentare l utilizzo della GPU e ridurre l idle time della CPU ü Fermi GPUs usano una sola coda hardware di lavoro per passare i task dalla CPU alla GPU (un singolo task blocca tutti gli altri task della coda) ü Kepler Hyper-Q rimuove questa limitazione con 32 code di lavoro hardware tra host e GPU ü Hyper-Q attiva molta più concorrenza sulla GPU ü Massimizza l utilizzo della GPU incrementandone le performance in generale 15
16 ü NVIDIA il termine, compute capability, per descrivere la versione hardware degli acceleratori GPU Kepler class architecture is major version number 3 Fermi class architecture is major version number 2 Tesla class architecture is major version number 1 ü NB: la prima classe di GPU sviluppate da NVIDIA ha lo stesso nome Tesla dell intera famiglia di acceleratori GPU Tesla 16
17 17
18 HW Anno Modello Tesla 2006 GeForce 8800 GTX (G80) Fermi 2010 GeForce GTX 480 (GF100) Kepler 2012 GeForce GTX 480 (GF100) Maxwell 2014 GeForce GTX 980 (GM204) Pascal 2016 GeForce GTX 1080 (GP104) 18
19 Modello di esecuzione CUDA 19
20 Risponde a domande come: quanti SM sono disponili sul device? Quanti thread x ogni SM? Quanta memoria? ecc. Funzioni delle API runtime di CUDA ( Command-line utility nvidia-smi ( Segnatura-> int dev_count; cudaerror_t cudagetdevicecount(&dev_count); Ø Indaga il numero di device disponibili sul sistema Segnatura-> cudaerror_t cudagetdeviceproperties(cudadeviceprop* prop, int device); Ø Restituisce le proprietà del device nella struttura cudadeviceprop ESERCITAZIONE: Usando le API sopra descritte, interrogare i dispositivi presenti ed ottenere: Number of CUDA Capable device(s) Total amount of global memory Maximum number of threads per multiprocessor Maximum number of threads per block Maximum sizes of each dimension of a block Maximum sizes of each dimension of a grid Determinare quella che ha il massimo numero di Multiprocessors 20
21 Compilazione su lagrange: $ nvcc -arch=sm_20 checkdeviceinfor.cu Esecuzione: $ Detected 3 CUDA Capable device(s) Device 0: "Tesla M2090" CUDA Driver Version / Runtime Version 7.5 / 7.0 CUDA Capability Major/Minor version number: 2.0 Total amount of global memory: 5.25 GBytes ( bytes) GPU Clock rate: 1301 MHz (1.30 GHz) Memory Clock rate: 1848 Mhz Memory Bus Width: 384-bit L2 Cache Size: bytes Max Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536,65535), 3D=(2048,2048,2048) Max Layered Texture Size (dim) x layers 1D=(16384) x 2048, 2D=(16384,16384) x 2048 Total amount of constant memory: bytes Total amount of shared memory per block: bytes Total number of registers available per block: Warp size: 32 Maximum number of threads per multiprocessor: 1536 Maximum number of threads per block: 1024 Maximum sizes of each dimension of a block: 1024 x 1024 x 64 Maximum sizes of each dimension of a grid: x x Maximum memory pitch: bytes 21
22 Stabilire il massimo numero di processori (o qualsiasi atra proprietà) tra le schede esistenti (Es in Lagrange): Ottenere il numero di device Ciclo sui device per estrarre informazioni o attivare processi Ottenere informazioni circa il device Attivare il device per eseguire operazioni sullo stesso int numdevices = 0; cudagetdevicecount(&numdevices); if (numdevices > 1) { int maxmultiprocessors = 0, maxdevice = 0; for (int device=0; device<numdevices; device++) { cudadeviceprop props; cudagetdeviceproperties(&props, device); if (maxmultiprocessors < props.multiprocessorcount) { maxmultiprocessors = props.multiprocessorcount; maxdevice = device; } } cudasetdevice(maxdevice); } 22
23 Il command-line tool nvidia-smi permette di gestire e monitorare le GPU presenti $ nvidia-smi -L GPU 0: Tesla M2050 (UUID: GPU-e03071f3-6aa abed-3dbf96673cd2) GPU 1: Tesla M2090 (UUID: GPU-25b1e779-cd4a-1bd4-66cd-48d17d2405c3) GPU 2: Tesla M2090 (UUID: GPU-ad8ac2a f7c1-ec56dedaa17c) Per un report completo sul device 0 (MEMORY, UTILIZATION, ECC, TEMPERATURE, POWER, CLOCK, COMPUTE, PIDS, PERFORMANCE, SUPPORTED_CLOCKS, PAGE_RETIREMENT, ACCOUNTING) $ nvidia-smi -q -i 0 Filtrare le info sul device 1 $ nvidia-smi -q -i 1 -d UTILIZATION GPU 0000:11:00.0 Utilization Gpu : 0 % Memory : 0 % $ nvidia-smi -q -i 1 -d MEMORY GPU 0000:11:00.0 FB Memory Usage Total Used Free : 5375 MiB : 10 MiB : 5365 MiB 23
24 Scelte implementative: Come definire la grid? Quale mapping tra indici di thread e indici delle matrici A, B e C? Notare che le dimensioni rilevanti sono 2: numero n di righe della mat A e numero m di colonne della mat B (insieme sono anche le dimensioni finali di C) Quale attività assegnare ai thread? Possibili casi: i pattern ripetuti sono i prodotti e le somme di singole coppie di elementi (caso 1), il prodotto interno tra due vettori (caso 2), riga di A e colonna di B Caso 1: numero molto elevato di thread pari al numero prodotti n*m*k (granularità molto fine), poco lavoro del singolo thread e grande hoverhead Caso 2: numero ridotto di thread n*m (granularità meno fine), e attività di maggior peso per il singolo thread Morale se gli SM sono tutti impegnati (ragionevole numero di warp schedulati) quindi lavorano a pieno ritmo, non dobbaimo preoccuparci di effetture task sequenziali all interno del singolo thread... Anzi! 24
25 Un possibile approccio (caso 2): Trasferimento delle matrici A, B e allocazione di C nella memoria del device La grid deve coprire il numero di righe delle matrici A nella dimensione y e il numero di colonne della matrice B nella dimensione x Un thread si preoccupa di effettuare il prodotto riga-colonna della matrice Per ogni riga i e colonna j, il thread con indice i nella dimensione x e il thread con indice j nella dimensione y mediante un ciclo itera la somma dei prodotti che coinvolgono la riga e la colonna Salva la somma nella entry i,j della matrice risultato C e la trasferisce in memoria RAM della CPU 25
26 Passaggio argomenti: per valore o puntatori ottenuti da cudamalloc Mapping degli indici di thread su indici di riga e colonna della matrice risultato Ciclco su elementi di riga (Row*M+k) della mat A e colonna (k*m+col) della matb /* * Kernel per il prodotto di due matrici */ global void matrix_prod(float* A, float* B, float* C, int N, int M) { } // indici di riga e colonna int Row = blockidx.y * blockdim.y + threadidx.y; int Col = blockidx.x * blockdim.x + threadidx.x; // ogni thread calcola una entry della matrice prodotto if ((Row < N) && (Col < M)) { } float val = 0; Scrittura dei risultati in global memory del device for (int k = 0; k < M; k++) val += A[Row * M + k] * B[k * M + Col]; C[Row * M + Col] = val; Lettura dei dati in global memory del device 26
27 Profiling significa anlizzare le prestazioni del programma misurando: ü La complessità in spazio (memory) o in tempo dell algoritmo ü L uso di particolari istruzioni ü La frequenza e la durata delle chiamate a funzione Lo sviluppo di applicazioni HPC spesso implicano 2 passi principali: ü Sviluppare codice corretto ü Migliorare il codice per elevare le performance In CUDA: ü Una implementazione naïve del kernel in genere non dà alte prestazioni ü I tool di profiling aiutano a trovare bottleneck nel codice da rimuovere ü CUDA ripartisce le risorse di calcolo in un SM tra i blocchi di thread residenti e questo causa eccedere i limiti e impoverire l utilizzo della GPU ü CUDA fornisce un astrazione dell architettura hardware che consente il controllo diretto di thread e concorrenza: il profiling può aiutare a misurare, visualizzare e guidare l ottimizzazione 27
28 ü Specifiche: una matrice A in R n x n di tipo MQDB è composta da k blocchi B 1,,B k (0 k n) disposti sulla diagonale principale. Un esempio con k=3 è dato in figura. Se D={d 1,,d k } denota l'insieme delle dimensioni dei blocchi, allora deve valere: d i = n, pertanto una matrice siffatta è completamente descritta dalla coppia n,d. Vale inoltre che il prodotto di matrici con parametri n,d, è ancora una matrice dello stesso tipo ü Input: due matrici MQDB A e B di tipo float descritte da un intero n e un array d[k] ü Output: la matrice prodotto C = A B di tipo float ü Benchmark: è disponibile un generatore di istanze di MQDB casuali ottenute fissando la dimensione n della matrice e il numero di blocchi k (archivio: ) ü Test: per il test finale utilizzare 3 istanze casuali generate a caso con params: Seme s = 0, 1, 2 Dimensione matrice n = 1000, 5000, Numero blocchi k = 3, 5, 10 Progetto: kernel CUDA ottimizzato per il prodotto di matrici quadrate diagonali a blocchi Effettuare l analisi delle prestazioni al variare della taglia dei dati in ingresso e dei params di del kernel Usare nvprof per i tempi reali 28
29 ü Cuda malloc & copy: gestire con attenzione i puntatori all interno della struct mqdb ü Progettare un kernel adeguato al caso di matrici così strutturate ü Verificare configurazioni diverse delle grid ü Confronto con la funzione sequenziale su host ü Usare la profilazione come strumento di controllo del funzionamento ü Controllare chunk di memoria allocata $ devicequery Device 0: "Tesla M2090" CUDA Driver Version / Runtime Version 8.0 / 8.0 CUDA Capability Major/Minor version number: 2.0 Total amount of global memory: 5375 MBytes ( bytes)... 29
Introduzione al Many/Multi-core Computing
Introduzione al Many/Multi-core Computing Sistemi Operativi e reti 6 giugno 2011 Parte I Architettura Classificazione fra architetture Flynn s taxonomy SISD Single instruction on Single Data- (es. architetture
DettagliArchitettura CUDA Corso di sviluppo Nvidia CUDATM. Davide Barbieri
Architettura CUDA Corso di sviluppo Nvidia CUDATM Davide Barbieri Panoramica Lezione Modello Architetturale CUDA Modello di programmazione CUDA Hello World in CUDA Gestione degli errori Terminologia Host
DettagliLaboratorio Corso di sviluppo Nvidia CUDA TM. Davide Barbieri
Laboratorio Corso di sviluppo Nvidia CUDA TM Davide Barbieri Librerie CUDA CUBLAS, CUSPARSE Applicazione CUDA CUDA Runtime Funzioni cuda*() CUDA Driver API Libreria dinamica nvcuda installata con i driver
DettagliEsercizi su CUDA Algoritmi e Calcolo Parallelo. Daniele Loiacono
Esercizi su CUDA Algoritmi e Calcolo Parallelo Esercizio 1 Implementare in CUDA il prodotto fra due matrici C= AB A è una matrice Nx16 B è una matrice 16xM M ed N sono multipli interi di 16 A B C 16 N
DettagliOttimizzazioni 1 Corso di sviluppo Nvidia CUDATM. Davide Barbieri
Ottimizzazioni 1 Corso di sviluppo Nvidia CUDATM Davide Barbieri Panoramica Lezione Principali versioni dell'hardware CUDA Tesla Fermi Accesso veloce alla memoria globale Accesso veloce alla memoria condivisa
DettagliEsercizi su CUDA Algoritmi e Calcolo Parallelo. Daniele Loiacono
Esercizi su CUDA Algoritmi e Calcolo Parallelo Prodotto scalare q Implementare in cuda il prodotto scalare fra due array di float c = ~a ~b = X i a i b i " a e b sono array di uguali dimensioni e con N
DettagliGPGPU GPGPU. anni piu' recenti e' naturamente aumentata la versatilita' ed usabilita' delle GPU
GPGPU GPGPU GPGPU Primi In (General Purpose computation using GPU): uso del processore delle schede grafice (GPU) per scopi differenti da quello tradizionale delle generazione di immagini 3D esperimenti
DettagliCosa si intende per GPGPU? Il modello di programmazione di CUDA. GPU di precedente generazione. Storia delle GPU
Cosa si intende per GPGPU? Il modello di programmazione di CUDA Calcolo General Purpose su GPU (Graphic Processing Unit) in applicazioni differenti dalla grafica 3D tradizionale Le GPU sono usate come
DettagliIntroduzione al GPU Compu4ng con CUDA. Francesco Caruso francesco.caruso@polimi.it
Introduzione al GPU Compu4ng con CUDA Francesco Caruso francesco.caruso@polimi.it Contenu4 Come tu>o ebbe inizio: Evoluzione dell HW e del SW per la grafica GPU Compu4ng Introduzione a CUDA 5/13/11 Francesco
DettagliLa CPU e la Memoria. Sistemi e Tecnologie Informatiche 1. Struttura del computer. Sistemi e Tecnologie Informatiche 2
La CPU e la Memoria Sistemi e Tecnologie Informatiche 1 Struttura del computer Sistemi e Tecnologie Informatiche 2 1 I registri La memoria contiene sia i dati che le istruzioni Il contenuto dei registri
DettagliMacchina di Riferimento: argomenti
Macchina di Riferimento: argomenti L'architettura di una macchina MIPS Organizzazione della memoria I registri della CPU L'esecuzione dei programmi Il ciclo fetch-execute Il simulatore SPIM 1 Architettura
DettagliBootstrap. Bootstrap. Shutdown. Struttura di un SO. Elementi principali di un SO:
Bootstrap Bootstrap All accensione di un calcolatore vengono attivati programmi di diagnostica scritti nella ROM (Read Only Memory) che verificano l assenza di guasti Poi viene attivato il programma di
DettagliIntroduzione alla GPGPU Corso di sviluppo Nvidia CUDATM. Davide Barbieri
Introduzione alla GPGPU Corso di sviluppo Nvidia CUDATM Davide Barbieri Contatti skype: davbar86 mail: davide.barbieri@ghostshark.it Panoramica corso Introduzione al mondo delle GPU Modello GPGPU Nvidia
DettagliSistemi Operativi. Lezione 3 Processi e Thread
Lezione 3 Processi e Thread Introduzione Sino ai sistemi batch la CPU di un sistema svolgeva un attività, la portava a termine e solo allora avviava un altra attività Con l avvento della multiprogrammazione
DettagliSistemi Operativi SISTEMI DI INPUT/OUTPUT. D. Talia - UNICAL. Sistemi Operativi 10.1
SISTEMI DI INPUT/OUTPUT 10.1 Sistemi I/O Hardware di I/O Interfaccia di I/O per le applicazioni Sottosistema per l I/O del kernel Trasformazione delle richieste di I/O Stream Prestazioni 10.2 I/O Hardware
DettagliSistemi Operativi 1. Mattia Monga. 11 marzo Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia
1 Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it e 11 marzo 2008 1 c 2008 M. Monga. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia
DettagliRichiami sull architettura del processore MIPS a 32 bit
Caratteristiche principali dell architettura del processore MIPS Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini E un architettura RISC
DettagliSistemi Operativi. Sistemi I/O SISTEMI DI INPUT/OUTPUT. Hardware di I/O. Interfaccia di I/O per le applicazioni. Sottosistema per l I/O del kernel
SISTEMI DI INPUT/OUTPUT 10.1 Sistemi I/O Hardware di I/O Interfaccia di I/O per le applicazioni Sottosistema per l I/O del kernel Trasformazione delle richieste di I/O Stream Prestazioni 10.2 I/O Hardware
DettagliLa memoria - tecnologie
Architettura degli Elaboratori e delle Reti Lezione 26 La memoria - tecnologie Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 26 1/24 Indirizzi
DettagliImplementazione di linguaggi 2. CUDA, query su GPU. Dott Stefano Ghio. Dott Michele Bozzano. michele.bozzano@gmail.com. otacorp@gmail.
Implementazione di linguaggi 2 CUDA, query su GPU Dott Michele Bozzano michele.bozzano@gmail.com Dott Stefano Ghio otacorp@gmail.com GPGPU General purpose processing on the GPU Come dice il nome (Graphics
DettagliUniversità di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 5 Martedì 25-10-2016 Definizione di processo Esiste una distinzione concettuale
DettagliParte IV Architettura della CPU Central Processing Unit
Parte IV Architettura della CPU Central Processing Unit IV.1 Struttura della CPU All interno di un processore si identificano in genere due parti principali: l unità di controllo e il data path (percorso
DettagliIl Sottosistema di Memoria
Il Sottosistema di Memoria Classificazione delle memorie Funzionalità Memoria di sola lettura (ROM) Memoria di lettura/scrittura Tecnologia Memoria a semiconduttori Memoria magnetica Memoria ottica Modalità
DettagliRichiami sull architettura del processore MIPS a 32 bit
Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini Caratteristiche principali dell architettura del processore MIPS E un architettura RISC
DettagliSistemi Operativi GESTIONE DEI PROCESSI. D. Talia - UNICAL. Sistemi Operativi 4.1
GESTIONE DEI PROCESSI 4.1 Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in diversi S.O. 4.2 Concetto di
DettagliProgrammazione A.A Architettura dei Calcolatori. ( Lezione V ) Componenti hardware e loro schema funzionale
Programmazione A.A. 2002-03 I Architettura dei Calcolatori ( Lezione V ) Componenti hardware e loro schema funzionale Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica
DettagliI THREAD O PROCESSI LEGGERI
I THREAD O PROCESSI Processi (pesanti): LEGGERI entità autonome con poche risorse condivise (si prestano poco alla scrittura di applicazioni fortemente cooperanti) Ogni processo può essere visto come Immagine
DettagliFondamenti di Informatica 6. Algoritmi e pseudocodifica
Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie
DettagliINGEGNERIA E TECNOLOGIE DEI SISTEMI DI CONTROLLO Processori per sistemi di controllo
INGEGNERIA E TECNOLOGIE DEI SISTEMI DI CONTROLLO Processori per sistemi di controllo Prof. Carlo Rossi DEIS - Università di Bologna Tel: 051 2093020 email: crossi@deis.unibo.it Classificazione Processori
DettagliCome funzionano i computer
Fluency Come funzionano i computer Capitolo 6 Cosa sanno fare Esecuzione deterministica istruzioni per elaborare dati Devono ricevere una serie di istruzioni da seguire Cosa non sanno fare Non hanno immaginazione
DettagliCapitolo 10 - Strutture
1 Capitolo 10 - Strutture Strutture In molte situazioni, una variabile non è sufficiente per descrivere un oggetto. Ad esempio, una posizione sul piano cartesiano è identificata da due coordinate, e la
DettagliLa memoria - tecnologie
Architettura degli Elaboratori e delle Reti Lezione 26 La memoria - tecnologie Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 26 1/24 Indirizzi
DettagliSistemi a processori multipli
Sistemi a processori multipli Sommario Classificazione e concetti di base Sistemi multi-processore Sistemi multi-computer (cluster) Sistemi distribuiti Obiettivo comune Risolvere problemi di dimensioni
DettagliLivelli del sottosistema di I/O
Input/Output 1 Livelli del sottosistema di I/O Software di I/O di livello utente Software di sistema indipendente dal dispositivo Driver dei dispositivi Gestori delle interruzioni Hardware Modo utente
DettagliInformatica Generale 07 - Sistemi Operativi:Gestione dei processi
Informatica Generale 07 - Sistemi Operativi:Gestione dei processi Cosa vedremo: Esecuzione di un programma Concetto di processo Interruzioni Sistemi monotasking e multitasking Time-sharing Tabella dei
DettagliMacchine Astratte. Luca Abeni. February 22, 2017
Macchine Astratte February 22, 2017 Architettura dei Calcolatori - 1 Un computer è composto almeno da: Un processore (CPU) Esegue le istruzioni macchina Per fare questo, può muovere dati da/verso la memoria
DettagliComponenti di un sistema operativo
Componenti di un sistema operativo Dipartimento di Informatica Università di Verona, Italy Componenti di un S.O. Gestione dei processi Gestione della memoria primaria Gestione della memoria secondaria
DettagliCLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico)
CLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico) - Dedicati Quelli dei primi sistemi operativi. La macchina viene utilizzata da un utente per volta che può eseguire un solo programma per volta.
DettagliArchitettura hardware
Architettura hardware la parte che si può prendere a calci Architettura dell elaboratore Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione
DettagliCome aumentare le prestazioni Cenni alle architetture avanzate
Politecnico di Milano Come aumentare le prestazioni Cenni alle architetture avanzate Mariagiovanna Sami Richiamo: CPI CPI = (cicli di clock della CPU richiesti dall esecuzione di un programma)/ numero
DettagliIl Sottosistema di Memoria
Il Sottosistema di Memoria Calcolatori Elettronici 1 Memoria RAM RAM: Random Access Memory Tempi di accesso indipendenti dalla posizione Statica o Dinamica Valutata in termini di Dimensione (di solito
DettagliElementi di base del calcolatore
Elementi di base del calcolatore Registri: dispositivi elettronici capaci di memorizzare insiemi di bit (8, 16, 32, 64, ) Clock: segnale di sincronizzazione per tutto il sistema si misura in cicli/secondo
DettagliComponenti principali
Componenti e connessioni Capitolo 3 Componenti principali n CPU (Unità Centrale di Elaborazione) n Memoria n Sistemi di I/O n Connessioni tra loro Architettura di Von Neumann n Dati e instruzioni in memoria
DettagliScopo della lezione. Analizzare i tipi di macchine Indirizzamento e memorie Tipi di dato
Scopo della lezione Analizzare i tipi di macchine Indirizzamento e memorie Tipi di dato Little endian e big endian Indirizzamento logico e fisico Comprendere la struttura del micro Von Neumann architecture
DettagliLA GESTIONE DELLA I/O
LA GESTIONE DELLA I/O Il S.O. È l interfaccia tra l hardware e i programmi che effettuano richieste di I/O Sottosistema di I/O strutturato in moduli chiamati DRIVER uno per ogni dispositivo I Driver rendono
DettagliComponenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni
Componenti principali Componenti e connessioni Capitolo 3 CPU (Unita Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro 1 2 Architettura di Von Neumann Dati e instruzioni in memoria
DettagliSistemi e reti CPU Concetti di base
Sistemi e reti CPU Concetti di base A cura dell Ing. Claudio Traini Cenni Storici 1971 il primo processore mai realizzato : Intel 4004 Progettato dal vicentino Federico Faggin 1 Cenni Storici 1976 Faggin
DettagliArchitettura di un calcolatore
Architettura di un calcolatore Processore: CPU Componente elettronico costituito da minuscole componenti di silicio, chiamate CHIP. Esegue le istruzioni implementate nel SW, tramite una serie di operazioni
DettagliModelli di programmazione parallela
Modelli di programmazione parallela Oggi sono comunemente utilizzati diversi modelli di programmazione parallela: Shared Memory Multi Thread Message Passing Data Parallel Tali modelli non sono specifici
DettagliArchitettura dei calcolatori I parte Introduzione, CPU
Università degli Studi di Palermo Dipartimento di Ingegneria Informatica Informatica ed Elementi di Statistica 3 c.f.u. Anno Accademico 2010/2011 Docente: ing. Salvatore Sorce Architettura dei calcolatori
DettagliArchitettura dei Calcolatori. Macchina di von Neumann /2. Macchina di von Neumann /1. Architettura dei Calcolatori
rchitettura dei Calcolatori Giuseppe Pozzi Impianti di Elaborazione Facoltà di Ingegneria dell'informazione Politecnico di Milano giuseppe.pozzi@polimi.it - versione del 20 settembre 2002 - rchitettura
DettagliScuola di Calcolo Scientifico con MATLAB (SCSM) 2017 Palermo 31 Luglio - 4 Agosto 2017
Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017 Palermo 31 Luglio - 4 Agosto 2017 www.u4learn.it Alessandro Bruno Introduzione al calcolo parallelo Approcci per il calcolo parallelo Programmazione
DettagliSistemi e Tecnologie per l'automazione LS. HW per elaborazione digitale in automazione: Microcontrollori e DSP
Laurea Specialistica in Ingegneria Informatica Laurea Specialistica in Ingegneria Elettronica e delle Telecomunicazioni Sistemi e Tecnologie per l'automazione LS HW per elaborazione digitale in automazione:
DettagliIntroduzione. Caratteristiche generali. Sistemi e Tecnologie per l'automazione LS. HW per elaborazione digitale in automazione: Microcontrollori e DSP
Laurea Specialistica in Ingegneria Informatica Laurea Specialistica in Ingegneria Elettronica e delle Telecomunicazioni Sistemi e Tecnologie per l'automazione LS HW per elaborazione digitale in automazione:
DettagliLezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario
Lezione 2 Principi Fondamentali di SO Interrupt e Caching Sommario Operazioni di un SO: principi fondamentali Una visione schematica di un calcolatore Interazione tra SO, Computer e Programmi Utente 1
DettagliCUDA computing with the GPU
CUDA computing with the GPU Federico Pedersini Università degli studi di Milano Dipartimento di scienze dell informazione DALab Digital Architectures Lab CUDA 1/49 Outline Introduzione CUDA hardware Programmazione
DettagliLa gerarchia di memorie (2)
La gerarchia di memorie (2) Architetture Avanzate dei Calcolatori Valeria Cardellini Migliorare le prestazioni delle cache Consideriamo la formula del tempo medio di accesso in memoria (AMAT) AMAT = hit
DettagliIl calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica
Il calcolatore È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica ogni livello di descrizione è caratterizzato da una struttura rappresentante l organizzazione
DettagliArchitettura dei calcolatori
Cos'è un calcolatore? Architettura dei calcolatori Esecutore automatico di algoritmi Macchina universale Elementi di Informatica Docente: Giorgio Fumera Corso di Laurea in Edilizia Facoltà di Architettura
DettagliLa memoria - tecnologie
Architettura degli Elaboratori e delle Reti Lezione 26 La memoria - tecnologie Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 25 1/21 Sommario!
DettagliSommario. Processi e Programmi. Che cosa e un Processo? Lezione 5 Processi e Threads
Sommario Lezione 5 Processi e Threads Processi e Programmi Implementazione dei Processi Casi di Studio relativi a Processi Thread Casi di Studio relativi a Thread 5.2 Processi e Programmi Che cosa e un
DettagliParte IV. Architettura della CPU Central Processing Unit
Parte IV Architettura della CPU Central Processing Unit 25/01/2010 Informatica Ingegneria Medica - Prof. Gregorio Cosentino 1 IV.1 Struttura della CPU All interno di un processore si identificano in genere
Dettagli5. I device driver. Device driver - gestori delle periferiche. Struttura interna del sistema operativo Linux. Tipi di periferiche. Tipi di periferiche
Device driver - gestori delle periferiche Struttura interna del sistema operativo Linux Sono moduli software che realizzano l interfacciamento e la gestione dei dispositivi periferici Interagiscono con
Dettagli10 STRUTTURE DI CONTROLLO REPEAT E WHILE. Strutture di controllo e variabili strutturate
LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 10 STRUTTURE DI CONTROLLO REPEAT E WHILE Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II
Dettagliinteroperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse.
Capitolo 7 Le infrastrutture SoftWare Funzioni del sistema operativo Rendere utilizzabili le risorse fisiche presenti nel sistema informatico: correttezza e precision; anywhere, anytime; affidabilità,
DettagliLa memoria - tecnologie
Architettura degli Elaboratori e delle Reti Lezione 26 La memoria - tecnologie Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 26 1/25 Struttura
DettagliIntroduzione al Multithreading
Introduzione al Multithreading Claudia Calidonna Istituto di di Cibernetica C.N.R. Argomenti principali Parleremo di : Processi & Threads Operazioni sui threads ed eventuali confronti tra operazioni sui
DettagliI processi: concetti di base, context switch e scheduling
Corso di laurea in Ingegneria dell Informazione Indirizzo Informatica Reti e sistemi operativi I processi: concetti di base, context switch e scheduling Processo: definizione Processo (o Job): Entità attiva
DettagliArchitettura dei calcolatori
Università degli Studi di Palermo Dipartimento di Ingegneria Informatica Elaborazione di Immagini e Suoni / Riconoscimento e Visioni Artificiali 12 c.f.u. Anno Accademico 2009/2010 Docente: ing. Salvatore
DettagliInformatica/ Ing. Meccanica/ Prof. Verdicchio/ 13/09/2013/ Foglio delle domande/versione 1
Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 13/09/2013/ Foglio delle domande/versione 1 1) Dato un diagramma di flusso quali sono le condizioni necessarie perché si possa costruire un programma corrispondente?
DettagliStruttura interna del sistema operativo Linux
Struttura interna del sistema operativo Linux 5. I device driver A cura di: Anna Antola Giuseppe Pozzi DEI, Politecnico di Milano anna.antola/giuseppe.pozzi@polimi.it -versione del 30 marzo 2004-1-04.-04
DettagliElementi di informatica
Elementi di informatica Architetture degli elaboratori Il calcolatore Un calcolatore è sistema composto da un elevato numero di componenti Il suo funzionamento può essere descritto se lo si considera come
DettagliLez. 4 L hardware. Prof. Pasquale De Michele Gruppo 2
Lez. 4 L hardware 1 Dott. Pasquale De Michele Dipartimento di Matematica e Applicazioni Università di Napoli Federico II Compl. Univ. Monte S.Angelo Via Cintia, I-80126, Napoli pasquale.demichele@unina.it
DettagliElementi di informatica
Elementi di informatica Architetture degli elaboratori Il calcolatore Un calcolatore è sistema composto da un elevato numero di componenti Il suo funzionamento può essere descritto se lo si considera come
DettagliArchitetture Applicative Altri Esempi
Architetture Applicative Altri Esempi Alessandro Martinelli alessandro.martinelli@unipv.it 15 Aprile 2014 Architetture Applicative Altri Esempi di Architetture Applicative Architetture con più Applicazioni
DettagliLezione 22 La Memoria Interna (1)
Lezione 22 La Memoria Interna (1) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Organizzazione della lezione Dove siamo e dove stiamo andando La gerarchia
DettagliCUDA computing with the GPU
CUDA computing with the GPU Federico Pedersini Università degli studi di Milano Dipartimento di scienze dell informazione DALab Digital Architectures Lab CUDA 1/48 Outline! Introduzione! CUDA hardware!
DettagliIl processore Pentium
Caratteristiche principali (I) Architettura interna a 32 bit Address bus a 32 bit: si possono indirizzare fino a 4 GB di memoria fisica Data bus a 64 bit (si tratta in pratica di 2 data bus a 32 bit in
DettagliStruttura di un elaboratore
Struttura di un elaboratore Fondamenti di Informatica 1 Modello architetturale di un computer Ogni computer è costituito da un insieme di blocchi funzionali tra loro interconnessi da sistemi di comunicazioni,
DettagliInput/Output (Cap. 7, Stallings)
Input/Output (Cap. 7, Stallings) Grande varietà di periferiche gestiscono quantità di dati differenti a velocità diverse in formati diversi Tutti più lenti della CPU e della RAM Necessità di avere moduli
DettagliCorso di Fondamenti di Informatica Elementi di Architettura
di Cassino e del Lazio Meridionale Corso di Informatica Elementi di Architettura Anno Accademico 2016/2017 Francesco Tortorella Modello di von Neumann Bus di sistema CPU Memoria Centrale Interfaccia Periferica
DettagliComponenti e connessioni. Capitolo 3
Componenti e connessioni Capitolo 3 Componenti principali CPU (Unità Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro Architettura di Von Neumann Dati e instruzioni in memoria (lettura
DettagliGestione dinamica della memoria
Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2016-2017 Gestione dinamica della memoria Pietro Di Lena - pietro.dilena@unibo.it A pessimistic programmer sees the array as half empty.
DettagliArchitettura degli Elaboratori
Architettura degli Elaboratori Linguaggio macchina e assembler (caso di studio: processore MIPS) slide a cura di Salvatore Orlando, Marta Simeoni, Andrea Torsello Architettura degli Elaboratori 1 1 Istruzioni
DettagliEsame di INFORMATICA Lezione 4
Università di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA Lezione 4 MACCHINA DI VON NEUMANN Il sottosistema di memorizzazione (memoria) contiene dati + istruzioni, inseriti inizialmente tramite
DettagliIl Sistema Operativo Concorrenza e Grafi di precedenza
ISTITUTO TECNICO SECONDO BIENNIO GIORGIO PORCU www.thegiorgio.it Sommario Elaborazione concorrente Elaborazione sequenziale Elaborazione concorrente Elaborazione parallela Grafi di Precedenza Grafi di
DettagliSISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06.
SISTEMI OPERATIVI 06.a Il Nucleo Nucleo di un SO Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher 1 Architettura di base dei SO Due le strutture di riferimento: a
DettagliFondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati
Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli Studi di Bologna Anno Accademico 2008/2009 Sommario
DettagliIntroduzione al Calcolo Parallelo Algoritmi e Calcolo Parallelo. Daniele Loiacono
Introduzione al Calcolo Parallelo Algoritmi e Calcolo Parallelo Riferimenti q Questo materiale deriva dalle slide del prof. Lanzi per il corso di Informatica B, A.A. 2009/2010 q Il materiale presente in
DettagliIndice generale. 1 Il calcolatore: astrazioni. 2 Le istruzioni: il linguaggio. e tecnologia 1. dei calcolatori 57
I Indice generale Prefazione viii 1 Il calcolatore: astrazioni e tecnologia 1 1.1 Introduzione 1 Tipi di calcolatore e loro caratteristiche 2 Cosa si può imparare da questo libro 5 1.2 Cosa c è dietro
DettagliArchitettura degli elaboratori - 2 -
Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Architettura degli elaboratori e gerarchie di memoria Marco Tarini Dipartimento di Scienze Teoriche e Applicate marco.tarini@uninsubria.it
DettagliUniversità di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 1 Martedì 11-10-2016 1 Introduzione Un sistema operativo è un software
DettagliIl computer P R O F. L O R E N Z O P A R I S I
Il computer P R O F. L O R E N Z O P A R I S I Un po di storia Le prime macchine per il calcolo automatico risalgono al 1940. Il calcolatore più potente di quel periodo era l ENIAC, in grado di svolgere
DettagliArchitettura degli Elaboratori
Architettura degli Elaboratori a.a. 2013/14 appello straordinario, 13 aprile 2015 Riportare nome, cognome, numero di matricola e corso A/B Domanda 1 Si consideri la seguente gerarchia di memoria memoria
DettagliSistemi Operativi. Sottosistema di I/O
Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O Patrizia Scandurra Università degli Studi di Bergamo a.a. 2011-12 Sommario L hardware di I/O Struttura Interazione tra computer e controllori
DettagliARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).!
ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).! MACCHINA DI VON NEUMANN! UNITÀ FUNZIONALI fondamentali! Processore
DettagliLa memoria cache. Lab di Calcolatori
La memoria cache 1 Gap delle prestazioni DRAM - CPU 1000 CPU- DRAM Gap CPU Proc 60%/yr. (2X/1.5yr) 100 10 ProcessorMemory Performance Gap: (grows 50% / year) D R A M DRAM9%/yr.(2X/10 yrs) 1 1980 1981 1982
DettagliInformatica/ Ing. Meccanica/ Prof. Verdicchio/ 14/02/2012 / Foglio delle domande / VERSIONE 1
Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 14/02/2012 / Foglio delle domande / VERSIONE 1 1) Il bus in un computer trasporta a) solo dati b) solo istruzioni c) sia dati sia istruzioni 2) In una sequenza
DettagliUniversità degli Studi di Milano - Corso Architettura II Prof. Borghese Appello del
Università degli Studi di Milano - Corso Architettura II Prof. Borghese Appello del 24.02.2016 Cognome e nome: Matricola: 1. [7] Data la CPU N. 1, specificare il contenuto di tutte le linee (dati e controllo).
DettagliParte IV. Architettura della CPU Central Processing Unit
Parte IV Architettura della CPU Central Processing Unit 12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 1 IV.1 Struttura della CPU All interno di un processore si identificano in genere
Dettagli