NVIDIA Fermi: l introduzione delle GPU nell High Performance Computing

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "NVIDIA Fermi: l introduzione delle GPU nell High Performance Computing"

Transcript

1 Scuola Politecnica e delle Scienze di Base Corso di Laurea in Ingegneria Informatica Elaborato finale in Calcolatori Elettronici I NVIDIA Fermi: l introduzione delle GPU nell High Performance Computing Anno Accademico 2014/2015 Candidato: Erasmo La Montagna matr. N46/1261

2 Ai miei genitori. Dal primo passo mosso sulla terra ad ogni traguardo che raggiungerò. Grazie

3 Indice Introduzione iv 1 Prerequisiti dell High Performance Computing 1 2 La gerarchia CUDA 4 3 Architettura Streaming Multiprocessor Dual Warp e GigaThread Scheduler Memory Subsystem Supporto a operazioni su Floating Point Formati Accuratezza Conclusioni 20 Ringraziamenti 22 Bibliografia 24 ii

4 Elenco delle figure 1.1 Processore Intel Core i Gerarchia CUDA Architettura Fermi Streaming Multiprocessor Dual Warp Scheduler Esecuzione seriale e concorrente dei kernel Mappatura spazio di indirizzamento Memory Hierarchy MAD e FMA Codifica float (32 bit) e double (64 bit) Metodo lineare Metodo FMA iii

5 Introduzione Negli ultimi 30 anni il progresso tecnologico nel campo dei microprocessori ha subito profonde mutazioni. In passato il mercato focalizzava il proprio interesse in architetture sempre più complesse che aumentassero la frequenza di clock, oggi un maggiore interesse verte sul multicore design. In tale contesto si collocano le GPU (Graphic Processing Unit), le quali meglio soddisfano le esigenze delle moderne architetture di calcolatori paralleli e si collocano al fianco delle CPU, che hanno dominato il mercato da sempre. Le GPU sono ottimizzate per l elaborazione di massicci calcoli matriciali, necessari alla modellazione di oggetti all interno del sottosistema 3D di un computer. Effettivamente, tali capacità computazionali potevano trovare largo impiego nell ambito del calcolo scentifico. Dopo aver acquisito grande popolarità nel campo del Gaming, società come la NVIDIA investirono nell HPC (High Performance Computing). La combinazione di architetture GPU e APIs dedicate permise di ottenere performance superiori tanto da definire tali architetture GPGPU (General Purpose GPU). Tuttavia vi erano degli inconvenienti: la mancanza di supporto per operazioni di calcolo a doppia precisione inficiava l idoneità delle GPGPU al calcolo scientifico, era necessario adattare algoritmi General Purpose ad altri dedicati alla modellazione 3D di superfici e forme. L utente programmatore avrebbe dovuto conoscere dettagliatamente iv

6 Introduzione le API e l architettura della GPU per sviluppare applicazioni significative. Era necessaria trasformare un architettura dedicata in una generica che mantenesse le stesse capacità e permettesse un più semplice approccio per gli sviluppatori. NVIDIA compì il primo passo verso la soluzione introducendo due innovazioni: CUDA, piattaforma software e hardware in grado di fornire compatibilità con un ampia varietà di linguaggi di alto livello, e l architettura G80, prima ad offrire supporto a operazioni Double Precision Floating Point, ricorrenti nelle applicazioni HPC. Il passo successivo fu apportato con l architettura Fermi, le cui prerogative erano di soddisfare completamente le specifiche necessarie alle GPU per utilizzo in campo scientifico. v

7 Capitolo 1 Prerequisiti dell High Performance Computing É ben chiaro che l architettura di una GPU debba totalmente discostarsi da quelle delle CPU, tanto da poterle considerare complementari. Le CPU hanno sempre rispettato, durante la loro evoluzione, il paradigma del lavoro seriale, dunque focalizzato su attività Single-Thread alle spese del parallelismo. Solo nell ultimo decennio si è vista una maggiore propensione a soddisfare il bisogno di parallelizzare il calcolo in molteplici attività dal marketing alla fluidodinamica. Le architetture multicore sono cresciute di pari passo con i compilatori, i quali sempre meglio mascherano la complessità crescente delle CPU. Nonostante ciò, queste restano specializzate perlopiù in attività single-thread e restano ben lontane dalle necessità di una struttura ad alte prestazioni. Il calcolo scientifico, comporta grandi quantità di calcoli simili tra loro, basti pensare a un prodotto riga per colonna o un prodotto di convoluzione, dunque perlopiù un gran numero di operazioni basilari che attingono alla stessa porzione di dati. Altro prerequisito è l accuratezza dei risultati, le operazione su numeri a 1

8 Capitolo 1. Prerequisiti dell High Performance Computing virgola mobile sono ricorrenti in applicazioni di uso scientifico e richiedono vincoli piu stringenti sull approssimazione delle cifre. Osservando piu da vicino la componente dedicata al calcolo numerico in un processore Intel Core i7, e evidente che la ALU copre solo una limitata porzione della superficie di ogni singolo core. Figura 1.1: Processore Intel Core i7 Una cosı ridotta superficie dedicata al calcolo spiega che le CPU (anche le piu prestanti) non sono ottimizzate per l High Performance Computing. Buona parte della circuiteria delle CPU e dedicata alle cache, ai decodificatori di istruzioni e ad altri accorgimenti altamente speculativi poco riscontrabili visivamente, ma che incrementano ampiamente le prestazioni in attivita single-thread. Un alto livello di speculazione coinvolge sia la struttura del software che dell hardware. Eseguire istruzioni senza conoscere la reale necessita del risultato di tali istruzioni e alla base della speculazione e cio e realizzato nella pratica tramite le cache. Esse lavorano seguendo il principio di localita dei processi, si puo dire che tirano a indovinare quali dati 2

