Implementazione di linguaggi 2. CUDA, query su GPU. Dott Stefano Ghio. Dott Michele Bozzano.
|
|
- Casimiro Salerno
- 8 anni fa
- Visualizzazioni
Transcript
1 Implementazione di linguaggi 2 CUDA, query su GPU Dott Michele Bozzano michele.bozzano@gmail.com Dott Stefano Ghio otacorp@gmail.com
2 GPGPU General purpose processing on the GPU Come dice il nome (Graphics Processing Unit) è il microprocessore di una scheda video ed è stato inizialmente ideato per assolvere compiti specifici di computer grafica. Esso si è evoluto diventando estremamente flessibile e potente, tanto che ci si è chiesti se esistesse la possibilità di sfruttarlo per computazioni general-purpose.
3 Potenzialità del GPGPU La potenza e la flessibilità delle GPU le rende una interessante piataforma per computazioni general purpose. L obbiettivo è quello di mettere a disposizione dei programmatori le potenzialità inutilizzate delle GPU per poterle sfruttare come un co-processore ad alta velocità. Esempi di applicazioni Physical modeling Computational engineering Matrix algebra Convolution Sorting Database operations
4 CPU vs GPU Le GPU stanno diventando sempre più veloci: La crescita annuale di CPU e GPU è determinata dalla seguente legge: CPUs: 1.4 GPUs: 1.7 (pixels) to 2.3 (vertices)
5 GPU vs CPU: NVIDIA 280 vs Intel i multi-processors in a TPC = Thread Processing Cluster (24 cores)
6 GPU vs CPU Peak Performance Trends Le prestazioni massime delle GPU sono cresciute rapidamente L'hardware ha tenuto il passo della legge di Moore
7 CPU vs GPU La maggioranza delle operazioni eseguite su GPU è estremamente ripetiva e le condizioni per cui delle parti di codice vengono eseguite o meno sono molto rare. A grandi linee, infatti, possiamo dire che nelle CPU standard la maggior parte dei transistor è spesa per gestire il controllo (con le cache e la logica di salto), mentre nel caso delle GPU i core sono molto più semplici e veloci e quasi tutta l'area è spesa per implementarli.
8 Problematiche La progettazione delle GPU è guidata dal mercato dei videogiochi e da ciò ne risulta uno stile di programmazione inusuale, con simbolismi legati alla computer grafica e un ambiente di programmazione molto ristretto. Il perfezionamento di linguaggi di programmazione orientati alle GPU, quale CUDA, sta tentando di porre rimedio a questa difficolta di utilizzo.
9 CUDA Compute Unified Device Architecture modello architetturale Application Programming Interface (API) per sfruttare tale architettura una serie di estensioni (C for CUDA) al linguaggio C per descrivere un'applicazione parallela in grado di girare sulle GPU che adottano quel modello La API di CUDA è molto più facile da comprendere rispetto alle API grafiche.
10 CUDA Un'applicazione CUDA è composta da parti seriali, normalmente eseguite dalla CPU di sistema, o host, e da parti parallele, denominate kernel, che vengono invece eseguite dalla GPU, o meglio ancora nei termini usati da NVIDIA, dal device.
11 CUDA Programming Model La GPU è vista come una periferica di elaborazione che: È un coprocessore (slave) della CPU (host) Ha una propria memoria DRAM (device memory) Un kernel è una funzione richiamabile dalla CPU. Un thread è una istanza di un kernel. GPU manda in esecuzione molti threads in parallelo.
12 CUDA Programming Model Host (CPU) Device (GPU) Kernel PCIe Threads (instances of the kernel) Device Memory
13 Thread Batching: Grids and Blocks Un kernel è definito come una grid (griglia), e può a sua volta essere decomposto in blocchi, che vengono assegnati, sequenzialmente, ai vari multiprocessori, e rappresentano un parallelismo a grana grossa. All'interno dei blocchi, c'è l'unità di computazione fondamentale, il thread, ad una granularità di parallelismo molto fine. Un thread può appartenere ad un solo blocco, ed è identificato da un indice univoco per tutto il Host Kernel 1 Kernel 2 Block (1, 1) Threa d (0, 0) Threa d (0, 1) Threa d (0, 2) Device Threa d (1, 0) Threa d (1, 1) Threa d (1, 2) Grid 1 Block (0, 0) Block (0, 1) Grid 2 Threa d (2, 0) Threa d (2, 1) Threa d (2, 2) Block (1, 0) Block (1, 1) Threa d (3, 0) Threa d (3, 1) Threa d (3, 2) Threa d (4, 0) Threa d (4, 1) Threa d (4, 2) Block (2, 0) Block (2, 1)
14 Thread Batching: Grids and Blocks I kernel (le griglie) sono eseguite sequenzialmente tra loro. I blocchi e i thread, invece, sono eseguiti logicamente in parallelo. Il numero di thread fisici in esecuzione in parallelo dipende dalla loro organizzazione in blocchi e dalle loro richieste in termini di risorse rispetto alle risorse disponibili nel device. I blocchi sono pensati per garantire la scalabilità: supponendo di avere un'architettura con solo 2 multiprocessori e un'altra con 4, e un'applicazione decomposta in 8 blocchi, essa potrà essere eseguita su entrambe, ovviamente con tempi (e livelli di parallelismo) diversi. Nel caso si renda successivamente disponibile un'architettura con 8 multiprocessori, l'applicazione automaticamente si adatterà ad essa e potenzialmente scalerà ancora con le prestazioni.
15 Thread Batching: Grids and Blocks
16 Thread Batching: Grids and Blocks La caratteristica fondamentale di CUDA, che rende il modello di programmazione sostanzialmente differente da altri modelli paralleli, normalmente usati dalle CPU, è che per essere efficiente richiede migliaia di thread. Ciò è reso possibile dalla struttura tipica delle architetture grafiche, che impiegano thread molto leggeri e permettono di creare e cambiare i contesti di esecuzione in maniera molto rapida ed efficiente (nessun ciclo di clock).
17 Classi di applicazioni Si comprende abbastanza facilmente che il modello di CUDA si adatta a specifiche classi di applicazione. In particolare, le caratteristiche principali di queste applicazioni sono: presenza di molte operazioni matematiche (grande intensità aritmetica) elevato grado di parallelismo (le stesse operazioni vengono ripetute per una grande quantità di dati) elavata richiesta di banda di memoria condizioni di controllo molto limitate minima dipendenza tra data elements
18 Memory Hierarchy CPU and GPU Memory Hierarchy
19 CPU Memory Hierarchy In qualsiasi punto del programma è possibile Allocare/liberare la memoria locale e quella globale Accedere in maniera random alla memoria Registers Read/write Memory (RAM) Read/write Disk (HD) Read/write
20 GPU Memory Hierarchy Le modalità di accesso alla memoria sono più restrittive È possibile allocare/liberare la memoria solamente prima della computazione L'accesso alla memoria è limitato durante la computazione Registers Read/write Caches and video memory Read/write Memory (RAM) No access Disk access No access
21 CUDA Device Memory Allocation La GPU (o device) può accedere alla sua memoria privata, o global memory. L'host ha la possibilità di spostare i dati in questa memoria tramite le primitive. Ciascun multiprocessore può poi accedere alla propria shared memory, che invece non può in alcun modo essere gestita dall'host. I dati allocati in shared memory hanno una visibilità limitata al singolo blocco di thread CUDA. Host (Device) Grid Block (0, 0) Shared Memory Registers Thread (0, 0) Local Memor y Global Memory Register s Thread (1, 0) Local Memor y Block (1, 0) Shared Memory Register s Thread (0, 0) Local Memor y Register s Thread (1, 0) Local Memor y Constant Memory Texture Memory
22 CUDA Device Memory Allocation Read-write per-thread registers Read-write per-thread local memory Read-write per-block shared memory Read-write per-grid global memory Read-only per-grid constant memory Read-only per-grid texture memory (Device) Grid Block (0, 0) Shared Memory Registers Thread (0, 0) Local Memor y Register s Thread (1, 0) Local Memor y Block (1, 0) Shared Memory Register s Thread (0, 0) Local Memor y Register s Thread (1, 0) Local Memor y Host Global Memory Constant Memory Texture Memory
23 CUDA Device Memory Allocation cudamalloc Alloca gli oggetti nella Device Global Memory Richiede due parametri: L indirizzo di un puntatore all oggetto che si desidera allocare La dimensione dell oggetto da allocare cudafree Libera aree di memoria usate dalla Global Memory Bisogna specificare il puntatore all area di Host (Device) Grid Block (0, 0) Shared Memory Registers Thread (0, 0) Local Memor y Global Memory Constant Memory Texture Memory Register s Thread (1, 0) Local Memor y Block (1, 0) Local Memor y Shared Memory Register s Thread (0, 0) Register s Thread (1, 0) Local Memor y
24 CUDA Device Memory Allocation cudamemcpy() (Device) Grid esegue le operazioni di copia Block (0, 0) Block (1, 0) Richiede quattro parametri Un puntatore ad un area di memoria sorgente Shared Memory Registers Register s Shared Memory Register s Register s Un puntatore ad area di memoria destinazione Thread (0, 0) Thread (1, 0) Thread (0, 0) Thread (1, 0) Il numero di bytes da copiare La direzione dell operazione: Host to Device Device to Host Device to Device Host Local Memor y Global Memory Constant Memory Texture Memory Local Memor y Local Memor y Local Memor y
25 Programma di esempio // include di sistema #include <stdio.h> #include <assert.h> int main( int argc, char** argv) { //puntatore all'area di memoria sull'host float *h_a; //dimensioni di tale area di memoria int dima; //variabile contatore int n; // puntatori alle aree di memoria sul device float *d_a, *d_b; // allocazione ed inizializzazione della memoria sull'host // definizione delle dimensioni dima = 8; //esecuzione della malloc h_a = (float *) malloc(dima*sizeof(float)); //inizializzazione for (n=0; n<dima; n++) { h_a[n] = (float) n; } // Allocazione della memoria sul device size_t memsize = dima*sizeof(float); cudamalloc( (void**)&d_a, memsize ); cudamalloc( (void**)&d_b, memsize ); } // Memcopy dall'host al device cudamemcpy( d_a, h_a, memsize, cudamemcpyhosttodevice ); // Memcopy da device a device cudamemcpy( d_b, d_a, memsize, cudamemcpydevicetodevice ); // Cancellazione dei dati nell'area di memoria sull'host for (n=0; n<dima; n++) { h_a[n] = 0.f; } // Copia dal device all'host cudamemcpy( h_a, d_b, memsize, cudamemcpydevicetohost ); // verify the data on the host is correct for (n=0; n<dima; n++) { assert(h_a[n] == (float) n); } // Liberazione della memoria sul device cudafree( d_b ); cudafree( d_a ); // liberazione della memoria dell'host free(h_a); // Se il programma arriva fin qua, tutto corretto! printf("corretto!\n"); return 0;
26 Il costo di accesso alla memoria I registri sono estremamente veloci ma sono risorse limitate Anche le memorie cache tendono a essere di dimensioni ridotte Per grandi data sets, la memoria globale fornisce read/write access Gli accessi avvengono in circa cicli di clock Gli accessi non sono mantenuti in cache Per coprire la latenza di memoria, l'hardware fornisce veloci cambi di contesto quando la memoria è acceduta È necessario che ci sia una grande quantità di calcoli da eseguire per coprire l'alto costo di accesso alla memoria I programmi devono essere intelligenti I compilatori spesso non forniscono la necessaria ottimizzazione in fatto di velocità, ma piuttosto di dimensioni del codice Può essere a volte conveniente ricalcolare un risultato invece di accedere alla memoria.
27 Ottimizzare query SQL con CUDA L'alto grado di parallelismo che caratterizza le GPU le rende molto appetibili per implementare query SQL in modo efficace ed efficiente Prenderemo in considerazione alcune query d'esempio effettuate con SQLite
28 SQLite, perchè? Opensource Leggero e di piccole dimensioni Fornito come codice C, molto ottimizzabile direttamente dal compilatore del progetto
29 SQLite - funzionamento Per poter migliorare qualcosa bisogna prima capire come funziona SQLite trasforma ogni query SQL in una sequenza di opcode, simili a codice assembler Ad ogni opcode corrisponde un comando preciso eseguito all'interno del database
30 SQLite funzionamento (cont) Analizzando la sequenza di opcode ottenuti è possibile individuare punti critici sui quali ottimizzare Il programma scritto in opcode viene eseguito da una macchina virtuale che controlla l'esecuzione del codice tramite switch e jump.
31 Esperimento - descrizione Data set composto solo da numeri interi ed in virgola mobile con precisione singola e doppia Tutto il data set (1-5 milioni di tuple) risiede in memoria al momento di effettuare le query, che sono tutte di tipo SELECT
32 Esperimento - sistema Processore Intel Xeon X5550 (2,66GHz quadcore con supporto a 8 hardware thread e banda massima 32GB/s) Kernel Linux GB di memoria Nvidia TESLA C1060 (240 streaming multiprocessors, 4GB memoria e banda massima di 102GB/s)
33 Esperimento data set Generato con il generatore di numeri casuali della libreria scientifica GNU Una colonna per ogni tipo di dato ha una distribuzione uniforme nell'intervallo [-99.0,99.0], Una colonna ha una distribuzione normale con una sigma di 5 ed una ha distribuzione normale con sigma 20 5 milioni di tuple contenenti un id, tre interi e tre floating point. Indicheremo con uniformt e normaltn tali colonne dove T è i oppure f per indicare se si tratta di dato intero o floating point ed N è 5 o 20 a seconda della sigma.
34 Esperimento - query
35 Esperimento query (cont)
36 Esperimento da query a opcode
37 Esperimento da query a opcode (cont) Non tutti gli opcode sono rilevanti ai fini dell'esperimento e non saranno perciò implementati Il flusso del programma è regolato da jump, non tutti gli opcode sono eseguiti in sequenza Alcuni opcode sono eseguiti per ogni riga del data set e sono quindi parallelizzabili Si passa per un formato intermedio chiamato Sphyraena
38 Esperimento da query a opcode (cont) [ ] // find the first OP_Next for(i = 0; i < vdbe->nop && o[i].opcode!= OP_Next; i++); // set start to the destination of OP_Next when it jumps back // to start the next row int start = o[i].p2; [...]
39 Esperimento da query a opcode switch(op->opcode) { case OP_Int64 : // p4 normally stores a pointer to an int64, // dereference for the gpu op->p4.li = o[i].p4.pi64[0]; break; (cont) case OP_Real : // p4 normally stores a pointer to a double, // dereference for the gpu op->p4.d = o[i].p4.preal[0]; break; // SQLite stores the type of aggregate as a string, // translate it to an int case OP_AggStep : case OP_AggFinal : agg_name = o[i].p4.pfunc->zname; if(strcmp(agg_name, SPHYRAENA_AGG_STR_COUNT) == 0) { op->p4.i = SPHYRAENA_AGG_COUNT; } else if(strcmp(agg_name, SPHYRAENA_AGG_STR_MAX) == 0) { op->p4.i = SPHYRAENA_AGG_MAX; } else if(strcmp(agg_name, SPHYRAENA_AGG_STR_MIN) == 0) { op->p4.i = SPHYRAENA_AGG_MIN; } else if(strcmp(agg_name, SPHYRAENA_AGG_STR_SUM) == 0) { op->p4.i = SPHYRAENA_AGG_SUM; } else if(strcmp(agg_name, SPHYRAENA_AGG_STR_AVG) == 0) { op->p4.i = SPHYRAENA_AGG_AVG; } break; }
40 Esperimento - risultati
41 Bibliografia
GPGPU 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
DettagliArchitettura hardware
Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione
DettagliFONDAMENTI di INFORMATICA L. Mezzalira
FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software
DettagliI Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo
I Thread 1 Consideriamo due processi che devono lavorare sugli stessi dati. Come possono fare, se ogni processo ha la propria area dati (ossia, gli spazi di indirizzamento dei due processi sono separati)?
DettagliDispensa di Informatica I.1
IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.
DettagliIl processore. Il processore. Il processore. Il processore. Architettura dell elaboratore
Il processore Architettura dell elaboratore Il processore La esegue istruzioni in linguaggio macchina In modo sequenziale e ciclico (ciclo macchina o ciclo ) Effettuando operazioni di lettura delle istruzioni
DettagliINFORMATICA 1 L. Mezzalira
INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello
DettagliEsame di INFORMATICA
Università di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA Lezione 4 MACCHINA DI VON NEUMANN Anni 40 i dati e i programmi che descrivono come elaborare i dati possono essere codificati nello
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
DettagliValutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput
Valutazione delle Prestazioni Architetture dei Calcolatori (Lettere A-I) Valutazione delle Prestazioni Prof. Francesco Lo Presti Misura/valutazione di un insieme di parametri quantitativi per caratterizzare
DettagliDefinizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base
Sistema operativo Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Architettura a strati di un calcolatore
DettagliIntroduzione alle tecnologie informatiche. Strumenti mentali per il futuro
Introduzione alle tecnologie informatiche Strumenti mentali per il futuro Panoramica Affronteremo i seguenti argomenti. I vari tipi di computer e il loro uso Il funzionamento dei computer Il futuro delle
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
DettagliUniversità degli Studi di Salerno
Università degli Studi di Salerno Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Tesi di Laurea Algoritmi basati su formule di quadratura interpolatorie per GPU ABSTRACT
DettagliInformatica - A.A. 2010/11
Ripasso lezione precedente Facoltà di Medicina Veterinaria Corso di laurea in Tutela e benessere animale Corso Integrato: Matematica, Statistica e Informatica Modulo: Informatica Esercizio: Convertire
DettagliPiù processori uguale più velocità?
Più processori uguale più velocità? e un processore impiega per eseguire un programma un tempo T, un sistema formato da P processori dello stesso tipo esegue lo stesso programma in un tempo TP T / P? In
DettagliCalcolatori Elettronici A a.a. 2008/2009
Calcolatori Elettronici A a.a. 2008/2009 PRESTAZIONI DEL CALCOLATORE Massimiliano Giacomin Due dimensioni Tempo di risposta (o tempo di esecuzione): il tempo totale impiegato per eseguire un task (include
DettagliC. P. U. MEMORIA CENTRALE
C. P. U. INGRESSO MEMORIA CENTRALE USCITA UNITA DI MEMORIA DI MASSA La macchina di Von Neumann Negli anni 40 lo scienziato ungherese Von Neumann realizzò il primo calcolatore digitale con programma memorizzato
DettagliIntroduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6
Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...
DettagliLaboratorio di Informatica
per chimica industriale e chimica applicata e ambientale LEZIONE 4 La CPU e l esecuzione dei programmi 1 Nelle lezioni precedenti abbiamo detto che Un computer è costituito da 3 principali componenti:
DettagliHARD COMPUTING APPLICATO A QUERY SQL
HARD COMPUTING APPLICATO A QUERY SQL DOTT. STEFANO GHIO DISI DIPARTMENTO DI INFORMATICA E SCIENZE DELL'INFORMAZIONE, GENOVA RELAZIONE PER IMPLEMENTAZIONE DI LINGUAGGI DOCENTE PROF. MASSIMO ANCONA 1 Indice
DettagliCorso di Sistemi di Elaborazione delle informazioni
Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi Francesco Fontanella Complessità del Software Software applicativo Software di sistema Sistema Operativo Hardware 2 La struttura del
DettagliAppunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione
Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione Marco Liverani (liverani@mat.uniroma3.it)
DettagliIl software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.
I Sistemi Operativi Il Software di Base Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer. Il sistema operativo è il gestore di tutte le risorse
DettagliSISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Prof. Andrea Borghesan venus.unive.it/borg borg@unive.it Ricevimento: martedì, 12.00-13.00. Dip. Di Matematica Modalità esame: scritto + tesina facoltativa 1
DettagliIl Software. Il software del PC. Il BIOS
Il Software Il software del PC Il computer ha grandi potenzialità ma non può funzionare senza il software. Il software essenziale per fare funzionare il PC può essere diviso nelle seguenti componenti:
DettagliArchitettura del calcolatore
Architettura del calcolatore La prima decomposizione di un calcolatore è relativa a due macro-componenti: Hardware Software Architettura del calcolatore L architettura dell hardware di un calcolatore reale
DettagliL informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia
L informatica È la disciplina scientifica che studia INTRODUZIONE I calcolatori, nati in risposta all esigenza di eseguire meccanicamente operazioni ripetitive Gli algoritmi, nati in risposta all esigenza
DettagliOrganizzazione della memoria principale Il bus
Corso di Alfabetizzazione Informatica 2001/2002 Organizzazione della memoria principale Il bus Organizzazione della memoria principale La memoria principale è organizzata come un insieme di registri di
DettagliLa macchina di Von Neumann. Archite(ura di un calcolatore. L unità di elaborazione (CPU) Sequenza di le(ura. Il bus di sistema
La macchina di Von Neumann rchite(ura di un calcolatore us di sistema Collegamento Unità di Elaborazione (CPU) Memoria Centrale (MM) Esecuzione istruzioni Memoria di lavoro Interfaccia Periferica P 1 Interfaccia
DettagliVarie tipologie di memoria
Varie tipologie di memoria velocita` capacita` registri CPU memoria cache memoria secondaria (Hard Disk) Gestione della memoria Una parte della viene riservata per il SO I programmi per poter essere eseguiti
DettagliOrganizzazione della memoria
Memorizzazione dati La fase di codifica permette di esprimere qualsiasi informazione (numeri, testo, immagini, ecc) come stringhe di bit: Es: di immagine 00001001100110010010001100110010011001010010100010
DettagliIl Sistema Operativo. C. Marrocco. Università degli Studi di Cassino
Il Sistema Operativo Il Sistema Operativo è uno strato software che: opera direttamente sull hardware; isola dai dettagli dell architettura hardware; fornisce un insieme di funzionalità di alto livello.
DettagliDATABASE. www.andreavai.it
Cos'è un database? Quando si usa? Differenze con i fogli elettronici Le tabelle: record, campi, tipi di dati Chiavi e indici Database relazionali (R-DBMS) Relazioni uno-a-uno Relazioni uno-a-molti Relazioni
DettagliGestione della memoria centrale
Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti
DettagliINFORMATICA. Il Sistema Operativo. di Roberta Molinari
INFORMATICA Il Sistema Operativo di Roberta Molinari Il Sistema Operativo un po di definizioni Elaborazione: trattamento di di informazioni acquisite dall esterno per per restituire un un risultato Processore:
DettagliScenario di Progettazione
Appunti del 3 Ottobre 2008 Prof. Mario Bochicchio SCENARIO DI PROGETTAZIONE Scenario di Progettazione Il Committente mette a disposizione delle risorse e propone dei documenti che solitamente rappresentano
DettagliArchitettura di un calcolatore
2009-2010 Ingegneria Aerospaziale Prof. A. Palomba - Elementi di Informatica (E-Z) 7 Architettura di un calcolatore Lez. 7 1 Modello di Von Neumann Il termine modello di Von Neumann (o macchina di Von
DettagliStrutturazione logica dei dati: i file
Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer
DettagliCOS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware COS È UN LINGUAGGIO? Un linguaggio è un insieme di parole e di metodi di combinazione delle
DettagliHBase Data Model. in più : le colonne sono raccolte in gruppi di colonne detti Column Family; Cosa cambia dunque?
NOSQL Data Model HBase si ispira a BigTable di Google e perciò rientra nella categoria dei column store; tuttavia da un punto di vista logico i dati sono ancora organizzati in forma di tabelle, in cui
DettagliSpeedup. Si definisce anche lo Speedup relativo in cui, invece di usare T 1 si usa T p (1).
Speedup Vediamo come e' possibile caratterizzare e studiare le performance di un algoritmo parallelo: S n = T 1 T p n Dove T 1 e' il tempo impegato dal miglior algoritmo seriale conosciuto, mentre T p
DettagliCPU. Maurizio Palesi
CPU Central Processing Unit 1 Organizzazione Tipica CPU Dispositivi di I/O Unità di controllo Unità aritmetico logica (ALU) Terminale Stampante Registri CPU Memoria centrale Unità disco Bus 2 L'Esecutore
DettagliDispensa di database Access
Dispensa di database Access Indice: Database come tabelle; fogli di lavoro e tabelle...2 Database con più tabelle; relazioni tra tabelle...2 Motore di database, complessità di un database; concetto di
DettagliIntroduzione alla Virtualizzazione
Introduzione alla Virtualizzazione Dott. Luca Tasquier E-mail: luca.tasquier@unina2.it Virtualizzazione - 1 La virtualizzazione è una tecnologia software che sta cambiando il metodo d utilizzo delle risorse
DettagliIntroduzione alla programmazione in C
Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale
DettagliCon il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.
Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell
DettagliLa microarchitettura. Didattica della strumentazione digitale e sistemi a microprocessore anno accademico 2006 2007 pagina 1
La microarchitettura. anno accademico 2006 2007 pagina 1 Integer Java virtual machine Ogni microprocessore può avere una microarchitettura diversa, ma la modalità di funzionamento per certi aspetti è generale.
DettagliInformatica di base. Hardware: CPU SCHEDA MADRE. Informatica Hardware di un PC Prof. Corrado Lai
Informatica di base Hardware: CPU SCHEDA MADRE HARDWARE DI UN PC 2 Hardware (parti fisiche) Sono le parti fisiche di un Personal Computer (processore, scheda madre, tastiera, mouse, monitor, memorie,..).
DettagliArchitettura dei computer
Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore (CPU) la memoria principale (RAM) la memoria secondaria i dispositivi di input/output Il processore
DettagliScheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux
Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola
DettagliBDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software. Caratteristiche fondamentali. Linguaggi utilizzati. Navigazione 3D
BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software BDX 3D Editor è un programma che permette di navigare ed editare texture in un qualsiasi modello 3D.E compatibile con i software in grado di esportare
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
DettagliHardware di un Computer
Hardware di un Computer Monitor Mouse Tastiera Printer Disk CPU Graphics Adapter USB Controller Parallel Port Disk Controller BUS Memoria RAM Memoria ROM (BIOS) DMA CPU esegue istruzioni, effettua calcoli,
DettagliSistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1
IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza
DettagliLinux nel calcolo distribuito
openmosix Linux nel calcolo distribuito Dino Del Favero, Micky Del Favero dino@delfavero.it, micky@delfavero.it BLUG - Belluno Linux User Group Linux Day 2004 - Belluno 27 novembre openmosix p. 1 Cos è
DettagliDatabase. Si ringrazia Marco Bertini per le slides
Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida
DettagliLINGUAGGI DI PROGRAMMAZIONE
LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni di
DettagliStruttura del calcolatore
Struttura del calcolatore Proprietà: Flessibilità: la stessa macchina può essere utilizzata per compiti differenti, nessuno dei quali è predefinito al momento della costruzione Velocità di elaborazione
DettagliAccess. P a r t e p r i m a
Access P a r t e p r i m a 1 Esempio di gestione di database con MS Access 2 Cosa è Access? Access e un DBMS che permette di progettare e utilizzare DB relazionali Un DB Access e basato sui concetti di
DettagliComputazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2
Computazione multi-processo Avere più processi allo stesso momento implica/richiede Processi e Threads Pt. 2 Concorrenza ed efficienza Indipendenza e protezione dei dati ma deve prevedere/permettere anche:
DettagliIl microprocessore 8086
1 Il microprocessore 8086 LA CPU 8086 Il microprocessore 8086 fa parte della famiglia 80xxx della INTEL. Il capostipite di questa famiglia è stato l 8080, un microprocessore ad 8 bit che ha riscosso un
DettagliSOFTWARE PER LA RILEVAZIONE DEI TEMPI PER CENTRI DI COSTO
SOFTWARE PER LA RILEVAZIONE DEI TEMPI PER CENTRI DI COSTO Descrizione Nell ambito della rilevazione dei costi, Solari con l ambiente Start propone Time&Cost, una applicazione che contribuisce a fornire
DettagliLa gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)
La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema
DettagliSISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09
SISTEMI OPERATIVI Prof. Enrico Terrone A. S: 2008/09 Che cos è il sistema operativo Il sistema operativo (SO) è il software che gestisce e rende accessibili (sia ai programmatori e ai programmi, sia agli
DettagliIl Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10
Il Software e Il Sistema Operativo Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Cosa Impareremo Programmi e Processi Struttura del Sistema Operativo Sviluppo di Programmi I files e la loro
DettagliDall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni
Dall Algoritmo al Programma Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni IL PROGRAMMA Gli algoritmi sono modelli di descrizione astratti e per controllarne il funzionamento devono essere
DettagliIl Sistema Operativo. Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo
Il Sistema Operativo Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo ... ma Cos'è un S.O.? un PROGRAMMA!... ma Cos'è un programma? PROGRAMMA: 1. algoritmo sequenza
Dettagli1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi
1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi Il processo E' un programma in esecuzione Tipi di processo Stati di un processo 1 indipendenti
DettagliLinux lo installo a 32 o 64 bit? (teoria e pratica)
Linux lo installo a 32 o 64 bit? (teoria e pratica) Roberto Metere 26 ottobre 2013 Accenni teorici E ad un certo punto... più bit Compatibilità e innovazione Sfida teorica Test pratici Sistema di riferimento
DettagliApproccio stratificato
Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia
DettagliTecniche per il progetto di sistemi elettronici tolleranti ai guasti
Tecniche per il progetto di sistemi elettronici tolleranti ai guasti Fulvio Corno, Maurizio Rebaudengo, Matteo Sonza Reorda Politecnico di Torino Dipartimento di Automatica e Informatica Le tecniche di
DettagliUlteriore Parallelismo Corso di sviluppo Nvidia CUDA TM. Davide Barbieri
Ulteriore Parallelismo Corso di sviluppo Nvidia CUDA TM Davide Barbieri Panoramica Lezione Soluzioni Multi-GPU Memoria Page-Locked Unified Virtual Address CUDA Stream Modalità Zero-Copy CUDA Multi-GPU
DettagliCorso di Informatica
Corso di Informatica Modulo T2 1 Sistema software 1 Prerequisiti Utilizzo elementare di un computer Significato elementare di programma e dati Sistema operativo 2 1 Introduzione In questa Unità studiamo
DettagliSistemi Operativi (modulo di Informatica II) I processi
Sistemi Operativi (modulo di Informatica II) I processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario Il concetto di processo Schedulazione dei processi e cambio di contesto
DettagliSistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione
IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza
DettagliMacchine a stati finiti. Sommario. Sommario. M. Favalli. Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante:
Sommario Macchine a stati finiti M. Favalli Engineering Department in Ferrara 4 Sommario (ENDIF) Analisiesintesideicircuitidigitali / 35 (ENDIF) Analisiesintesideicircuitidigitali 2 / 35 4 Le macchine
DettagliLivello logico digitale. bus e memorie
Livello logico digitale bus e memorie Principali tipi di memoria Memoria RAM Memorie ROM RAM (Random Access Memory) SRAM (Static RAM) Basata su FF (4 o 6 transistor MOS) Veloce, costosa, bassa densità
Dettagli1.4a: Hardware (Processore)
1.4a: Hardware (Processore) 2 23 nov 2011 Bibliografia Curtin, Foley, Sen, Morin Informatica di base, Mc Graw Hill Ediz. Fino alla III : cap. 3.8, 3.9 IV ediz.: cap. 2.6, 2.7 Questi lucidi 23 nov 2011
DettagliFasi di creazione di un programma
Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma
DettagliMateriali per il modulo 1 ECDL. Autore: M. Lanino
Materiali per il modulo 1 ECDL Autore: M. Lanino RAM, l'acronimo per "random access memory", ovvero "memoria ad acceso casuale", è la memoria in cui vengono caricati i dati che devono essere utilizzati
DettagliIl memory manager. Gestione della memoria centrale
Il memory manager Gestione della memoria centrale La memoria La memoria RAM è un vettore molto grande di WORD cioè celle elementari a 16bit, 32bit, 64bit (2Byte, 4Byte, 8Byte) o altre misure a seconda
DettagliIn un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 :
Un Sistema Operativo è un insieme complesso di programmi che, interagendo tra loro, devono svolgere una serie di funzioni per gestire il comportamento del computer e per agire come intermediario consentendo
DettagliIntroduzione a Dev-C++
Introduzione a Dev-C++ Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Note: Dev-C++ richiede Windows 95/98/NT/2000/XP
DettagliLezione V. Aula Multimediale - sabato 29/03/2008
Lezione V Aula Multimediale - sabato 29/03/2008 LAB utilizzo di MS Access Definire gli archivi utilizzando le regole di derivazione e descrivere le caratteristiche di ciascun archivio ASSOCIAZIONE (1:1)
DettagliSistema operativo: Gestione della memoria
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e
DettagliArchitettura MVC-2 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3
Architettura MVC-2 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3 Verso l architettura MVC-2 2 Il secondo passo verso l architettura MVC-2 è quello di separare il controllo dell
DettagliCosa è un foglio elettronico
Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti
DettagliDMA Accesso Diretto alla Memoria
Testo di rif.to: [Congiu] - 8.1-8.3 (pg. 241 250) 08.a DMA Accesso Diretto alla Memoria Motivazioni Organizzazione dei trasferimenti DMA Arbitraggio del bus di memoria Trasferimento di un blocco di dati
DettagliVMware. Gestione dello shutdown con UPS MetaSystem
VMware Gestione dello shutdown con UPS MetaSystem La struttura informatica di una azienda Se ad esempio consideriamo la struttura di una rete aziendale, i servizi offerti agli utenti possono essere numerosi:
DettagliGESTIONE DEI PROCESSI
Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto
DettagliFondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main
Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli
DettagliAllocazione dinamica della memoria - riepilogo
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Storage duration Allocazione dinamica della
DettagliIl Sistema Operativo (1)
E il software fondamentale del computer, gestisce tutto il suo funzionamento e crea un interfaccia con l utente. Le sue funzioni principali sono: Il Sistema Operativo (1) La gestione dell unità centrale
DettagliCLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO
CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO 1 Domanda [1 punto] Dato il formato in virgola mobile su 32 bit così definito (precisione singola): o 1
DettagliAmbienti di calcolo a griglia Parte 2. Risorse (e loro gestione) Job di griglia e applicazioni di griglia Riservare le risorse ai job
Ambienti di calcolo a griglia Parte 2 Risorse (e loro gestione) Job di griglia e applicazioni di griglia Riservare le risorse ai job Docente: Marcello CASTELLANO La vera rivoluzione non è più la capacità
DettagliScienze della Comunicazione Università di Salerno. UD 3.2a: Introduzione alla Programmazione
UD 3.2a: Introduzione alla Programmazione Bibliografia Curtin, (vecchie edizioni) 12.1 Curtin (IV edizione): 11.1 Questi lucidi Il concetto di programma memorizzato Gli elettrodomestici di uso quotidiano
DettagliMac Application Manager 1.3 (SOLO PER TIGER)
Mac Application Manager 1.3 (SOLO PER TIGER) MacApplicationManager ha lo scopo di raccogliere in maniera centralizzata le informazioni piu salienti dei nostri Mac in rete e di associare a ciascun Mac i
DettagliOrganizzazione degli archivi
COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i
DettagliPrestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.
Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.net Prestazioni Si valutano in maniera diversa a seconda dell
Dettagli