MOLTIPLICAZIONE TRA MATRICI
|
|
- Dante Orlando
- 4 anni fa
- Visualizzazioni
Transcript
1 MOLTIPLICAZIONE TRA MATRICI Riccardo Fontanini
2 Consegna Implementare un programma C che sfrutti la GPU per eseguire una moltiplicazione tra due matrici utilizzando la shared memory. Inoltre adattare il programma perché sfrutti più di una GPU per eseguire il calcolo. Moltiplicazione tra matrici Date due matrici A e B, nel nostro caso quadrate con dimensione N, si definisce il prodotto matriciale C = A B in questo modo Con c ij C, a ik A e b kj B N c ij = a ik b kj = a i1 b 1j + a i2 b 2j + k=1 Per rendere immediato il risultato della moltiplicazione sono state moltiplicate una matrice generica A con la matrice identità, il risultato quindi dovrà ritornare la matrice originaria A. In caso contrario è facile riscontrare un errore perché la matrice di ritorno sarà differente dalla matrice A. Sistema per il test I test sono stati eseguiti su una macchina server che sfrutta processori Intel Xeon CPU E5-2603, una scheda grafica NVIDIA K40 ed una GeForce GTX 750. Problematiche La shared memory per blocco, per la GPU considerata (Tesla K40), è di byte. Tale quantità di memoria non provoca particolari problematiche se la dimensioni delle matrici da moltiplicare è piccola, per esempio, se N = 10: n byte = N N size int n matrix = = 800 byte Ma se la dimensione inizia a diventare più importante, per esempio N = 100: n byte = N N size int n matrix = = byte Valore che eccede la quantità massima di memoria shared utilizzabile in un blocco. Quindi non sarebbe possibile fare la moltiplicazione tra due matrici con tale dimensione in un singolo blocco sfruttando la shared memory. Soluzione: Per sfruttare l elevato parallelismo all interno di uno stesso blocco, senza eccedere la shared memory, è stata impiegata la moltiplicazione per sottomatrici. Partendo da una matrice quadrata, è possibile suddividerla in varie sottomatrici: Dove A,B,C,D sono loro stesse matrici, per esempio: T = [ A B C D ] A = [ ] B = [ ] C = [ ] D = [ ] 1
3 Con la matrice totale quindi: T = [ ] 4 4 Quando i blocchi hanno stessa dimensione e sono quadrati, allora si possono moltiplicare similmente alla convenzionale moltiplicazione tra matrici, cioè: [ A 1 B 1 C 1 D 1 ] [ A 2 B 2 C 2 D 2 ] = [ A 1A 2 + B 1 C 2 A 1 B 2 + B 1 D 2 C 1 A 2 + D 1 C 2 C 1 B 2 + D 1 D 2 ] In questo caso se la matrice è multipla di 32 elementi: C00 = A00 * B00 + A01 * B10 + A02 * B20 C01 = A00 * B01 + A01 * B11 + A02 * B21 C10 = A10 * B00 + A11 * B10 + A12 * B20 C11 = A10 * B01 + A11 * B11 + A12 * B21 E così via.. Quindi è possibile spezzare l operazione di moltiplicazione di una matrice con dimensione N (per semplicità si è assunto N multiplo di 32) nella somma di N/32 sottomatrici ricavate a loro volta da prodotti delle sottomatrici che compongono A e B, come descritto precedentemente. Quindi ogni blocco della griglia elabora una moltiplicazione tra due matrici di dimensione 32x32 e lo fa usando la shared memory, quindi necessita di: n byte = N N size int n matrix = = byte Valore che è al di sotto della massima quantità di memoria disponibile per blocco. Essendo ogni blocco 32 x 32, cioè pari alla dimensione di una sottomatrice, posso mappare ogni thread del blocco ad ogni elemento della sottomatrice, quindi eseguire un prodotto riga per colonna per ogni coppia di sottomatrici e sommare tale risultato per tutte le coppie di sottomatrici che interessano quel blocco. Quindi all interno del kernel di blocco CUDA sarà presente: 1. Un primo ciclo necessario per iterare le sottomatrici da moltiplicare che interessano a tale blocco 2. Un secondo ciclo necessario a svolgere l operazione di moltiplicazione riga per colonna delle due sottomatrici identificate dall iteratore del ciclo precedente. Di seguito viene illustrato il flowchart del kernel per l algoritmo che sfrutta dal shared memory. 2
4 Multi-device Nel programma multi-device l elaborazione viene ripartita su entrambe GPU presenti nel sistema di test. L algoritmo per eseguire la moltiplicazione è simile a quello utilizzato per il mono-device. L unica differenza è che dovendo ripartire il carico su due GPU è stato necessario indicare come eseguire la moltiplicazione (in che porzione su una, rispetto all altra). Sfruttando quindi il sistema di moltiplicazione per sottomatrici è stato possibile suddividere agevolmente il carico e in base ai parametri di compilazione inseriti. 3
5 Compilazione Per la compilazione (in sistemi linux) è stato creato un makefile, una volta invocato il comando: make mmult permette la compilazione di tutte le librerie utilizzate e la creazione dell eseguibile nella cartella:./build/linux La compilazione avviene sfruttando lo standard C99. Single Device È possibile specificare alcuni parametri aggiuntivi in fase di compilazione utilizzando la regola -D di gcc: make mmult D=SIMPLE,N=10240 Esegue, oltre alla moltiplicazione in shared memory anche la moltiplicazione sfruttando la global memory per eseguire un confronto. Con il parametro N viene modificata la dimensione della matrice da moltiplicare. Multi Device Per l algoritmo multi device è possibile ripartire il carico di lavoro sulle due GPU durante la compilazione come segue: make mmult D=N=3072,NROWSTESLA=2048 Analisi del sistema Shared memory Utilizzando il tool NVPROF è stato possibile ottenere i tempi di elaborazione della GPU nel caso del solo utilizzo della global memory e nel caso di utilizzo della shared memory. 4
6 Di seguito sono raccolti i dati relativi all elaborazione con i due algoritmi: N Tempo Global Tempo Shared Rapporto , , , , , , I tempi sono espressi in microsecondi Come si può notare aumentando la dimensione N delle due matrici, aumentano anche i tempi di elaborazione del prodotto; ciò nonostante possiamo notare come i tempi dell algoritmo che sfrutta la shared memory siano molto inferiori rispetto a quelli della Global Tempi Tempo Global Tempo Shared Se analizziamo il rapporto tra i tempi, si nota come per dimensioni piccole delle matrici l efficienza leggermente più bassa che a dimensioni più elevate. Per dimensioni elevate possiamo notare come il valore del rapporto tra i tempi si tenda a stabilizzare attorno al 4.5, cioè l algoritmo che sfrutta solamente la global 5
7 memory ci metterà 4.5 volte di più rispetto all algoritmo della shared memory, per avere poi una ricaduta in efficienza superando la dimensione di 1024 elementi. Rapporto 5 4,5 4 3,5 3 2,5 2 1,5 1 0, Multi-device Per quanto riguarda l algoritmo che sfrutta due GPU per eseguire la moltiplicazione di matrice è possibile analizzare i tempi di esecuzione dei due algoritmi in parallelo tramite il tool NVPROF. In particolare, per eseguire un confronto diretto, si è deciso di copiare la funzione di moltiplicazione e rinominandole. Quindi avremo: shared_mmult_tesla shared_mmult_gtx Che lavoreranno in parallelo tra di loro una sulla scheda TESLA mentre l altra sulla scheda GTX. Di seguito sono riportati i tempi per una matrice con dimensione 3072 x 3072 con diversi carichi sulle due GPU: N Tesla N GTX %TESLA T tesla T GTX Rapporto tempi , , , , , ,
8 , , , , , , , ,8 Tempi espressi in microsecondi Vediamo come diminuendo il carico sulla tesla, i tempi generali si abbassano. Si ricorda che entrambi gli algoritmi sono eseguiti in parallelo, quindi una ripartizione equa su entrambe le GPU porta ad abbassamento sostanziale dei tempi. Per esempio, se prendiamo la stessa dimensione di matrice (3072), l algoritmo che sfrutta la global memory ci impiega 1.32 secondi ad elaborare la matrice, mentre quello che sfrutta la shared memory ci impiega circa 0.6 secondi. Possiamo notare che ripartendo l elaborazione su entrambe le schede abbiamo ancora un incremento di prestazione portando il tempo di elaborazione a circa 0.2 secondi. Se rapportiamo questi dati notiamo che sfruttando la shared memory e due schede grafiche abbiamo un incremento di prestazione di circa il 660% rispetto all elaborazione con l algoritmo che sfrutta la global memory. 7
9 Sommario Consegna... 1 Moltiplicazione tra matrici... 1 Sistema per il test... 1 Problematiche... 1 Multi-device... 3 Compilazione... 4 Single Device... 4 Multi Device... 4 Analisi del sistema... 4 Shared memory... 4 Multi-device
NEURON. Riccardo Fontanini
NEURON Riccardo Fontanini Consegna Hebbian evolution of a single neuron for OR/AND computation Rete neurale Una rete neurale artificiale è un modello matematico composto di "neuroni" artificiali, ispirato
Laboratorio Corso di sviluppo Nvidia CUDA TM. Davide Barbieri
Laboratorio Corso di sviluppo Nvidia CUDA TM Davide Barbieri Librerie CUDA CUBLAS, CUSPARSE Applicazione CUDA CUDA Runtime Funzioni cuda*() CUDA Driver API Libreria dinamica nvcuda installata con i driver
Il Sistema Operativo Thread
ISTITUTO TECNICO SECONDO BIENNIO GIORGIO PORCU www.thegiorgio.it Sommario Processo e Immagine LightWeight Process Realizzazione di Implementazione di Multitasking e Multithreading Stati di un 2 3 Processo
Introduzione ai thread
Introduzione ai thread Processi leggeri. Immagine di un processo (codice, variabili locali e globali, stack, descrittore). Risorse possedute: : (file aperti, processi figli, dispositivi di I/O..),. L immagine
Il Sistema Operativo Concorrenza e Grafi di precedenza
ISTITUTO TECNICO SECONDO BIENNIO GIORGIO PORCU www.thegiorgio.it Sommario Elaborazione concorrente Elaborazione sequenziale Elaborazione concorrente Elaborazione parallela Grafi di Precedenza Grafi di
ACSO Programmazione di Sistema e Concorrente
ACSO Programmazione di Sistema e Concorrente P2 Modello Thread 2/12/2015 programma e parallelismo il tipo di parallelismo dipende dal grado di cooperazione (scambio di informazione) necessario tra attività
A.A Laboratorio n 1 Ing. Gian Enrico Conti. Milano, XX mese 20XX
Informatica Titolo ed Elementi presentazione di Informatica Medica sottotitolo A.A. 2018-19 Laboratorio n 1 Ing. Gian Enrico Conti Milano, XX mese 20XX Info Logistiche Contatti: gianenrico.conti@mail.polimi.it
Esercitazione di Matematica su matrici e sistemi lineari
Esercitazione di Matematica su matrici e sistemi lineari Notazioni: deta, A T =trasposta di A, A 1 =inversa di A. 1. Si considerino le matrici A, B, C, D denite da 1 0 5 1 A = 0, B = 0 0, C = 0 1 0 6 1
Un esempio di ciclo macchina
Un esempio di ciclo macchina La CPU deve eseguire le seguenti istruzioni:. Somma dei due valori contenuti agli indirizzi di memoria e ponendo il risultato all indirizzo. Differenza tra i due valori contenuti
Introduzione al Many/Multi-core Computing
Introduzione al Many/Multi-core Computing Sistemi Operativi e reti 6 giugno 2011 Parte I Architettura Classificazione fra architetture Flynn s taxonomy SISD Single instruction on Single Data- (es. architetture
Università degli Studi di Palermo Facoltà di Economia Dipartimento di Scienze Economiche, Aziendali e Statistiche. Appunti del corso di Matematica
Università degli Studi di Palermo Facoltà di Economia Dipartimento di Scienze Economiche, Aziendali e Statistiche Appunti del corso di Matematica 19 - Determinante Anno Accademico 2015/2016 M. Tumminello,
Calcolo parallelo. Una sola CPU (o un solo core), per quanto potenti, non sono sufficienti o richiederebbero tempi lunghissimi.
Calcolo parallelo Ci sono problemi di fisica, come le previsioni meteorologiche o alcune applicazioni grafiche, che richiedono un enorme potenza di calcolo. Una sola CPU (o un solo core), per quanto potenti,
Corso di High Performance Computing
Corso di High Performance Computing Esercitazione CUDA del 4/12/2018 Moreno Marzolla Ultimo aggiornamento: 2018-12-01 Per svolgere l'esercitazione è necessario collegarsi al server isi-raptor03.csr.unibo.it
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
Laboratorio computazionale numerico Lezione 3
Laboratorio computazionale numerico Lezione f.poloni&sns.it 008-0-9 Esercizio (di riscaldamento). Creare una funzione function M=laplacian(n) che crea la matrice di dimensione n n che ha sulla diagonale
Modelli di programmazione parallela
Modelli di programmazione parallela Oggi sono comunemente utilizzati diversi modelli di programmazione parallela: Shared Memory Multi Thread Message Passing Data Parallel Tali modelli non sono specifici
Esercizi su CUDA Algoritmi e Calcolo Parallelo. Daniele Loiacono
Esercizi su CUDA Algoritmi e Calcolo Parallelo Esercizio 1 Implementare in CUDA il prodotto fra due matrici C= AB A è una matrice Nx16 B è una matrice 16xM M ed N sono multipli interi di 16 A B C 16 N
Architetture Applicative Altri Esempi
Architetture Applicative Altri Esempi Alessandro Martinelli alessandro.martinelli@unipv.it 15 Aprile 2014 Architetture Applicative Altri Esempi di Architetture Applicative Architetture con più Applicazioni
Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura:
Le classi in java Un semplice programma java, formato da una sola classe, assume la seguente struttura: class Domanda static void main(string args[]) System.out.println( Quanti anni hai? ); La classe dichiarata
Calcolo Parallelo. Domanda. In particolare. Qual è l algoritmo parallelo. PROBLEMA: Prodotto Matrice-Vettore
Calcolo Parallelo Algoritmi Paralleli per il prodotto Matrice-Vettore Laura Antonelli PROBLEMA: Prodotto Matrice-Vettore Progettazione di un algoritmo parallelo per architettura MIMD a memoria distribuita
Laboratorio di Calcolo Numerico Laboratorio 8: Vettori e Matrici
Laboratorio di Calcolo Numerico Laboratorio 8: Vettori e Matrici Claudia Zoccarato E-mail: claudia.zoccarato@unipd.it Dispense: Moodle Dipartimento ICEA 03 Maggio 2017 Richiami In MATLAB, ogni variabile
= elemento che compare nella seconda riga e quinta colonna = -4 In generale una matrice A di m righe e n colonne si denota con
Definizione di matrice Una matrice (di numeri reali) è una tabella di m x n numeri disposti su m righe e n colonne. I numeri che compaiono nella tabella si dicono elementi della matrice. La loro individuazione
Laboratorio di Analisi Numerica Lezione 3
Laboratorio di Analisi Numerica Lezione 3 Federico Poloni 10 Novembre 2010 Quantità di esercizi: in questa dispensa ci sono più esercizi di quanti uno studente medio riesce a farne durante
Introduzione all algebra delle matrici. Appunti a cura di Lara Ercoli
Introduzione all algebra delle matrici ppunti a cura di Lara Ercoli Indice Definizioni 3. Matrici particolari............................ 4 2 Operazioni con le matrici 8 2. Somma di matrici.............................
LABORATORIO DI PROGRAMMAZIONE E CALCOLO Docente E. Carlini A.A. 2012/13 Foglio di esercizi N.8 con la collaborazione di Andrea Pugliese
LABORATORIO DI PROGRAMMAZIONE E CALCOLO Docente E. Carlini A.A. / Foglio di esercizi N.8 con la collaborazione di Andrea Pugliese Dovete strutturare i programmi dei seguenti esercizi in funzioni ) (Metodo
Fondamenti di Informatica
Fondamenti di Informatica Prof. Arcangelo Castiglione A.A. 2016/17 Matrici In una matrice gli elementi sono numerati per riga e per colonna, ad esempio m ij denota l elemento alla riga i e colonna j Matrici
SISTEMI DI DUE EQUAZIONI IN DUE INCOGNITE
SISTEMI DI DUE EQUAZIONI IN DUE INCOGNITE Un equazione di primo grado in una incognita del tipo, con ha: una sola soluzione (equazione determinata) se nessuna soluzione (equazione impossibile) se tutte
PAES. Laurea Specialistica in Informatica. Analisi e sviluppo di un implementazione parallela dell AES per. architetture eterogenee multi/many-core
PAES Analisi e sviluppo di un implementazione parallela dell AES per architetture eterogenee multi/many-core Candidato Paolo Bernardi Relatore Osvaldo Gervasi Laurea Specialistica in Informatica Contesto
Architettura dei sistemi di elaborazione (Input/Output parte 1)
Architettura dei sistemi di elaborazione (Input/Output parte 1) Sottosistema di I/O Il sottosistema di I/O è la parte attraverso la quale si esplica la comunicazione tra il calcolatore e il mondo esterno.
Funzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2018/2019 Argomenti del Corso Ogni lezione consta di una spiegazione assistita da slide,
Lo scopo. Il primo esperimento. Soluzione informale. Le variabili
Lo scopo 2 Il primo esperimento Si vuole scrivere un programma in linguaggio C che chieda all utente di introdurre da tastiera due numeri interi e visualizzi il valore della loro somma sul video Ver. 2.4
Funzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7
HIGH PERFORMANCE COMPUTING SU UNITA' GRAFICHE PROGRAMMABILI
ALMA MATER STUDIORUM UNIVERSITA' DI BOLOGNA SEDE DI CESENA FACOLTA' DI SCIENZE MATEMATICHE, FISICHE E NATURALI CORSO DI LAUREA IN SCIENZE DELL'INFORMAZIONE HIGH PERFORMANCE COMPUTING SU UNITA' GRAFICHE
Ottimizzazioni 2 Corso di sviluppo Nvidia CUDATM. Davide Barbieri
Ottimizzazioni 2 Corso di sviluppo Nvidia CUDATM Davide Barbieri Panoramica Lezione Parallelismo a livello di Thread Occupazione dei multiprocessori Latenza Parallelismo a livello di istruzione Parallelismo
a21 a22 a2 Figura 1 - Una matrice (insieme ordinato rettangolare di scalari)
L inserimento di funzioni matriciali Le regole illustrate in precedenza per l inserimento di funzioni sono pressochè identiche per tutte le funzioni, sia quelle interne sia quelle che è possibile definire
Esercizio 2: Algebra dei Puntatori e Puntatori a Puntatori
Esercizio 2: Algebra dei Puntatori e Puntatori a Puntatori Salvatore Mandrà 7 Ottobre 2008 1 Esercizio L esercizio prevede l implementazione di funzioni per il prodotto di una matrice per un vettore, attraverso
Piccola rassegna di Algebra delle Matrici
Piccola rassegna di Algebra delle Matrici 1 Introduzione Questa nota va intesa semplicemente come un brevissimo sommario di alcuni concetti relativi alle Matrici, che dovete utilizzare nell ambito dello
Esercitazione [1] Processi e Thread
Esercitazione [1] Processi e Thread Leonardo Aniello - aniello@dis.uniroma1.it Sistemi di Calcolo - Secondo modulo (SC2) Programmazione dei Sistemi di Calcolo Multi-Nodo Corso di Laurea in Ingegneria Informatica
Calcolo parallelo. Una sola CPU (o un solo core), per quanto potenti, non sono sufficienti o richiederebbero tempi lunghissimi
Calcolo parallelo Ci sono problemi di fisica, come le previsioni meteorologiche o alcune applicazioni grafiche, che richiedono un enorme potenza di calcolo Una sola CPU (o un solo core), per quanto potenti,
Corso di Informatica
Corso di Informatica Modulo T5 B1-Programmazione multithreading 1 Prerequisiti Schedulazione Attesa indefinita Lo stallo Tecnica round-robin 2 1 Introduzione La programmazione concorrente consente di chiedere
Corso di High Performance Computing
Ultimo aggiornamento: 2018-12-05 Corso di High Performance Computing Esercitazione CUDA del 11/12/2018 Moreno Marzolla Per svolgere l'esercitazione è necessario collegarsi al server isi-raptor03.csr.unibo.it
MPI. MPI e' il risultato di un notevole sforzo di numerosi individui e gruppi in un periodo di 2 anni, tra il 1992 ed il 1994
MPI e' acronimo di Message Passing Interface Rigorosamente MPI non è una libreria ma uno standard per gli sviluppatori e gli utenti, che dovrebbe essere seguito da una libreria per lo scambio di messaggi
Sommario. Elementi di Parallelismo. Misura delle prestazioni parallele. Tecniche di partizionamento. Load Balancing. Comunicazioni
Sommario Elementi di Parallelismo Misura delle prestazioni parallele Tecniche di partizionamento Load Balancing Comunicazioni 2 Problema 1: Serie di Fibonacci Calcolare e stampare i primi N elementi della
Programmazione di base
Fondamenti di Informatica Primo Appello 01-17 8 febbraio 017 Rispondi alle domande negli appositi spazi. I punti assegnati per ogni domanda sono indicati nel riquadro a lato. L'esame contiene 10 domande,
MATRICI E SISTEMI LINEARI
1 Rappresentazione di dati strutturati MATRICI E SISTEMI LINEARI Gli elementi di una matrice, detti coefficienti, possono essere qualsiasi e non devono necessariamente essere omogenei tra loro; di solito
Architettura dei sistemi di elaborazione: La CPU: Architettura (parte 2)
Architettura dei sistemi di elaborazione: La CPU: Architettura (parte 2) ALU L unità aritmetico logica o ALU rappresenta l apparato muscolare di un calcolatore, il dispositivo cioè che esegue le operazioni
Corso di Programmazione Concorrente
Corso di Programmazione Concorrente Programmazione Concorrente: Introduzione Valter Crescenzi crescenz@dia.uniroma3.it http://crescenzi.inf.uniroma3.it Sommario Concetti fondamentali e terminologia Programma
Studio degli algoritmi
COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI Fondamenti di Informatica a.a.2006/07 Prof. V.L. Plantamura Dott.ssa A. Angelini Studio degli algoritmi Dato un problema P, le problematiche riguardano: Sintesi
Laboratorio di Python
Algoritmo, sulle liste Università di Bologna 3 e 5 aprile 2013 Sommario Correzione esercizi 1 Correzione esercizi 2 3 4 Correzione Correzione esercizi scrivere e documentare un programma con un menu dove:
2. Teoria. [7 punti] La comunicazione tra processi nel sistema UNIX.
1. Unix [12 punti] Prova Scritta di Recupero del 5 Aprile 2004 Si scriva un programma C che utilizzi le system call di UNIX e che realizzi un comando UNIX avente la seguente sintassi: esame fsize fin fout
Programmare con MATLAB c Parte 5 Cicli: for e while
Programmare con MATLAB c Parte 5 Cicli: for e while Lucia Gastaldi DICATAM - Sezione di Matematica, http://lucia-gastaldi.unibs.it Indice 1 La notazione due punti 2 Ciclo: for 3 Ciclo con controllo: while
Il determinante. Calcolo del determinante di matrici particolari. matrici di ordine 2: sia. a11 a A = allora
Calcolo del determinante di matrici particolari matrici di ordine 2: sia allora Esempio. [ ] a11 a A = 12, a 21 a 22 det A = a 11 a 22 a 21 a 12. Calcolare il determinante di [ ] 1 2 A =. 3 4 matrici di
liceo B. Russell PROGRAMMAZIONE INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE BIENNIO: SECONDA DISCIPLINA: INFORMATICA
INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE PROGRAMMAZIONE BIENNIO: SECONDA DISCIPLINA: INFORMATICA PIANO DI LAVORO DEL DOCENTE / RELAZIONE FINALE Anno scolastico 2014/2015 DOCENTE Prof. PAOLO ARMANI CLASSE:
I THREAD O PROCESSI LEGGERI
I THREAD O PROCESSI Processi (pesanti): LEGGERI entità autonome con poche risorse condivise (si prestano poco alla scrittura di applicazioni fortemente cooperanti) Ogni processo può essere visto come Immagine
Laboratorio di Analisi Numerica Lezione 3
Laboratorio di Analisi Numerica Lezione 3 Gianna Del Corso Federico Poloni 16 Ottobre 2012 Quantità di esercizi: in questa dispensa ci sono più esercizi di
Programmazione di base
Fondamenti di Informatica Quinto Appello 016-1 1 Luglio 01 Rispondi alle domande negli appositi spazi. I punti assegnati per ogni domanda sono indicati nel riquadro a lato. L'esame contiene 10 domande,
Esercitazione [2] Processi e Thread
Esercitazione [2] Processi e Thread Leonardo Aniello Daniele Cono D Elia Federico Lombardi Sistemi di Calcolo - Secondo modulo
Pag. 1. Il Nucleo del sistema operativo (la gestione dei processi)
shell Programmi utente Modo utente Il Nucleo del sistema operativo (la gestione dei processi) Interfaccia delle chiamate di sistema File system Gestione processi Device driver Gestione memoria HARDWARE
Scritto da Redazione Martedì 05 Ottobre :12 - Ultimo aggiornamento Martedì 05 Ottobre :22
Volete sapere chi ha la meglio fra due schede grafiche al top come una ATI Mobility Radeon HD 5870 ed una Nvidi a GeForce GTX 285M? Possiamo toglierci questa curiosità grazie ad MSI perché ha creato due
Matlab: Script e Funzioni
Matlab: Script e Funzioni Informatica B Script Cos è uno script (m-file) q Uno script è un file di testo contenente una sequenza di comandi MATLAB non deve contenere caratteri di formattazione (solo testo
Architetture dei Calcolatori (Lettere
Architetture dei Calcolatori (Lettere J-Z) Valutazione delle Prestazioni Ing.. Davide D AmicoD Valutazione delle Prestazioni Misura/valutazione di un insieme di parametri quantitativi per caratterizzare
Frazioni algebriche. Quando ho una frazione con un polinomio al numeratore ed un polinomio al denominatore devo fare la stessa cosa:
Frazioni algebriche Le frazioni algebriche sono frazioni con polinomi al numeratore e al denominatore, quindi sono le frazioni più generiche possibili: studiare e capire le regole delle loro operazioni
Esercitazione [01] Processi e Thread
Esercitazione [01] Processi e Thread Leonardo Aniello Daniele Cono D Elia Giuseppe Laurenza Federico Lombardi
Note per il corso di Geometria Corso di laurea in Ing. Edile/Architettura. 4 Sistemi lineari. Metodo di eliminazione di Gauss Jordan
Note per il corso di Geometria 2006-07 Corso di laurea in Ing. Edile/Architettura Sistemi lineari. Metodo di eliminazione di Gauss Jordan.1 Operazioni elementari Abbiamo visto che un sistema di m equazioni
Valutazione delle prestazioni
Valutazione delle prestazioni Architetture dei Calcolatori (lettere A-I) Valutazione delle prestazioni Misura/valutazione di un insieme di parametri quantitativi per Quantificare le caratteristiche di
Valutazione delle prestazioni. Valutazione delle prestazioni. Tempo di risposta e throughput. Prestazioni e tempo di esecuzione
Valutazione delle prestazioni Valutazione delle prestazioni Architetture dei Calcolatori (lettere A-I) Misura/valutazione di un insieme di parametri quantitativi per Quantificare le caratteristiche di
Titolo presentazione
Titolo presentazione Programmazione C: Esercizi su stringhe, funzionisottotitolo di libreria e matrici Milano, XX mese 20XX Informatica ed Elementi di Informatica Medica Agenda Argomenti e valore di ritorno
L Allocazione Dinamica della Memoria
L Allocazione Dinamica della Memoria Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario Questo documento
Prestazioni 1. Prestazioni 2. Prestazioni 3
Valutazione delle Prestazioni Architetture dei Calcolatori Valutazione delle Prestazioni Prof. Francesco Lo Presti Misura/valutazione di un insieme di parametri quantitativi per caratterizzare le prestazioni
Corso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA2 2.1- Funzioni 1 Prerequisiti Programmazione elementare in Java Tecnica top-down Concetto matematico di funzione Compilazione e link di programmi Esecuzione di funzioni
determinante della sottomatrice ottenuta da A cancellando la i-esima riga e la j-esima colonna
Data una matrice quadrata A di ordine n si definisce minore complementare m ij dell elemento generico a ij della matrice A il determinante della sottomatrice ottenuta da A cancellando la i-esima riga e
Algoritmo PARTE A: Algoritmi, linguaggi di programmazione e programmi
Algoritmo PARTE A: Algoritmi, linguaggi di programmazione e programmi Un algoritmo è una descrizione non ambigua di un numero finito di operazioni. 2 3 Algoritmo Esempio: Algoritmo per accedere al proprio
MATRICI E VETTORI APPROFONDIMENTO PER IL CORSO DI LABORATORIO DI INFORMATICA SARA POLTRONIERI
MATRICI E VETTORI APPROFONDIMENTO PER IL CORSO DI LABORATORIO DI INFORMATICA SARA POLTRONIERI LE MATRICI DEFINIZIONE: Una matrice è un insieme di numeri disposti su righe e colonne. 1 3 7 M = 2 5 1 M è
Calcolatori Elettronici
Calcolatori Elettronici Valutazione delle Prestazioni Francesco Lo Presti Rielaborate da Salvatore Tucci Valutazione delle Prestazioni q Misura/valutazione di un insieme di parametri quantitativi per caratterizzare
MATRICI e DETERMINANTI. Prof.ssa Maddalena Dominijanni
MATRICI e DETERMINANTI Le matrici non sono altro che tabelle di elementi ordinati per righe e colonne. Se m = n la matrice si dice quadrata Matrice quadrata di ordine 3 Matrice rettangolare di tipo 2 3
Introduzione al Calcolo Parallelo Algoritmi e Calcolo Parallelo. Daniele Loiacono
Introduzione al Calcolo Parallelo Algoritmi e Calcolo Parallelo Riferimenti q Questo materiale deriva dalle slide del prof. Lanzi per il corso di Informatica B, A.A. 2009/2010 q Il materiale presente in
Gli array. slides credit M. Poneti
Gli array slides credit M. Poneti Vettori nome del vettore (tutti gli elementi hanno lo stesso nome, c) Vettore (Array) Gruppo di posizioni (o locazioni di memoria) consecutive Hanno lo stesso nome e lo
YYY02 Esercizi per Teoria. Esercizi per preparazione alla prova scritta
YYY02 Esercizi per Teoria Esercizi per preparazione alla prova scritta Esercizio YYY02_02 - Busy Waiting In linguaggio ANSI C, siano dichiarate le seguenti variabili, e siano queste variabili debitamente
Geometria BAER I canale Foglio esercizi 2
Geometria BAER I canale Foglio esercizi Esercizio. ( ) Data la matrice, determinare tutte le matrici X Mat( ) tali che AX = 0 e tutte le matrici Y Mat( ) tali che Y 0. ( ) ( ) ( ) x y x + z y + w Soluzione:
Indovina la lettera...
Indovina la lettera... La lezione di oggi consiste nel preparare un programma che chiede all'utente di indovinare quale sia il carattere generato dal programma stesso in modo casuale. Il numero totale
Corso di Geometria e Algebra Lineare
Prof. C. Vergara, Dott.ssa N. Franchina, Dr. A. Colombo Corso di Geometria e Algebra Lineare Laboratorio 3: sistemi lineari 25 29 Maggio 2015 Metodi diretti per sistemi lineari Si consideri il seguente
Prodotto Matrice - Vettore in MPI II Strategia
Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Esercitazione di Calcolo Parallelo Prodotto Matrice - Vettore in MPI II Strategia Anno Accademico 2010/2011 Prof.ssa Alessandra D'alessio
Strutture lineari in Java
Strutture lineari in Java Scopo della esercitazione è quello di utilizzare strutture lineari del Java Collection Framework per realizzare strutture più complesse come le matrici. 1 Prerequisiti Verranno
Lezione 15 Il Set di Istruzioni (1)
Lezione 15 Il Set di Istruzioni (1) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Un quadro della situazione Input/Output Sistema di Interconnessione Registri
Introduzione 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
Matrici.h Definizione dei tipi #define MAXROWS 10 #define MAXCOLS 10 #define ELEMENT int #define ELEMENTFORMAT "%d" Tipo degli elementi della matrice
Matrici Un po di esercizi sulle matrici Semplici Lettura e scrittura Calcolo della trasposta Media difficoltà Calcolo del determinante Difficili Soluzione di sistemi lineari È veramente difficile? 1 Matrici.h
Corso di Informatica
Corso di Informatica Modulo T2 2-La CPU 1 Prerequisiti Concetto intuitivo di programma Microprocessore Linguaggio binario Operazioni aritmetiche e logiche elementari 2 1 Introduzione In questa Unità vediamo
La gerarchia di memorie (2)
Migliorare le prestazioni delle cache La gerarchia di memorie () Architetture Avanzate dei Calcolatori Valeria Cardellini Consideriamo la formula del tempo medio di accesso in memoria (AMAT) AMAT = hit
1. Un array è: A. Un simbolo usato nel linguaggio C per rappresentare un numero non specificato di variabili B. Un insieme di indirizzi di memoria
Esame teorico Rispondere alle domande a risposta multipla (probabilmente 10) Eventualmente 1-2 domande a risposta libera Ogni domanda ha una ed una sola risposta corretta Tempo di risposta: 60 minuti Peso:
Il Software programmabili programma algoritmo
Il Software La proprietà fondamentale dei calcolatori e` quella di essere programmabili cioè in grado di svolgere compiti diversi a seconda delle istruzioni fornite dall utente mediante un programma, ossia
Corso di Architettura (Prof. Scarano) 09/04/2002
Corso di Architettura (Prof. Scarano) 09/0/2002 Un quadro della situazione Lezione 15 Il Set di Istruzioni (1) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno
PIEDINO NOME DESCRIZIONE
LCD ALFANUMERICO Il display LCD afanumerico è un dispositivo che consente di visualizzare su una matrice di righe e colonne uno o più caratteri contenenti lettere, numeri simboli. Ogni carattere è composto
Architettura del calcolatore. Prima parte
Architettura del calcolatore Prima parte Argomenti trattati Architettura di Von Neumann Memoria centrale Bus di sistema Unità di elaborazione (CPU) Interfacce di Ingresso/ uscita Modello di Von Neumann
Matrici Un po di esercizi sulle matrici Semplici Lettura e scrittura Calcolo della trasposta Media difficoltà Calcolo l del determinante t È Difficili
Matrici Un po di esercizi sulle matrici Semplici Lettura e scrittura Calcolo della trasposta Media difficoltà Calcolo l del determinante t È Difficili Soluzione di sistemi lineari È veramente difficile?
... b 2 X 2. . b N X N. a 11 a 12.. a 1N a 21 a 22.. a 2N A =. a N1... a NN
Matrici Un po di esercizi sulle matrici Semplici Lettura e scrittura Calcolo della trasposta Media difficoltà Calcolo l del determinante t È veramente Difficili difficile? Soluzione di sistemi lineari
5 Thread. 5 Thread. 5 Thread. Ad un generico processo, sono associati, in maniera univoca, i seguenti dati e le seguenti informazioni:
1 Ad un generico processo, sono associati, in maniera univoca, i seguenti dati e le seguenti informazioni: codice del programma in esecuzione un area di memoria contenente le strutture dati dichiarate
La gerarchia di memorie (2)
La gerarchia di memorie (2) Architetture Avanzate dei Calcolatori Valeria Cardellini Migliorare le prestazioni delle cache Consideriamo la formula del tempo medio di accesso in memoria (AMAT) AMAT = hit
Esercizi su CUDA Algoritmi e Calcolo Parallelo. Daniele Loiacono
Esercizi su CUDA Algoritmi e Calcolo Parallelo Prodotto scalare q Implementare in cuda il prodotto scalare fra due array di float c = ~a ~b = X i a i b i " a e b sono array di uguali dimensioni e con N