9 Capitolo 1. Prerequisiti dell High Performance Computing saranno più spesso utilizzati durante l esecuzione di un processo. Le cache consumano spazio, ne consegue che un architettura altamente speculativa dovrà fronteggiare un inevitabile Trade-Off, lo spazio occupato dalle cache è sottratto ad altre unità meno prioritarie, quali la ALU in tal caso. L architettura Nvidia Fermi nasce con l intento di definire una struttura che si avvicini allo scenario dell HPC, andando incontro alle effettive necessità di questo campo applicativo. Tra queste si sottolinea la conformità allo standard IEEE , che definisce le corrette modalità di approssimazione dei risultati di operazioni su floating point. Inoltre presenta una vasta gamma di innovazioni che favorisce la performance di operazioni con un alto grado di parallelismo. 3

10 Capitolo 2 La gerarchia CUDA Prima di presentare le principali caratteristiche della NVIDIA Fermi verrà descritta un architettura hardware e software appositamente ideata e associata ad ogni modello prodotto dalla società. CUDA (acronimo di Compute Unified Device Architecture) è massicciamente ottimizzata per l esecuzione di programmi di calcolo parallelo sulle GPU NVIDIA. Seppure il supporto sia esteso a svariati linguaggi di programmazione quali C (CUDA-C), MATLAB, Java, Fortran, Python; il modello software resta invariato. CUDA è strutturato gerarchicamente, l elemento basilare è il thread. Ogni thred è dotato di una memoria locale privata. Più thread paralleli sono organizzati in kernel e un applicazione può invocare l esecuzione di più kernel paralleli. Il programmatore può dividere a sua volta più thread paralleli in blocchi (thread blocks) che compongono griglie (grids). Un thread block è un insieme di più thread concorrenti che cooperano, la cooperazione è realizzata mediante sincronizzazione e memoria condivisa. Una griglia consiste in un array di thread block che condividono lo stesso kernel, ogni thread sarà un istanza di quel kernel. 4

11 Capitolo 2. La gerarchia CUDA Figura 2.1: Gerarchia CUDA Tutti i thread di una griglia utilizzano la memoria globale per effettuare operazioni di lettura e scrittura, a valle della sincronizzazione attuata tramite chiamate al kernel. Dal punto di vista hardware la gerarchia dei thread rispecchia a sua volta una struttura anch essa a livelli. L intera GPU può eseguire uno o più kernel e dunque più griglie. Al livello sottostante gli Streaming Multiprocessors (SM) eseguono più blocchi di thread, smistando i singoli thread ai proprio core CUDA o altre unità di esecuzione (se ne parlerà nel prossimo capitolo). I thread sono organizzati in gruppi da 32 detti warp, risulta vantaggioso per le performance eseguire warp di thread che condividono la stessa porzione di dati indirizzati in memoria perchè ovviamente limitano gli accessi alla memoria centrale. 5

12 Capitolo 3 Architettura Si espongono ora le generalità della topologia in analisi. La Fermi è caratterizzata da 512 core CUDA dislocati in 16 SM (Streaming Multiprocessor), ognuno comprendente dunque 32 core. Gli SM sono posizionati attorno ad una cache L2 comune. Ognuno di essi possiede un proprio scheduler, un dispatcher (in arancione), un unità di esecuzione (in verde), una cache L1 e un register file (in azzurro). La memoria DRAM è distribuita in sei partizioni da 64 bit per un totale di 384 bit di interfaccia di memoria che possono supportare un massimo di 6 GB di memoria RAM GDDR5. 6

13 Capitolo 3. Architettura Figura 3.1: Architettura Fermi 3.1 Streaming Multiprocessor Ogni SM è costituito da 32 core che presentano una duplice struttura: un unità logico-aritmetica (ALU) e un unità di elaborazione a virgola mobile (FPU), quest ultima coerente con lo standard IEEE Questo connubio permette di realizzare istruzioni Fused Multiply-Add (FMA) ossia, in occorrenza di moltiplicazioni e addizioni eseguite in successione (molto spesso ricorrenti nel calcolo vettoriale) è possibile eseguire una moltiplicazione e un addizione in un singolo ciclo senza perdita di precisione. Tale aumento di performance giova particolarmente in applicazioni di tipo scientifico, in cui calcoli vettoriali massicci possono essere facilmente parallelizzati e velocizzati senza conseguenze negative. A valle dei core ogni SM è dotato di 16 unità di load/store (Load/Store Units), queste permettono di rimappare le operazioni di lettura e scrittura sulla DRAM o in memoria cache effettuate da altrettanti thread in esecuzione. Per ultime si presentano le unità di esecuzione dedicate a funzioni trascenden- 7

14 Capitolo 3. Architettura Figura 3.2: Streaming Multiprocessor tali, quali funzioni sinusoidali, radici quadrate, funzione di reciproco. Tali unità sono dette Special Function Units (SFUs). Ogni SFU può eseguire un istruzione per thread ad ogni ciclo di clock e la loro esecuzione resta indipendente dalle altre unità, permettendo dunque alle unità classiche di effettuare molteplici elaborazioni mentre le SFU sono occupate. 3.2 Dual Warp e GigaThread Scheduler Lo scheduling dei thread avviene secondo una gerarchia a due livelli: Al primo livello il lavoro globale viene distribuito alle unità sottostanti, operazione attuata dal GigaThread Scheduler. 8

15 Capitolo 3. Architettura Al secondo livello gli SM si occupano di schedulare più thread paralleli organizzati in gruppi di 32, ogni gruppo è chiamato warp. In un singolo multiprocessore sono allocati due Warp Scheduler e due Dispatch Units, permettendo di eseguire due warp in contemporanea: ogni istruzione per warp è eseguita da un sottogruppo da 16 core, 16 unità L/S o 4 SFU. Questa modalità di esecuzione permette di liberare lo scheduler dalle dipendenze dei due warp. Figura 3.3: Dual Warp Scheduler Il multitasking implica ricorrenti context-switch dei thread, spesso innescati dalla frequente comunicazione kernel-to-kernel appartententi alla stessa applicazione. Ciò renderebbe l esecuzione dei kernel del tutto seriale e applicazioni composte da numerosi kernel di piccola dimensione sarebbero penalizzate ulteriormente, nonchè le risorse della GPU sarebbero utilizzate in maniera inefficiente. Per evitare ciò è implementata l esecuzione concorrente dei kernel appartenenti allo stesso contesto CUDA. In tal modo, ad esempio, un programma PhysX può invocare sottoprogrammi dedicati alla risoluzione di sistemi di fludodinamica e altri dedicati alla statica dei corpi rigidi, l applicazione complessiva può sfruttare pienamente le risorse computazionali della GPU. All architettura Fermi è associata una Instruction Set Architecture (ISA) 9

