Prodotto Matrice - Vettore in OpenMP
|
|
- Salvatore Ferrari
- 8 anni fa
- Visualizzazioni
Transcript
1 Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Elaborato di Calcolo Parallelo Prodotto Matrice - Vettore in OpenMP Anno Accademico 2011/2012 Professoressa Alessandra D Alessio Studenti Giuffrida Serena M63/ Lampognana Francesca M63/ Mele Gianluca M63/000145
2 Definizione del Problema Il punto di partenza del nostro elaborato è il calcolo del prodotto matrice - vettore sull architettura MIMD a memoria condivisa a 64 CPU (16 x Intel Xeon E5410 quadcore@2.33ghz 64 bit) offerta dall Università degli Studi di Napoli Federico II attraverso l infrastruttura S.Co.P.E.. L obiettivo è la valutazione dell efficienza dell algoritmo da noi implementato, valutazione a cui giungeremo raccogliendo i risultati dei diversi test eseguiti (che si differenziano per cifre di precisione richieste e/o per il numero di threads coinvolti) in tre parametri fondamentali: tempo impiegato dall algoritmo parallelo con p threads T(p), speed-up S(p) ed efficienza E(p). Per la realizzazione dell algoritmo abbiamo utilizzato l API OpenMP per gestire il parallelismo shared memory multi threaded, lavorando su un solo nodo dell infrastruttura SCOPE. Tale libreria viene messa a disposizione da quasi tutti i compilatori C ed è uno dei motivi che ci ha spinti ad utilizzare questo linguaggio di programmazione per l algoritmo da noi sviluppato. 2
3 Descrizione dell algoritmo Nome capitolo Andiamo ora a descrivere in particolare l operazione che vogliamo realizzare. In seguito ci dedicheremo alla descrizione specifica dell algoritmo da noi implementato, evidenziando la parti relative all uso della libreria OpenMP per la parallelizzazione del programma. Vogliamo realizzare il calcolo del prodotto: Ax = y ove A è una matrice quadrata,, mentre x e y sono vettori della stessa dimensione della matrice; quindi Definita la matrice A: E il vettore x: Si vuole ottenere il vettore risultato y così calcolato: 3
4 Si può notare come questa operazione sia fortemente parallelizzabile osservando la natura stessa dei calcoli che l algoritmo dovrà effettuare. Infatti, ciascun elemento del vettore dei risultati y viene calcolato effettuando i prodotti scalari di ogni riga della matrice A per il vettore x. E quindi chiaro che i prodotti scalari possono essere effettuati in maniera indipendente gli uni dagli altri, è proprio questa l idea alla base della parallelizzazione di quest algoritmo. Passiamo ora alla descrizione dell algoritmo da noi implementato. Il programma inizia con la parte di dichiarazioni delle variabili e, dopo aver istanziato la matrice A e i vettori x e y in maniera dinamica, si passa al riempimento della matrice A e del vettore x. Dopo di questo si passa alla parallelizzazione del calcolo del prodotto matrice vettore, che sarà fatto utilizzando la libreria OpenMp. Useremo la direttiva #pragma omp parallel, che forma un team di thread ed avvia un esecuzione parallela. In particolare, dato che il calcolo del prodotto matrice vettore è realizzato mediante due for innestati, useremo come direttiva una parallel for, la quale specifica che le iterazioni del ciclo contenuto al suo interno devono essere distribuite tra i thread del team. Andremo a parallelizzare solo il ciclo for più esterno, mentre il ciclo interno sarà eseguito singolarmente da ciascun thread. Il numero di thread è specificato mediante la clausola num_threads(/*numero di threads su cui è richiesta l esecuzione*/). Il modo in cui le iterazioni vengono ripartite tra i thread è specificato tramite la clausola schedule(type, chunk). Nel nostro caso, abbiamo scelto di utilizzare lo schedule dynamic, in quanto effettuando diverse prove abbiamo notato che la differenza in termini di tempi d esecuzione era irrisoria e non significativa. Tale schedule a fronte di eventuali rallentamenti dei threads, offre un autonoma gestione del carico di lavoro a fronte di una necessità di sincronizzazione tra gli stessi. Mediante lo schedule dynamic le iterazioni vengono divise in blocchi di dimensione chunk e assegnate dinamicamente ai threads; quando un thread termina un chunk, ne ha assegnato un altro. Di default chunk=1. 4
5 Ulteriori clausole inserite nella direttiva parallel for sono le clausole shared e private: mediante queste è possibile specificare rispettivamente quali variabili sono condivise tra i thread e quali sono private per gli stessi (ogni thread ne avrà una copia). Tra le variabili che vanno dichiarate come shared vi sono: dimmatrix, dimensione della matrice A e del vettore x, matrice, la matrice A del nostro calcolo, x e y, i vettori. Tali variabili devono poter essere viste da tutti i threads e non saranno modificate da essi. Tra le variabili che vanno dichiarate come private vi sono: l indice j dell iterazione più interna, mentre l indice i dell iterazione interna è settato automaticamente come variabile privata, la variabile result, variabile d appoggio per il calcolo del prodotto matrice vettore che vengono modificate durante le iterazioni del ciclo. Si noti che nel caso non fosse stata inserita la variabile d appoggio result, ma si fosse andato a scrivere direttamente nel vettore risultato si sarebbe andati incontro al fenomeno del false sharing, problema che accade per effetto della cache coerence: si ha traccia della modifiche effettuate su una variabile shared in una cache line, da 16 a 256 bytes, quindi se un thread scrive una parte di una cache line questa è invalidata negli altri thread. Il fenomeno diventa un problema che abbassa le performance nel caso in cui le modifiche vengono effettuate in rapida successione. Per ottenere dati riguardanti il tempo, abbiamo utilizzato la funzione omp_get_wtime() in due differenti punti dell algoritmo e, facendone la differenza, abbiamo ottenuto il tempo di esecuzione. 5
6 Analisi del software Adesso concentreremo l attenzione sulle tabelle e i grafici relativi al calcolo del tempo di esecuzione T(p), dello speed-up S(p) e dell efficienza E(p). Tempo di esecuzione T(p) Nella tabella che segue sono riportati i valori del tempo di esecuzione registrati al variare del numero di thread P e del numero di righe della matrice A, N. Quindi muovendoci lungo la colonna possiamo capire se c è un vantaggio o meno legato all aumento del numero di threads coinvolti. Tutti i valori del T(p) sono espressi in secondi, mentre ciascuno dei valori in tabella è stato ottenuto eseguendo la media sui campioni ottenuti eseguendo una quindicina di prove; un analogo discorso si estende anche ai valori mostrati nelle tabella del S(p) e dell E(p). N P 1 0, , , , , , , , , , , , , , , , Tabella 1: Tempo di esecuzione T(p) 6
7 Figura 1: T(p) al variare del numero di threads e del numero di righe della matrice Guardando la Figura 2 e la Tabella 1 possiamo notare che per determinati valori di N non sempre è conveniente l utilizzo di un architettura multithread a memoria condivisa. In particolare per N=100 i tempi di esecuzione peggiorano quando si va ad aumentare il numero di threads che eseguono il programma. Per quanto concerne N=1000 è quasi indifferente l impiego di più threads, mentre iniziamo ad apprezzarne i vantaggi a partire da N= e ad avere dei tempi particolarmente soddisfacenti per N= Negli ultimi tre casi citati i tempi migliori si registrano con p=8. Invertendo il punto di vista, fissando quindi il numero di threads p e variando il valore di N, è possibile notare un aumento dei tempi che è ragionevole, considerando la diversa dimensione delle operazioni da svolgere. 7
8 Speed-up S(p) Nella tabella che segue sono riportati i valori dello speed-up, ricordiamo che esso misura, a parità di n, la riduzione del tempo di esecuzione rispetto all algoritmo su 1 thread. Il valore è stato ottenuto a partire dal T(p) medio calcolato a partire da una decina di campioni. S( p) T (1) T ( p) N P 2 0, , , , , , , , , , , , Tabella 2: Valori dello Speed-up S(p) al variare di N e di P Figura 2: Speed up S(p) al variare di N e di p 8
9 Il punto di riferimento per giudicare lo speed-up delle nostre esecuzioni è la linea tratteggiata, che rappresenta il valore ideale. Per N=100 e N=1.000 siamo ancora lontani dall approssimarci al miglior caso possibile, come accade invece per gli altri 2 valori della N. Questo grafico conferma le considerazioni fatte in precedenza, mostrando che valori nei dintorni di quelli ideali sono stati registrati per p=2 con N= e N=20.000, per p=4 con le stesse dimensioni citate prima; con p=8 a partire da N= traiamo dei benefici dall impiego dell architettura multithread a memoria condivisa, ma non al punto da essere ottimi come nei due casi su menzionati. Efficienza E(p) Nella tabella che segue sono riportati i valori dell efficienza, indicativa di quanto l algoritmo sfrutti il parallelismo del calcolatore. E( p) S( p) p P N , , , , , , , , , , , , Tabella 3: Valori dell Efficienza E(p) al variare di N e p Il valore di riferimento di E(p) è rappresentato nella Figura 4, in rapporto allo stesso scopriamo che i nostri test forniscono un risultato interessante per N= con p=2 e con p=4, mentre sullo stesso numero di threads per N= si ottengono valori quasi ideali. In tutti gli altri casi all aumentare del numero di threads l efficienza degrada; ciò in piena aderenza con le osservazioni suggeriteci dai grafici di T(p) ed S(p). 9
10 Figura 3: Efficienza E(p) al variare di N e di p 10
11 Esempi d uso e codice In questo capitolo verranno illustrati degli esempi d uso dell algoritmo. Mostreremo in che modo verrà richiamato il programma e le interazioni possibili. Inoltre, mostreremo qui il codice del programma da noi sviluppato, il quale sarà correlato da una documentazione interna che ne spiegherà il funzionamento. Esempi d uso Mostriamo un esempio del risultato che si ottiene a video andando a eseguire il programma fornendo la dimensione dimmatrix=5. Si nota che vengono mostrati a video i risultati dell esecuzione, oltre al tempo di 11
12 esecuzione. Si può vedere come il risultato sia corretto confrontandolo con il risultato offerto dal software Matlab andando a fornirgli gli stessi input: Codice del programma Riportiamo qui di seguito il codice da noi scritto per la realizzazione di questo programma. Abbiamo utilizzato il linguaggio di programmazione C. Il codice è stato corredato di una documentazione interna che spiega le varie istruzioni utilizzate. 12
13 #include <stdio.h> #include <omp.h> #include <stdlib.h> int main(int argc, char **argv) { //Dichiarazione variabili int i,j,nt=4,dimmatrix=1000; //numero di righe iniziale della matrice, nt= numero di threads double tempotot,start,end; int result=0; //variabile d'appoggio int* matrice=(int*)calloc(dimmatrix*dimmatrix,sizeof(int*));; int* x=(int*)calloc(dimmatrix,sizeof(int)); int* y=(int*)calloc(dimmatrix,sizeof(int)); printf("dimensione matrice: %d.\n",dimmatrix); //Riempimento della matrice e del vettore x for(i=0;i<dimmatrix;i++){ x[i]=i; // definito come sequenza dei primi dimmatrix-1 numeri for(j=0;j<dimmatrix;j++) matrice[j+i*dimmatrix]=1; // utilizzeremo una matrice costituita da tutti 1 } //Inizio calcolo dei tempi start=omp_get_wtime(); #pragma omp parallel for schedule(dynamic) num_threads(nt) \ parallela shared(dimmatrix,matrice,x,y) private(j,result) for(i=0;i<dimmatrix;i++) { for(j=0;j<dimmatrix;j++){ result=result+matrice[j+i*dimmatrix]*x[j]; } y[i]=result; result=0; } //fine parte parallela //parte end=omp_get_wtime(); //Fine calcolo dei tempi tempotot=1.e6*(end-start); printf("tempo totale : %f\n",tempotot); /*for(i=0;i<dimmatrix;i++) printf("y[%d] = %d\n",i,y[i]); */ free(matrice); free(x); free(y); } return 0; 13
Pigreco in OpenMP. Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica. Elaborato di Calcolo Parallelo. Anno Accademico 2011/2012
Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Elaborato di Calcolo Parallelo Pigreco in OpenMP Anno Accademico 2011/2012 Professoressa Alessandra D Alessio Studenti Giuffrida Serena M63/000239
DettagliDimensione 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
DettagliUniversità degli Studi di Salerno
Università degli Studi di Salerno Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Tesi di Laurea Algoritmi basati su formule di quadratura interpolatorie per GPU ABSTRACT
DettagliGHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.
*+33(GLWRU GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. Il programma si basa su un architettura di tasti funzionali presenti
DettagliStudente: SANTORO MC. Matricola : 528
CORSO di LAUREA in INFORMATICA Corso di CALCOLO NUMERICO a.a. 2004-05 Studente: SANTORO MC. Matricola : 528 PROGETTO PER L ESAME 1. Sviluppare una versione dell algoritmo di Gauss per sistemi con matrice
DettagliFONDAMENTI di INFORMATICA L. Mezzalira
FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software
DettagliRaggruppamenti Conti Movimenti
ESERCITAZIONE PIANO DEI CONTI Vogliamo creare un programma che ci permetta di gestire, in un DB, il Piano dei conti di un azienda. Nel corso della gestione d esercizio, si potranno registrare gli articoli
DettagliDall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni
Dall Algoritmo al Programma Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni IL PROGRAMMA Gli algoritmi sono modelli di descrizione astratti e per controllarne il funzionamento devono essere
DettagliGUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL
GUIDA RAPIDA BOZZA 23/07/2008 INDICE 1. PERCHÉ UNA NUOVA VERSIONE DEI MODULI DI RACCOLTA DATI... 3 2. INDICAZIONI GENERALI... 4 2.1. Non modificare la struttura dei fogli di lavoro... 4 2.2. Cosa significano
DettagliDocumentazione esterna al software matematico sviluppato con MatLab
Documentazione esterna al software matematico sviluppato con MatLab Algoritmi Metodo di Gauss-Seidel con sovrarilassamento Metodo delle Secanti Metodo di Newton Studente Amelio Francesco 556/00699 Anno
Dettagli2010 Ing. Punzenberger COPA-DATA Srl. Tutti i diritti riservati.
2010 Ing. Punzenberger COPA-DATA Srl Tutti i diritti riservati. Tutti i diritti riservati la distribuzione e la copia - indifferentemente dal metodo - può essere consentita esclusivamente dalla dittacopa-data.
DettagliISTRUZIONI PER LA GESTIONE BUDGET
ISTRUZIONI PER LA GESTIONE BUDGET 1) OPERAZIONI PRELIMINARI PER LA GESTIONE BUDGET...1 2) INSERIMENTO E GESTIONE BUDGET PER LA PREVISIONE...4 3) STAMPA DIFFERENZE CAPITOLI/BUDGET.10 4) ANNULLAMENTO BUDGET
DettagliINFORMATICA 1 L. Mezzalira
INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello
DettagliCalcolatori Elettronici A a.a. 2008/2009
Calcolatori Elettronici A a.a. 2008/2009 PRESTAZIONI DEL CALCOLATORE Massimiliano Giacomin Due dimensioni Tempo di risposta (o tempo di esecuzione): il tempo totale impiegato per eseguire un task (include
DettagliSistema operativo: Gestione della memoria
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e
DettagliMac Application Manager 1.3 (SOLO PER TIGER)
Mac Application Manager 1.3 (SOLO PER TIGER) MacApplicationManager ha lo scopo di raccogliere in maniera centralizzata le informazioni piu salienti dei nostri Mac in rete e di associare a ciascun Mac i
DettagliI Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo
I Thread 1 Consideriamo due processi che devono lavorare sugli stessi dati. Come possono fare, se ogni processo ha la propria area dati (ossia, gli spazi di indirizzamento dei due processi sono separati)?
DettagliDefinire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};
ESERCIZI 2 LABORATORIO Problema 1 Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; Chiede all'utente un numero e, tramite ricerca
DettagliGian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C
Università degli Studi di Cagliari Corso di Laurea in Ingegneria Biomedica (Industriale), Chimica, Elettrica, e Meccanica FONDAMENTI DI INFORMATICA 1 http://www.diee.unica.it/~marcialis/fi1 A.A. 2010/2011
DettagliMANUALE 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...
DettagliCorso 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
Dettagli4 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
DettagliINTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI
INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.
DettagliFIRESHOP.NET. Gestione completa degli ordini e degli impegni. Rev. 2014.3.1 www.firesoft.it
FIRESHOP.NET Gestione completa degli ordini e degli impegni Rev. 2014.3.1 www.firesoft.it Sommario SOMMARIO Introduzione... 3 Gli ordini a fornitore... 5 Gli impegni dei clienti... 7 Evadere gli ordini
DettagliFunzioni in C. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni
DettagliUso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012
Fondamenti di informatica Oggetti e Java ottobre 2012 1 JUnit JUnit è uno strumento per assistere il programmatore Java nel testing JUnit consente di scrivere test di oggetti e classi Java i test sono
DettagliESEMPIO 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
DettagliLezione 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
DettagliELETTRONICA Tema di Sistemi elettronici automatici Soluzione
ELETTRONICA Tema di Sistemi elettronici automatici Soluzione La traccia presenta lo sviluppo di un progetto relativo al monitoraggio della temperatura durante un processo di produzione tipico nelle applicazione
DettagliCapitolo 2. Operazione di limite
Capitolo 2 Operazione di ite In questo capitolo vogliamo occuparci dell operazione di ite, strumento indispensabile per scoprire molte proprietà delle funzioni. D ora in avanti riguarderemo i domini A
DettagliSTATISTICA IX lezione
Anno Accademico 013-014 STATISTICA IX lezione 1 Il problema della verifica di un ipotesi statistica In termini generali, si studia la distribuzione T(X) di un opportuna grandezza X legata ai parametri
DettagliSCRUTINIO ON LINE 2 PERIODO
SCRUTINIO ON LINE 2 PERIODO MANUALE OPERATIVO PER IL DOCENTE COORDINATORE Pagina 1 Accesso al sistema Per entrare nel registro elettronico, il docente apre il browser di accesso ad Internet e può accedere
DettagliManuale di Aggiornamento BOLLETTINO. Rel. 5.20.1H4. DATALOG Soluzioni Integrate a 32 Bit
Manuale di Aggiornamento BOLLETTINO Rel. 5.20.1H4 DATALOG Soluzioni Integrate a 32 Bit - 2 - Manuale di Aggiornamento Sommario 1 2 PER APPLICARE L AGGIORNAMENTO... 3 1.1 Aggiornamento Patch Storica...
DettagliMatematica in laboratorio
Unità 1 Attività guidate Attività 1 Foglio elettronico Divisibilità tra numeri naturali Costruisci un foglio di lavoro per determinare se a è divisibile per b, essendo a e b due numeri naturali, con a
DettagliNUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT.
NUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT. Con l utilizzo delle procedure di iscrizione on line la società organizzatrice ha a disposizione tutti
DettagliRegistratori di Cassa
modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...
DettagliSDD System design document
UNIVERSITA DEGLI STUDI DI PALERMO FACOLTA DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA INFORMATICA TESINA DI INGEGNERIA DEL SOFTWARE Progetto DocS (Documents Sharing) http://www.magsoft.it/progettodocs
DettagliGESTIONE INFORMATICA DEI DATI AZIENDALI
GESTIONE INFORMATICA DEI DATI AZIENDALI Alberto ZANONI Centro Vito Volterra Università Tor Vergata Via Columbia 2, 00133 Roma, Italy zanoni@volterra.uniroma2.it Rudimenti di programmazione Programming
DettagliOperazioni di Comunicazione di base. Cap.4
Operazioni di Comunicazione di base Cap.4 1 Introduzione: operazioni di comunicazioni collettive Gli scambi collettivi coinvolgono diversi processori Sono usati massicciamente negli algoritmi paralleli
DettagliProgettaz. e sviluppo Data Base
Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo
DettagliRealizzazione di Politiche di Gestione delle Risorse: i Semafori Privati
Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Condizione di sincronizzazione Qualora si voglia realizzare una determinata politica di gestione delle risorse,la decisione se ad
DettagliInteresse, sconto, ratei e risconti
TXT HTM PDF pdf P1 P2 P3 P4 293 Interesse, sconto, ratei e risconti Capitolo 129 129.1 Interesse semplice....................................................... 293 129.1.1 Esercizio per il calcolo dell
DettagliSommario. Analysis & design delle applicazioni parallele. Misura delle prestazioni parallele. Tecniche di partizionamento.
Sommario Analysis & design delle applicazioni parallele Misura delle prestazioni parallele Tecniche di partizionamento Comunicazioni Load balancing 2 Primi passi: analizzare il problema Prima di iniziare
DettagliFinalità della soluzione... 3. Schema generale e modalità d integrazione... 4. Gestione centralizzata in TeamPortal... 6
Finalità della soluzione... 3 Schema generale e modalità d integrazione... 4 Gestione centralizzata in TeamPortal... 6 Dati gestiti dall Anagrafica Unica... 8 Gestione anagrafica... 9 Storicizzazione...
DettagliPiù processori uguale più velocità?
Più processori uguale più velocità? e un processore impiega per eseguire un programma un tempo T, un sistema formato da P processori dello stesso tipo esegue lo stesso programma in un tempo TP T / P? In
DettagliIl Programma Operativo. Mentore. Rende ordinario quello che per gli altri è straordinario
Il Programma Operativo Mentore Rende ordinario quello che per gli altri è straordinario Programma operativo Sei stai guardando questa presentazione hai DECISO di CAMBIARE e hai deciso di scoprire COME
DettagliScheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux
Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola
DettagliSomma di un array di N numeri in MPI
Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Elaborato di Calcolo Parallelo Somma di un array di N numeri in MPI Anno Accademico 2011/2012 Professoressa Alessandra D Alessio Studenti
DettagliAirone Gestione Rifiuti Funzioni di Esportazione e Importazione
Airone Gestione Rifiuti Funzioni di Esportazione e Importazione Airone Funzioni di Esportazione Importazione 1 Indice AIRONE GESTIONE RIFIUTI... 1 FUNZIONI DI ESPORTAZIONE E IMPORTAZIONE... 1 INDICE...
DettagliProgrammazione dinamica
Capitolo 6 Programmazione dinamica 6.4 Il problema della distanza di edit tra due stringhe x e y chiede di calcolare il minimo numero di operazioni su singoli caratteri (inserimento, cancellazione e sostituzione)
DettagliPROCEDURA PER LA GESTIONE ESAMI DI STATO AREA ALUNNI AXIOS
PROCEDURA PER LA GESTIONE ESAMI DI STATO AREA ALUNNI AXIOS Lo scopo di questa guida rapida è quello di fornire all utente, sia del prodotto SISSI in RETE che del prodotto Axios, un vademecum per la corretta
DettagliEsempi di algoritmi. Lezione III
Esempi di algoritmi Lezione III Scopo della lezione Implementare da zero algoritmi di media complessità. Verificare la correttezza di un algoritmo eseguendolo a mano. Imparare a valutare le prestazioni
Dettaglie-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
DettagliGestione ed analisi di base dati nell epidemiologia. delle malattie infettive
Università degli Studi di Torino - Facoltà di Medicina Veterinaria Laboratorio di epidemiologia delle malattie infettive Scuola Specializzazione in Sanità Animale, Allevamento e Produzioni Zootecniche
DettagliAnalisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda
Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda Premessa Con l analisi di sensitività il perito valutatore elabora un range di valori invece di un dato
DettagliSOFTWARE A SUPPORTO DELLA GESTIONE AMMINISTRATIVA DELLO SPORTELLO UNICO SPECIFICA DEI REQUISITI UTENTE
Pag. 1 di 16 SOFTWARE A SUPPORTO DELLA (VERS. 3.1) Specifica dei Requisiti Utente Funzionalità di associazione di più Richiedenti ad un procedimento Codice Identificativo VERIFICHE ED APPROVAZIONI CONTROLLO
DettagliIl documento rappresenta una guida sintetica per descrivere sia la filosofia che il modulo software per l implementazione dei workflow in recuper@2.
Il documento rappresenta una guida sintetica per descrivere sia la filosofia che il modulo software per l implementazione dei workflow in recuper@2.0 ver 1.0 del 19/03/2013 Nettuno Solutions s.r.l. Viale
Dettaglihttps://tfa.cineca.it Istruzioni per l uso
https://tfa.cineca.it Istruzioni per l uso Data Versione Descrizione Autore 30/04/2012 1.0 La procedura di preiscrizione per i TFA CINECA 03/05/2012 1.1 Aggiornamento della procedura. CINECA A partire
DettagliMAGAZZINO FISCALE (agg. alla rel. 3.4.1)
MAGAZZINO FISCALE (agg. alla rel. 3.4.1) Per ottenere valori corretti nell inventario al LIFO o FIFO è necessario andare in Magazzino Fiscale ed elaborare i dati dell anno che ci serve valorizzare. Bisogna
DettagliRIFERIMENTI ATTORI GLOSSARIO. ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova
RIFERIMENTI ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2014 2015 I riferimenti devono essere precisi
DettagliColorSplitter. La separazione automatica dei colori di Colibri.. Perché ColorSplitter? Come opera ColorSplitter?
ColorSplitter La separazione automatica dei colori di Colibri.. ColorSplitter è una nuova funzionalità aggiunta a Colibri, che permette di elaborare un immagine trasformandola in una separata in canali
DettagliMetodi Stocastici per la Finanza
Metodi Stocastici per la Finanza Tiziano Vargiolu vargiolu@math.unipd.it 1 1 Università degli Studi di Padova Anno Accademico 2011-2012 Lezione 6 Indice 1 Il metodo bootstrap 2 Esercitazione 3 Interpolazione
DettagliProgrammazione a Oggetti Modulo B
Programmazione a Oggetti Modulo B Progetto Dott. Alessandro Roncato 4/10/2011 Progetto Da svolgere singolarmente Scadenza consegna: una settimana prima dello scritto; Valutazione in base a: Corretta compilazione
DettagliIntroduzione alla programmazione in C
Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale
DettagliCome modificare la propria Home Page e gli elementi correlati
Come modificare la propria Home Page e gli elementi correlati Versione del documento: 3.0 Ultimo aggiornamento: 2006-09-15 Riferimento: webmaster (webmaster.economia@unimi.it) La modifica delle informazioni
DettagliESAME SCRITTO DI ELEMENTI DI INFORMATICA E PROGRAMMAZIONE. 27 Gennaio 2015
COGNOME E NOME: MATRICOLA: Civile Ambiente e Territorio Non si possono consultare manuali, appunti e calcolatrici. Esercizio 1: [3 punto] Rappresentare i numeri 36 e 91 (in base 10) in notazione binaria
DettagliIl 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
DettagliA intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.
Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio
DettagliComplemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno
Rappresentazione di numeri Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno Un numero e un entità teorica,
DettagliDispense di Informatica per l ITG Valadier
La notazione binaria Dispense di Informatica per l ITG Valadier Le informazioni dentro il computer All interno di un calcolatore tutte le informazioni sono memorizzate sottoforma di lunghe sequenze di
DettagliCodifica: dal diagramma a blocchi al linguaggio C++
Codifica: dal diagramma a blocchi al linguaggio C++ E necessario chiarire inizialmente alcuni concetti. La compilazione Il dispositivo del computer addetto all esecuzione dei programmi è la CPU La CPU
Dettagli1. 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
DettagliEsame di INFORMATICA
Università di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA Lezione 4 MACCHINA DI VON NEUMANN Anni 40 i dati e i programmi che descrivono come elaborare i dati possono essere codificati nello
DettagliUn nuovo modo per fare analisi e generare documenti dinamici
Un nuovo modo per fare analisi e generare documenti dinamici Cos è Web4Project Web4Project (W4P) è un software nel cloud che consente di fare analisi e generare documenti dinamici/report. Cosa fa W4P è
DettagliIL SISTEMA INFORMATIVO
IL SISTEMA INFORMATIVO In un organizzazione l informazione è una risorsa importante al pari di altri tipi di risorse: umane, materiali, finanziarie, (con il termine organizzazione intendiamo un insieme
DettagliSpeedup. Si definisce anche lo Speedup relativo in cui, invece di usare T 1 si usa T p (1).
Speedup Vediamo come e' possibile caratterizzare e studiare le performance di un algoritmo parallelo: S n = T 1 T p n Dove T 1 e' il tempo impegato dal miglior algoritmo seriale conosciuto, mentre T p
DettagliIntroduzione al MATLAB c Parte 2
Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione
DettagliLande Immortali: Riepilogo dello Stato di Avanzamento del Progetto
Lande Immortali: Riepilogo dello Stato di Avanzamento del Progetto Progetto a cura di Martino Michele Matricola: 0124000461 Miglio Stefano Matricola: 0124000462 Obiettivi Iniziali Si intende realizzare
DettagliUniversità di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.
Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record
DettagliInformatica I per la. Fisica
Corso di Laurea in Fisica Informatica I per la Fisica Lezione: Software applicativo II Fogli elettronici e Data Base Software: software di sistema (BIOS) sistema operativo software applicativo ROM Dischi
DettagliProva di Laboratorio di Programmazione
Prova di Laboratorio di Programmazione 6 febbraio 015 ATTENZIONE: Non è possibile usare le classi del package prog.io del libro di testo. Oltre ai metodi richiesti in ciascuna classe, è opportuno implementare
DettagliParte 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
DettagliRicerca Operativa Esercizi sul metodo del simplesso. Luigi De Giovanni, Laura Brentegani
Ricerca Operativa Esercizi sul metodo del simplesso Luigi De Giovanni, Laura Brentegani 1 1) Risolvere il seguente problema di programmazione lineare. ma + + 3 s.t. 2 + + 2 + 2 + 3 5 2 + 2 + 6,, 0 Soluzione.
DettagliLA RICLASSIFICAZIONE DEI SALDI CONTABILI CON MICROSOFT ACCESS 2007
LA RICLASSIFICAZIONE DEI SALDI CONTABILI CON MICROSOFT ACCESS 2007 La fase di riclassificazione del bilancio riveste un ruolo molto importante al fine di comprendere l andamento aziendale; essa consiste,
DettagliSCELTA DELL APPROCCIO. A corredo delle linee guida per l autovalutazione e il miglioramento
SCELTA DELL APPROCCIO A corredo delle linee guida per l autovalutazione e il miglioramento 1 SCELTA DELL APPROCCIO l approccio all autovalutazione diffusa può essere normale o semplificato, a seconda delle
DettagliSOMMARIO. 2003 Gruppo 4 - All right reserved 1
SOMMARIO STUDIO DEL DOMINIO DI APPLICAZIONE...2 Introduzione...2 Overview del sistema...2 Specificità del progetto 2...2 Utente generico...3 Studente...3 Docente...3 Amministratore di sistema...3 GLOSSARIO...4
DettagliGli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori
Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine
DettagliGestione Turni. Introduzione
Gestione Turni Introduzione La gestione dei turni di lavoro si rende necessaria quando, per garantire la continuità del servizio di una determinata struttura, è necessario che tutto il personale afferente
DettagliLa gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)
La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema
Dettagli16 - Differenza tra l acquisizione di una mappa catastale lucidata sull impianto e una rilasciata in fotocopia
16 - Differenza tra l acquisizione di una mappa catastale lucidata sull impianto e una rilasciata in fotocopia Viene mostrata nel capitolo che segue la differenza tra due metodi operativi di acquisizione
Dettagli(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)
(Esercizi Tratti da Temi d esame degli ordinamenti precedenti) Esercizio 1 L'agenzia viaggi GV - Grandi Viaggi vi commissiona l'implementazione della funzione AssegnaVolo. Tale funzione riceve due liste
DettagliSistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1
MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati
DettagliMECCANISMI E POLITICHE DI PROTEZIONE 13.1
MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati
DettagliCapitolo V : Il colore nelle immagini digitali
Capitolo V : Il colore nelle immagini digitali Lavorare con il colore nelle immagini digitali L uso dei colori nella visione computerizzata e nella computer grafica implica l incorrere in determinate problematiche
DettagliVeneto Lavoro via Ca' Marcello 67/b, 30172 Venezia-Mestre tel.: 041/2919311
Veneto Lavoro via Ca' Marcello 67/b, 30172 Venezia-Mestre tel.: 041/2919311 INDICE 1. INTRODUZIONE... 3 1.1 SCADENZA... 3 1.2 CAUSALE DA UTILIZZARE... 3 2. MODALITÀ OPERATIVE DI COMUNICAZIONE DATI... 4
DettagliInvio SMS. DM Board ICS Invio SMS
Invio SMS In questo programma proveremo ad inviare un SMS ad ogni pressione di uno dei 2 tasti della DM Board ICS. Per prima cosa creiamo un nuovo progetto premendo sul pulsante (Create new project): dove
DettagliSISTEMI 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
DettagliAccreditamento al SID
Accreditamento al SID v. 3 del 22 ottobre 2013 Guida rapida 1 Sommario Accreditamento al SID... 3 1. Accesso all applicazione... 4 2. Richieste di accreditamento al SID... 6 2.1. Inserimento nuove richieste...
Dettagli12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)
12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,
DettagliIl web server Apache Lezione n. 3. Introduzione
Procurarsi ed installare il web server Apache Introduzione In questa lezione cominciamo a fare un po di pratica facendo una serie di operazioni preliminari, necessarie per iniziare a lavorare. In particolar
Dettagli