16 Capitolo 3. Architettura Figura 3.4: Esecuzione seriale e concorrente dei kernel denominata PTX (Parallel Thread execution), finalizzata ad aumentare le performance implementando una macchina virtuale di basso livello. La PTX implementa uno spazio degli indirizzi che unifica la memoria locale privata dei thread, la memoria memoria condivisa dai blocchi e quella globale, tutto accedibile da un unico set di istruzioni dedicate. Per ottenere tale risultato è stata implementata una tabella delle pagine responsabile di tenere traccia della corrispondenza tra lo spazio di memoria virtuale e le relative porzioni di memoria locale, quelle condivise tra i blocchi e la memoria globale. Ogni thread che è eseguito subisce una rimappatura automatica dei riferimenti, indirizzandoli verso il corretto segmento di memoria fisica. 10

17 Capitolo 3. Architettura Figura 3.5: Mappatura spazio di indirizzamento 3.3 Memory Subsystem Il panorama della applicazioni eseguibili è estremamente eterogeneo: certe applicazioni prediligono l ausilio del sistema di caching, altre fanno uso della memoria condivisa (Shared Memory), quest ultima particolarmente diffusa nei moderni paradigmi di programmazione in C e C++, o una combinazione ibrida delle due. Non esiste una tecnica ottimale per tutti i tipi di problemi e, al fine di garantire una maggiore flessibilità, Fermi adotta entrambe le strategie. É presente un blocco da 64 KB di memoria on-chip, questo permette di limitare il traffico dovuto agli accessi in memoria alla sola GPU e riduce gli accessi alla memoria centrale del sistema. Questo blocco è suddivisibile in due blocchi tali da avere 48 KB di shared memory e i restanti 16 KB di cache L1 o viceversa. L architettura implementa un unico path per gestire le richieste di accesso alla memoria, sia di load che di store. La gerarchia delle memorie è così implementata: per ogni SM è presente una memoria cache L1 confi- 11

18 Capitolo 3. Architettura Figura 3.6: Memory Hierarchy gurabile; tutte le memorie cache L1 fanno capo alla cache L2 unificata per tutto il dispositivo che infine fa capo alla memoria DRAM. Le applicazioni che fanno uso estensivo della memoria condivisa (come simulazioni di elettrodinamica) trarranno giovamento dalla configurazione da 48 KB di shared memory, altre posso sfruttare la cache multilivello secondo le scelte del programmatore. L organizzazione gerarchica delle cache apporta benefici a tutti gli algoritmi per cui non sono noti a priori indirizzamenti alla memoria (ad esempio prodotti di matrici sparse) e avvantaggia quelli per cui molteplici SM devono accedere alle medesime strutture dati(come convoluzioni di kernel), queste possono essere memorizzate nella cache L2 unificata per tutti gli SM. La cache L1 fornisce ulteriori vantaggi memorizzando temporaneamente valori prelevati dai registri, ciò evita di trascriverli nella DRAM, cosa che aumenterebbe la latenza di accesso. Nei settori del Medical Imaging e del Cluster Computing l integrità 12

19 Capitolo 3. Architettura dei dati fa parte delle prerogative di un sistema elaborazione grafica. É naturale che radiazioni di qualsivoglia genere possano apportare lievi modifiche ai valori dei bit memorizzati. In normali sistemi ciò comporterebbe un errore anche trascurabile (Soft Error), ma in una struttura distribuita con un numero consistente di dispositivi tale errore aumenta in maniera lineare e non è più trascurabile. Una possibile soluzione è proteggere l integrità dei dati tramite l Error Correcting Code (ECC). Fermi applica all intera gerarchia di memoria il Single-Error Correct Double-Error Detect (SECDED), che consiste nel rilevare e correggere ogni errore su singolo bit tramite hardware per ogni accesso ai dati mentre gli errori a due o più bit sono rilevati è riportati al livello software superiore, permettendo una ri-esecuzione piuttosto che una errata esecuzione del programma. Le strategie più diffuse ECC utilizzano un codice di Hamming(7,4), ossia una codifica che permette di rappresentare 4 bit con una stringa di 7 bit di cui 3 bit sono di informazione ridondante e servono per il controllo di parità. Questa tecnica permette di correggere gli errori su singolo bit oppure rilevare errori sia su bit singoli che doppi senza però correggerli. La ECC risulta efficace per codici con una distanza minima di Hamming pari a 3, non è capace di fare distinzione tra un errore singolo e un errore doppio, ma soltanto rilevarne la presenza. Estendendo il numero di bit di parità a 4 la distanza minima arriva a 4, sufficiente a distinguere casi di errore singolo e doppio. La distinzione permette di rilevare e correggere errori singoli e soltanto rilevare (ma non correggere) errori doppi, è così che viene realizzata la SECDED. 13

20 Capitolo 4 Supporto a operazioni su Floating Point Punto debole delle operazioni su floating point sono i cosiddetti numeri subnormali, ossia quei numeri compresi tra lo zero e il più piccolo numero normalizzato ottenibile con una determinata rappresentazione binaria. Nelle prime generazioni di GPU tali numeri erano approssimati a zero, la conseguenza è un inevitabile perdita di accuratezza non accettabile in applicazioni di uso scientifico. Le CPU risolvono la problematica effettuando calcoli con numeri subnormali negli exception handlers, la conseguenza è la perdita di migliaia di cicli di clock per effettuare una sola operazione. Fermi esegue tali calcoli nelle proprie floating point unit, calcoli su numeri subnormali sono gestiti totalmente in hardware con un conseguente miglioramento delle performance. Un operazione frequente nel calcolo scientifico è svolgere il prodotto tra due numeri e sommare il risultato ad un terzo numero: D = A B + C. Tipicamente le GPU realizzano questo tipo di operazione mediante l istruzione multiply-add (MAD), effettuando un prodotto con troncamento 14

21 Capitolo 4. Supporto a operazioni su Floating Point e una somma con approssimazione round-to-nearest, ancora una volta non è ragionevole l applicazione di questa strategia in ambito scientifico, perchè l approssimazione va ad inficiare la correttezza dei risultati. La differenza sostanziale è data dall istruzione Fused Multiply-Add(FMA), le cifre del risultato del prodotto non vengono troncate. Per entrare nello specifico è necessario discutere dei formati standard attuali e passati. Figura 4.1: MAD e FMA 4.1 Formati Le codifiche a virgola mobile sono definite dallo standard IEEE 754, i dati sono rappresentati da tre campi: un bit di segno, un campo per lo scostamento dell esponente rispetto ad una grandezze di riferimento, per considerare anche esponenti negativi (127 per il formato a 32 bit e 1023 per il formato a 64 bit), un campo dedicato alla mantissa, rappresentata fino alla cifra più significativa non nulla, inoltre sono presenti rappresentazioni dedicate di infinito ( ) e not-a-number (NaN). Lo standard IEEE definisce entrambi i formati da 32 e 64 bit incluse le rispettive regole e modalità di approssimazione, la più frequente è la round-to-nearest. 15

22 Capitolo 4. Supporto a operazioni su Floating Point Figura 4.2: Codifica float (32 bit) e double (64 bit) 4.2 Accuratezza Prima della revisione nel 2008 lo standard IEEE 754 soffriva inaccuratezza su operazioni multiple in successione. Data l operazione A + B + C e la funzione di approssimazione rn(x), è possibile svolgere tale operazione in due modalità: rn(a + rn(b + C)) oppure rn(rn(a + B) + C); questa strategia fornisce due risultati differenti, rispettivi a come si è applicata l associatività, che sono inoltre differenti dal risultato matematicamente corretto a causa della funzione di approssimazione. Si considerino i numeri A,B,C rappresentati mediante un float senza però applicare alcuna approssimazione. A = B = C = (A + B) + C = A + (B + C) = Ovviamente il risultato dell operazione è sempre lo stesso anche cambiando le coppie da associare. Tuttavia in conformità con lo standard è necessario applicare la funzione di approssimazione (round-to-nearest), in quanto non si hanno abbastanza bit per rappresentare completamente tutti i numeri. Si ottengono i seguenti casi: A + B = rn(a + B) =

23 Capitolo 4. Supporto a operazioni su Floating Point B + C = rn(b + C) = : A + B + C = Disponendo di operazioni atomiche si dovrà applicare rn(x) prima alla coppia associata (A+B oppure B+C) e poi alla somma totale: rn(rn(a + B) + C) = rn(a + rn(b + C)) = Si nota che, non solo i risultati sono entrambi diversi da quello matematicamente esatto, ma sono anche diversi tra loro e che dunque il risultato dipende dall ordine delle operazioni. É chiaro che la debolezza principale di tale strategia consiste nell applicare due volte la funzione rn(x) oltre al fatto che non dovrebbe dipendere dall ordine in cui sono svolte le operazioni. Le ripercussioni sono visibili in operazioni di somma di numeri simili in modulo ma di segno differente. La tecnica classica condurrebbe al fenomeno di cancellazione sottrattiva: la somma di due numeri uguali in modulo e opposti di segno produce risultati molto piccoli, che sono praticamente approssimati a zero. IEEE introduce l istruzione FMA, ciò permette di limitare l approssimazione ad una sola applicazione della funzione rn(x), pertanto si ha: rn(a + B + C), che equivale ad risultato notevolmente più accurato. L operazione di prodotto tra vettori è particolarmente ricorrente in programmi di calcolo scientifico, si mostrano le semplificazioni ottenute per il calcolo del prodotto tra due vettori di quattro elementi: 17

24 Capitolo 4. Supporto a operazioni su Floating Point a = [a 1, a 2, a 3, a 4 ] b = [b 1, b 2, b 3, b 4 ] a b = a 1 b 1 + a 2 b 2 + a 3 b 3 + a 4 b 4 Graficamente ogni nodo rappresenta un operazione di somma o prodotto. La strategia più semplice per effettuare un prodotto tra vettori è quella lineare tramite un loop che esegue in successione le operazioni ((a 1 b 1 ) + (a 2 b 2 ) + (a 3 b 3 ) + (a 4 b 4 )): Figura 4.3: Metodo lineare t=0 for i from 1 to 4 p=rn(a[i]*b[i]) t=rn(t+p) return t 18

25 Capitolo 4. Supporto a operazioni su Floating Point Il metodo che fa uso della FMA presenta un grafico semplificato, prodotto e somma sono fusi in un unico nodo, la funzione rn(x) è applicata quattro volte e non più otto. L algoritmo equivale a calcolare a 4 b 4 + (a 3 b 3 + (a 2 b 2 + (a 1 b 1 + 0))): Figura 4.4: Metodo FMA t=0 for i from 1 to 4 t=rn(a[i]*b[i]+t) return t Per problemi relativamente semplici, composti da sole addizioni e prodotti è possibile, grazie alla FMA, un notevole aumento di accuratezza. Resta tuttavia il problema nel caso di funzioni matematiche più complesse. Il più delle volte si ricorre all analisi matematica e fornire prove formali e fornire un risultato tramite librerie dedicate, cosa che offre la piattaforma CUDA stessa. Nel caso in questione le SFU si occupano di calcolare funzioni trascendentali senza tener conto della rigorosità delle approssimazioni, per esigenze più impellenti bisogna ricorrere a librerie dedicate. 19

26 Capitolo 5 Conclusioni Si è introdotta nell elaborato la principale prerogativa dell High Performance Computing, ossia l ottimizzazione del calcolo parallelo. In principio le CPU erano l unica possibile soluzione per elaborare di grandi quantità di calcoli e gestire la mole di dati risultante. Come standard de facto non erano però ottimizzati allo scopo. Il mercato ha reagito in maniera differente rispetto al settore in questione: le case produttrici di CPU hanno puntato ad aumentare la frequenza di clock e ultimamente il parallelismo dei core; NVIDIA ha proposto una nuova tecnologia partendo da un progetto del tutto vuoto, che facesse riferimento solo alla grande capacità delle GPU di effettura molteplici calcoli semplici in parallelo. Il risultato è stato un dispositivo che avesse le proprietà tipiche di una scheda grafica in quanto tale, che fosse però ottimizzata per un campo del tutto differente e quindi sopperisse alle proprie mancanze. Concorde con gli standard IEEE (necessità per il calcolo scientifico), dotata di una gerarchia hardware ottimale per il calcolo parallelo, di centinaia di core ad una frequenza di clock relativamente bassa, con relativi vantaggi in fatto di dissipazione, versatile con la gestione della memoria grazie alla simbiosi 20

27 Capitolo 5. Conclusioni tra cache e memoria condivisa, la Fermi dimostra come la scelta giusta nell architettura dei supercomputer non fosse l aumento spropositato della frequenza di clock seguita da pochi accorgimenti, ma da una più oculata scelta di paramentri ricavati dal problema specifico. A tale architettura è stato poi associato un modello software altrettanto potente fornito da CUDA, la creazione di software è stata resa più flessibile grazie al supporto per svariati linguaggi di programmazione. 21

28 Ringraziamenti Quindi sarei appena arrivato alla parte migliore? Cercherò di essere breve. Innanzitutto va messo in chiaro che su questo elaborato non compare mai un Soggetto, sempre e solo forme impersonali (si è visto, si espone, ecc). Quindi sono lieto di metterne uno e dedicargli un piccolo (modesto) grazie: IO. Chiuso il capitolo egoista passiamo ai prossimi: mamma e papà. Non voglio strappare lacrime (la dedica basta e avanza) ergo sarò pragmatico, mi limito a dire che a conti fatti sono stati fondamentali (mamma=cibo, papà=soldi), facendo i seri bisogna dire che so quanto ci tengono a questo mio obiettivo e so che per ogni esame hanno patito l ansia più di me. Quindi il ringraziamento più grande va tutto a loro: grazie!. Il cerchio si allarga, passiamo alla famiglia: un grazie particolare a mia sorella Ida, da sempre seconda mamma, lo so che non mi faccio mai sentire, in compenso io sento benissimo mio nipote che sbatte i piedi a terra in casa mia e mi fa deconcentrare. Grazie sorella cara. In generale ringrazio tutti, così orgogliosi di avere l ingegnere in famiglia, o meglio, quello che aggiusta i PC. Passo a quella larga manica di zuozi che sono i miei amici, non sentitevi indegni del mio ringraziamento, lo so che non avete fatto chissà cosa, ma esistete e io mi diverto con voi e divertendomi lavoro meglio, dunque pren- 22

29 Ringraziamenti detevi questo grazie mezzo aggratis. Bisogna (ops...meglio devo ) citare delle degne personalità di questa nobile cerchia: Emilio (detto Zio) che c è da sempre, basta poco per dimenticare il malumore in sua compagnia; Lorenzo (aka Anaconda), metti True Believer in macchina con quella brava donna di Alessandro (Sh mmah); Andrea (Big), forse la persona più buona che io conosca, riesce a trasformare una semplice cena in una festa; i miei cari amici del liceo Fabrizio (Lord), Carmine (Varrià), Lorenzo (Baciò), perchè con loro non ho mai smesso di ridere da otto anni; i miei cari colleghi Alfonso, Pierluigi (Pierlansia), Roberto, Mirko, da sempre condividiamo ore interminabili di attesa in un treno perso nello spazio-tempo ed ettolitri di ansia. C è poi una persona molto piccola, quasi una nana con gli occhietti piccoli (credo abbia capito), che ogni tanta mi tiene occupato. Beh, nonostante ciò la ringrazio. (:*) Dopo l elenco telefonico appena citato posso infine deporre le armi, non senza aver ringraziato anche i non presenti in questa pagina. 23

30 Bibliografia [1] NVIDIA s Next Generation CUDA Compute Architecture: Fermi., (Whitepaper.pdf) [2] Patterson, David (September 30, 2009). The Top 10 Innovations in the New NVIDIA Fermi Architecture, and the Top 3 Next Challenges. Parallel Computing Research Laboratory & NVIDIA. Retrieved 3 October [3] N. Brookwood, NVIDIA Solves the GPU Computing Puzzle. [4] P.N. Glaskowsky, NVIDIA s Fermi: The First Complete GPU Computing Architecture. [5] N. Whitehead, A. Fit-Florea, Precision & Performance: Floating Point and IEEE 754 Compliance for NVIDIA GPUs., [6] code [7] Moon, Todd K. (2005). Error Correction Coding. New Jersey: John Wiley & Sons. ISBN

Ottimizzazioni 1 Corso di sviluppo Nvidia CUDATM. Davide Barbieri

Ottimizzazioni 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

Dettagli

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Introduzione. 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...

Dettagli

Dispensa di Informatica I.1

Dispensa 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.

Dettagli

Università degli Studi di Salerno

Università 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

Dettagli

GPGPU GPGPU. anni piu' recenti e' naturamente aumentata la versatilita' ed usabilita' delle GPU

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

Dettagli

La 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. 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

Dettagli

Sistema operativo: Gestione della memoria

Sistema 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

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile Problemi connessi all utilizzo di un numero di bit limitato Abbiamo visto quali sono i vantaggi dell utilizzo della rappresentazione in complemento alla base: corrispondenza biunivoca fra rappresentazione

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI 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

Dettagli

Obiettivi dell Analisi Numerica. Avviso. Risoluzione numerica di un modello. Analisi Numerica e Calcolo Scientifico

Obiettivi dell Analisi Numerica. Avviso. Risoluzione numerica di un modello. Analisi Numerica e Calcolo Scientifico M. Annunziato, DIPMAT Università di Salerno - Queste note non sono esaustive ai fini del corso p. 3/43 M. Annunziato, DIPMAT Università di Salerno - Queste note non sono esaustive ai fini del corso p.

Dettagli

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Il 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.

Dettagli

Esame di INFORMATICA

Esame 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

Dettagli

Scheduling 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 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

Dettagli

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

I 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)?

Dettagli

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

Dettagli

Appunti sulla Macchina di Turing. Macchina di Turing

Appunti sulla Macchina di Turing. Macchina di Turing Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso

Dettagli

Architettura hardware

Architettura 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

Dettagli

SISTEMI DI NUMERAZIONE E CODICI

SISTEMI DI NUMERAZIONE E CODICI SISTEMI DI NUMERAZIONE E CODICI Il Sistema di Numerazione Decimale Il sistema decimale o sistema di numerazione a base dieci usa dieci cifre, dette cifre decimali, da O a 9. Il sistema decimale è un sistema

Dettagli

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Introduzione 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

Dettagli

Informatica. Rappresentazione dei numeri Numerazione binaria

Informatica. Rappresentazione dei numeri Numerazione binaria Informatica Rappresentazione dei numeri Numerazione binaria Sistemi di numerazione Non posizionali: numerazione romana Posizionali: viene associato un peso a ciascuna posizione all interno della rappresentazione

Dettagli

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica

Dettagli

Approccio stratificato

Approccio 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

Dettagli

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput

Valutazione 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

Dettagli

CPU. Maurizio Palesi

CPU. 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

Dettagli

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI Indice 1 Le frazioni algebriche 1.1 Il minimo comune multiplo e il Massimo Comun Divisore fra polinomi........ 1. Le frazioni algebriche....................................

Dettagli

Introduzione alla Virtualizzazione

Introduzione 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

Dettagli

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0 Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice

Dettagli

Alessandro Pellegrini

Alessandro Pellegrini Esercitazione sulle Rappresentazioni Numeriche Esistono 1 tipi di persone al mondo: quelli che conoscono il codice binario e quelli che non lo conoscono Alessandro Pellegrini Cosa studiare prima Conversione

Dettagli

Prestazioni 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. 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

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori 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

Dettagli

Il sistema operativo TinyOS

Il sistema operativo TinyOS tesi di laurea Anno Accademico 2005/2006 relatore Ch.mo prof. Domenico Cotroneo candidato Giovanni Chierchia Matr. 534 / 804 ::. Obiettivi del lavoro di tesi Studio del sistema operativo TinyOS Studio

Dettagli

ESEMPIO 1: eseguire il complemento a 10 di 765

ESEMPIO 1: eseguire il complemento a 10 di 765 COMPLEMENTO A 10 DI UN NUMERO DECIMALE Sia dato un numero N 10 in base 10 di n cifre. Il complemento a 10 di tale numero (N ) si ottiene sottraendo il numero stesso a 10 n. ESEMPIO 1: eseguire il complemento

Dettagli

La memoria - generalità

La memoria - generalità Calcolatori Elettronici La memoria gerarchica Introduzione La memoria - generalità n Funzioni: Supporto alla CPU: deve fornire dati ed istruzioni il più rapidamente possibile Archiviazione: deve consentire

Dettagli

Informatica - A.A. 2010/11

Informatica - 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

Dettagli

SISTEMI INFORMATIVI AVANZATI -2010/2011 1. Introduzione

SISTEMI INFORMATIVI AVANZATI -2010/2011 1. Introduzione SISTEMI INFORMATIVI AVANZATI -2010/2011 1 Introduzione In queste dispense, dopo aver riportato una sintesi del concetto di Dipendenza Funzionale e di Normalizzazione estratti dal libro Progetto di Basi

Dettagli

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

L 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

Dettagli

Gestione della memoria centrale

Gestione 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

Dettagli

PROVA INTRACORSO TRACCIA A Pagina 1 di 6

PROVA INTRACORSO TRACCIA A Pagina 1 di 6 PROVA INTRACORSO DI ELEMENTI DI INFORMATICA MATRICOLA COGNOME E NOME TRACCIA A DOMANDA 1 Calcolare il risultato delle seguenti operazioni binarie tra numeri interi con segno rappresentati in complemento

Dettagli

e-dva - eni-depth Velocity Analysis

e-dva - eni-depth Velocity Analysis Lo scopo dell Analisi di Velocità di Migrazione (MVA) è quello di ottenere un modello della velocità nel sottosuolo che abbia dei tempi di riflessione compatibili con quelli osservati nei dati. Ciò significa

Dettagli

Tecnologie dell informazione e della comunicazione per le aziende

Tecnologie dell informazione e della comunicazione per le aziende ! "#%&"'(&)*++,%#,"'"(&("##&-"! "!#!. /##&('"*#,0"1&,2)*',%3"2&11"1&,2& 4 "3'&"22&5 "3'&"22&6 "3'&"22&7 "0#8"22&9! "0#8"22&9 ",33& : '&&0+"##&)*''";,%,!,00"%&, Obiettivo del presente capitolo è presentare

Dettagli

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico MANUALE MOODLE STUDENTI Accesso al Materiale Didattico 1 INDICE 1. INTRODUZIONE ALLA PIATTAFORMA MOODLE... 3 1.1. Corso Moodle... 4 2. ACCESSO ALLA PIATTAFORMA... 7 2.1. Accesso diretto alla piattaforma...

Dettagli

C. P. U. MEMORIA CENTRALE

C. 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

Dettagli

Parte I. Prima Parte

Parte I. Prima Parte Parte I Prima Parte Capitolo 1 Introduzione generale 1.1 Il problema dell assegnazione Corsi-Borsisti Il problema dell assegnazione delle borse dei corsi ai vari studenti può essere riassunto nei punti

Dettagli

Linux lo installo a 32 o 64 bit? (teoria e pratica)

Linux 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

Dettagli

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX Parte 2 Struttura interna del sistema LINUX 76 4. ASPETTI GENERALI DEL SISTEMA OPERATIVO LINUX La funzione generale svolta da un Sistema Operativo può essere definita come la gestione dell Hardware orientata

Dettagli

Più processori uguale più velocità?

Più 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

Dettagli

Informatica. Rappresentazione binaria Per esempio +101010000 diventa +0.10101 10 18/10/2007. Introduzione ai sistemi informatici 1

Informatica. Rappresentazione binaria Per esempio +101010000 diventa +0.10101 10 18/10/2007. Introduzione ai sistemi informatici 1 Informatica Pietro Storniolo storniolo@csai.unipa.it http://www.pa.icar.cnr.it/storniolo/info200708 Numeri razionali Cifre più significative: : sono le cifre associate ai pesi maggiori per i numeri maggiori

Dettagli

Un sistema operativo è un insieme di programmi che consentono ad un utente di

Un sistema operativo è un insieme di programmi che consentono ad un utente di INTRODUZIONE AI SISTEMI OPERATIVI 1 Alcune definizioni 1 Sistema dedicato: 1 Sistema batch o a lotti: 2 Sistemi time sharing: 2 Sistema multiprogrammato: 3 Processo e programma 3 Risorse: 3 Spazio degli

Dettagli

La memoria centrale (RAM)

La memoria centrale (RAM) La memoria centrale (RAM) Mantiene al proprio interno i dati e le istruzioni dei programmi in esecuzione Memoria ad accesso casuale Tecnologia elettronica: Veloce ma volatile e costosa Due eccezioni R.O.M.

Dettagli

INFORMATICA 1 L. Mezzalira

INFORMATICA 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

Dettagli

Il database management system Access

Il database management system Access Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio

Dettagli

Parte II Indice. Operazioni aritmetiche tra valori rappresentati in binario puro. Rappresentazione di numeri con segno

Parte II Indice. Operazioni aritmetiche tra valori rappresentati in binario puro. Rappresentazione di numeri con segno Parte II Indice Operazioni aritmetiche tra valori rappresentati in binario puro somma sottrazione Rappresentazione di numeri con segno modulo e segno complemento a 2 esercizi Operazioni aritmetiche tra

Dettagli

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale Calcolatori Elettronici La memoria gerarchica La memoria virtuale Come usare la memoria secondaria oltre che per conservare permanentemente dati e programmi Idea Tenere parte del codice in mem princ e

Dettagli

Dispositivi di rete. Ripetitori. Hub

Dispositivi di rete. Ripetitori. Hub Ripetitori Dispositivi di rete I ripetitori aumentano la distanza che può essere ragginta dai dispositivi Ethernet per trasmettere dati l'uno rispetto all'altro. Le distanze coperte dai cavi sono limitate

Dettagli

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati Informatica 3 Informatica 3 LEZIONE 10: Introduzione agli algoritmi e alle strutture dati Modulo 1: Perchè studiare algoritmi e strutture dati Modulo 2: Definizioni di base Lezione 10 - Modulo 1 Perchè

Dettagli

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

SISTEMI 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

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T1 4-Panoramica delle generazioni 1 Prerequisiti Monoprogrammazione e multiprogrammazione Multielaborazione Linguaggio macchina Linguaggi di programmazione e compilatori Struttura

Dettagli

( x) ( x) 0. Equazioni irrazionali

( x) ( x) 0. Equazioni irrazionali Equazioni irrazionali Definizione: si definisce equazione irrazionale un equazione in cui compaiono uno o più radicali contenenti l incognita. Esempio 7 Ricordiamo quanto visto sulle condizioni di esistenza

Dettagli

Architettura del calcolatore

Architettura 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

Dettagli

Dimensione di uno Spazio vettoriale

Dimensione di uno Spazio vettoriale Capitolo 4 Dimensione di uno Spazio vettoriale 4.1 Introduzione Dedichiamo questo capitolo ad un concetto fondamentale in algebra lineare: la dimensione di uno spazio vettoriale. Daremo una definizione

Dettagli

La tecnologia cloud computing a supporto della gestione delle risorse umane

La tecnologia cloud computing a supporto della gestione delle risorse umane La tecnologia cloud computing a supporto della gestione delle risorse umane L importanza delle risorse umane per il successo delle strategie aziendali Il mondo delle imprese in questi ultimi anni sta rivolgendo

Dettagli

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi Indice generale OOA Analisi Orientata agli Oggetti Introduzione Analisi Metodi d' analisi Analisi funzionale Analisi del flusso dei dati Analisi delle informazioni Analisi Orientata agli Oggetti (OOA)

Dettagli

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi Il Software Il software impiegato su un computer si distingue in: Software di sistema Sistema Operativo Compilatori per produrre programmi Software applicativo Elaborazione testi Fogli elettronici Basi

Dettagli

Codifica binaria dei numeri

Codifica binaria dei numeri Codifica binaria dei numeri Caso più semplice: in modo posizionale (spesso detto codifica binaria tout court) Esempio con numero naturale: con 8 bit 39 = Codifica in virgola fissa dei numeri float: si

Dettagli

Pronto Esecuzione Attesa Terminazione

Pronto Esecuzione Attesa Terminazione Definizione Con il termine processo si indica una sequenza di azioni che il processore esegue Il programma invece, è una sequenza di azioni che il processore dovrà eseguire Il processo è quindi un programma

Dettagli

Architettura di un calcolatore

Architettura 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

Dettagli

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014 Archivi e database Prof. Michele Batocchi A.S. 2013/2014 Introduzione L esigenza di archiviare (conservare documenti, immagini, ricordi, ecc.) è un attività senza tempo che è insita nell animo umano Primi

Dettagli

Tipi di dato-prima parte

Tipi di dato-prima parte Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Meccanica (A-K) Tipi di dato-prima parte Ing. Agnese Pinto 1 di 15 Tipi di dato Sommario Tipi di dato Classificazione dei tipi di dato Tipi

Dettagli

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi? 1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi? 1. La nozione di multiprogrammazione prevede la possibilità di

Dettagli

Con 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. 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

Dettagli

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Architettura del Calcolatore Macchina di von Neumann Il calcolatore moderno è basato su un architettura

Dettagli

Architetture Applicative

Architetture Applicative Alessandro Martinelli alessandro.martinelli@unipv.it 6 Marzo 2012 Architetture Architetture Applicative Introduzione Alcuni esempi di Architetture Applicative Architetture con più Applicazioni Architetture

Dettagli

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

Il 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

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 3-Compilatori e interpreti 1 Prerequisiti Principi di programmazione Utilizzo di un compilatore 2 1 Introduzione Una volta progettato un algoritmo codificato in un linguaggio

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici La Pipeline Superpipeline Pipeline superscalare Schedulazione dinamica della pipeline Processori reali: l architettura Intel e la pipeline dell AMD Opteron X4 Ricapitolando Con

Dettagli

Linguaggi e Paradigmi di Programmazione

Linguaggi e Paradigmi di Programmazione Linguaggi e Paradigmi di Programmazione Cos è un linguaggio Definizione 1 Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una

Dettagli

Informazione analogica e digitale

Informazione analogica e digitale L informazione L informazione si può: rappresentare elaborare gestire trasmettere reperire L informatica offre la possibilità di effettuare queste operazioni in modo automatico. Informazione analogica

Dettagli

Sistemi di Numerazione Binaria NB.1

Sistemi di Numerazione Binaria NB.1 Sistemi di Numerazione Binaria NB.1 Numeri e numerali Numero: entità astratta Numerale : stringa di caratteri che rappresenta un numero in un dato sistema di numerazione Lo stesso numero è rappresentato

Dettagli

GESTIONE AVANZATA DEI MATERIALI

GESTIONE AVANZATA DEI MATERIALI GESTIONE AVANZATA DEI MATERIALI Divulgazione Implementazione/Modifica Software SW0003784 Creazione 23/01/2014 Revisione del 25/06/2014 Numero 1 Una gestione avanzata dei materiali strategici e delle materie

Dettagli

Architettura degli Elaboratori I Esercitazione 1 - Rappresentazione dei numeri

Architettura degli Elaboratori I Esercitazione 1 - Rappresentazione dei numeri Architettura degli Elaboratori I Esercitazione 1 - Rappresentazione dei numeri 1 Da base 2 a base 10 I seguenti esercizi richiedono di convertire in base 10 la medesima stringa binaria codificata rispettivamente

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso 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

Dettagli

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

INFORMATICA. 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:

Dettagli

Esercitazione Informatica I AA 2012-2013. Nicola Paoletti

Esercitazione Informatica I AA 2012-2013. Nicola Paoletti Esercitazione Informatica I AA 2012-2013 Nicola Paoletti 4 Gigno 2013 2 Conversioni Effettuare le seguenti conversioni, tenendo conto del numero di bit con cui si rappresenta il numero da convertire/convertito.

Dettagli

Gestione Risorse Umane Web

Gestione Risorse Umane Web La gestione delle risorse umane Gestione Risorse Umane Web Generazione attestati di partecipazione ai corsi di formazione (Versione V03) Premessa... 2 Configurazione del sistema... 3 Estrattore dati...

Dettagli

Corso di Matematica per la Chimica

Corso di Matematica per la Chimica Dott.ssa Maria Carmela De Bonis a.a. 203-4 I sistemi lineari Generalità sui sistemi lineari Molti problemi dell ingegneria, della fisica, della chimica, dell informatica e dell economia, si modellizzano

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 11 Martedì 12-11-2013 1 Tecniche di allocazione mediante free list Generalmente,

Dettagli

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello): Architettura (10/9003) Pag. 1/6 Esame di Architettura (matr.0-1) del 10/9003 Per Fondamenti di Architettura NON rispondere Per le domande a risposta multipla cerchiare la risposta scelta. Non alle domande

Dettagli

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Sistemi 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

Dettagli

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica Il presente esame scritto deve essere svolto in forma individuale in un tempo massimo di 60 minuti dalla sua

Dettagli

Quando troncare uno sviluppo in serie di Taylor

Quando troncare uno sviluppo in serie di Taylor Quando troncare uno sviluppo in serie di Taylor Marco Robutti October 13, 2014 Lo sviluppo in serie di Taylor di una funzione è uno strumento matematico davvero molto utile, e viene spesso utilizzato in

Dettagli

Fasi di creazione di un programma

Fasi 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

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. 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

Dettagli

Architettura di un sistema operativo

Architettura di un sistema operativo Architettura di un sistema operativo Dipartimento di Informatica Università di Verona, Italy Struttura di un S.O. Sistemi monolitici Sistemi a struttura semplice Sistemi a livelli Virtual Machine Sistemi

Dettagli

Corso di Informatica Applicata. Lezione 3. Università degli studi di Cassino

Corso di Informatica Applicata. Lezione 3. Università degli studi di Cassino Università degli studi di Cassino Corso di Laurea in Ingegneria della Produzione Industriale Corso di Informatica Applicata Lezione 3 Ing. Saverio De Vito e-mail: saverio.devito@portici.enea.it Tel.: +39

Dettagli

MODULO 5 Appunti ACCESS - Basi di dati

MODULO 5 Appunti ACCESS - Basi di dati MODULO 5 Appunti ACCESS - Basi di dati Lezione 1 www.mondopcnet.com Modulo 5 basi di dati Richiede che il candidato dimostri di possedere la conoscenza relativa ad alcuni concetti fondamentali sui database.

Dettagli

UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA

UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA Tutti gli anni, affrontando l argomento della divisibilità, trovavo utile far lavorare gli alunni sul Crivello di Eratostene. Presentavo ai ragazzi una

Dettagli

J. Assfalg Appunti di Sistemi Operativi

J. Assfalg Appunti di Sistemi Operativi Multiprogrammazione J. Assfalg Appunti di Sistemi Operativi La multiprogrammazione nasce come un metodo per massimizzare l'uso della CPU piuttosto che come uno strumento per fornire un miglior servizio

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

Progettazione di Basi di Dati

Progettazione di Basi di Dati Progettazione di Basi di Dati Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan Entità-Relazione Progettazione Logica 2 E il modo attraverso il quale i dati sono rappresentati : fa riferimento al modello

Dettagli

Esercizi su. Funzioni

Esercizi su. Funzioni Esercizi su Funzioni ๒ Varie Tracce extra Sul sito del corso ๓ Esercizi funz_max.cc funz_fattoriale.cc ๔ Documentazione Il codice va documentato (commentato) Leggibilità Riduzione degli errori Manutenibilità

Dettagli