Metriche e Strumenti. di Valutazione delle Prestazioni. nel Calcolo Parallelo. (cenni) Speedup
|
|
- Gilberta Bianchi
- 7 anni fa
- Visualizzazioni
Transcript
1 Metriche e Strumenti di Valutazione delle Prestazioni nel Calcolo Parallelo (cenni) Definizione 1 (Speedup Ideale) Speedup Rapporto tra il tempo di esecuzione del migliore algoritmo sequenziale T* ed il tempo di esecuzione del corrispondente algoritmo parallelo ottenuto utilizzando p processori: * T S * p = Tp Definizione 2 (Speedup Algoritmico) Rapporto tra il tempo di esecuzione dell algoritmo su di un unico processore (T 1 ) ed il tempo di esecuzione dello stesso su p processori (T p ) Tipico andamento dello speedup Speedup Numero processori Michele Colajanni Efficienza delle Applicazioni Parallele 2/22 1
2 Misura del grado di inutilizzo dell elaboratore parallelo Per definizione, 0 <= E p <= 1 Efficienza E p = Buona misura per la presentazione di più risultati in quanto, rispetto allo speedup (espresso in funzione di p), normalizza i tempi di esecuzione S p p efficienza 1 Dati Michele Colajanni Efficienza delle Applicazioni Parallele 3/22 Si assuma che in un determinato problema possa essere distinto in due parti: una inerentemente sequenziale (sia f la percentuale di tale sezione sul calcolo complessivo) ed una completamente parallelizzabile: Tempo di esecuzione: Allora lo speedup è limitato da: Conseguenza Una piccola frazione di operazioni sequenziali può limitare fortemente lo speedup ottenibile da un computer parallelo Esempio Legge di Amdhal (1967) T p 1 f = ( f + ) T1 p S p Se f=0.1 Sp 10, indipendentemente da quanti processori si hanno Michele Colajanni Efficienza delle Applicazioni Parallele 4/22 f f p p per S p 1/ f N f 2
3 Motivazioni Legge di Barsis-Gustafson Diversi studi sperimentali condotti presso il Sandia National Laboratory hanno dimostrato che per molti problemi era possibile ottenere speedup quasi lineari (circa 1000 con 1024 processori) Ciò ha condotto ad una rivisitazione della legge di Amdhal: Il difetto della legge di Amdhal è quello di considerare f e p scorrelati, cioè dipendenti dalle proprietà statiche dell algoritmo senza tener conto della dimensione dello spazio computazionale Scalando la dimensione del problema con il numero di processori usati, si ha invece che: T 1 non è più indipendente dal numero di processi utilizzati T p risulta indipendente dal numero di processori Ribaltamento del paradigma di Amdhal: Amdhal: quanto sarà Tp dato T1 Barsis: quanto sarà T1 dato Tp Michele Colajanni Efficienza delle Applicazioni Parallele 5/22 Legge di Barsis-Gustafson (cont.) Esecuzione parallela = Ts + Tw s w s pw Esecuzione sequenziale = Ts + p Tw Sia s la frazione di tempo che una macchina parallela spenderebbe nella parte seriale del programma e w la frazione che la stessa macchina parallela spenderebbe nelle parti parallelizzabili del programma medesimo. Ts + ptw Ts Tw S p ( scalato) = + = + p = s + pw T + T T + T T + T s w Normalizzando anche in questo caso, cioè supponendo w+s=1, si ha: s = s + p (1 - s) = s + p ps = p + ( 1 p ) s w s w Michele Colajanni Efficienza delle Applicazioni Parallele 6/22 3
4 E possibile avere speedup superlineare (?) Confronto disonesto (es.: Algoritmo sequenziale non buono) Caratteristiche HARDWARE (Soprattutto dovuto a gerarchie di memoria: cache/disco) Anomalie ALGORITMICHE (es.: algoritmi di ricerca) T 1 =11 (tempo sequenziale con tradizionale algoritmo di ricerca) Soluzione T 2 =4 (tempo parallelo con 2 processori) Speedup = 11/4 = 2.75!! Max Speedup (lineare) = 2 Spazio di ricerca Assegnato al Processore 1 Spazio di ricerca Assegnato al Processore 2 Michele Colajanni Efficienza delle Applicazioni Parallele 7/22 Analisi delle prestazioni (Modelli analitici) Modelli deterministici Modelli stocastici Modelli a reti di code con Fork-Join Task Graph Markoviani Michele Colajanni Efficienza delle Applicazioni Parallele 8/22 4
5 Vi sono tre indici temporali che caratterizzano l esecuzione di un programma parallelo: Tempo di comunicazione Tempo di calcolo Tcomm Top Tempo totale di esecuzione su p processori COMMUNICATION PENALTY Esempio Modelli Deterministici (Tempo di esecuzione) In molti algoritmi e sistemi paralleli il tempo speso per le COMUNICAZIONI è una considerevole frazione del tempo totale necessario a risolvere un problema. Tale penalizzazione, detta Communication Penalty, può essere espressa dal rapporto tra il tempo di esecuzione su p processori inclusivo delle comunicazioni ed il tempo al netto delle comunicazioni, ossia: T CP = T ex( p) op( p) Michele Colajanni Efficienza delle Applicazioni Parallele 9/22 Cause di inefficienza delle Applicazioni parallele (e possibili rimedi) 5
6 Processo implementativo di un programma SPMD Programma Sequenziale Decomposizione del Dominio dei Dati (Schema di memorizzazione) 1 2 Primitive di Comunicazione Programma parallelo (versione 1) Strategia di tuning Programma parallelo (versione 2) Michele Colajanni Efficienza delle Applicazioni Parallele 11/22 Parametri che Influenzano le Prestazioni Bilanciamento del Carico Rapporto Comunicazioni/Computazioni Colli di Bottiglia (sequenzializzazioni, sincronizazioni) Tuning dei Programmi Michele Colajanni Efficienza delle Applicazioni Parallele 12/22 6
7 Programmare i multicomputers Le macchine MIMD a memoria distribuita (muticomputers) raggiungono buone prestazioni (speedup) soltanto se sono programmate in maniera opportuna. Sono molto più difficili da programmare rispetto alle SIMD o alle MIMD a memoria condivisa. In particolare, esiste una granularità ottima dei processi (dati) per ciascun tipo di problema che deve essere risolto su di un particolare mulicomputer. Nel caso in cui l insieme di processi abbia una granularità maggiore o minore di quella ottima, in generale lo speedup non sarà né lineare né proporzionale al numero di processi presenti. Michele Colajanni Efficienza delle Applicazioni Parallele 13/22 Bilanciamento del Carico Obiettivo: Assegnare a tutti i processori un analogo WORKLOAD ===> Livelli di utilizzazione simili significano prestazioni più elevate POSSIBILI TECNICHE DI MIGLIORAMENTO Diminuire la granularità Ridistribuzione dinamica di strutture dati o di task Ridistribuzione di strutture dati statiche Aumentare il livello di multiprogrammazione (per ciascun nodo) Michele Colajanni Efficienza delle Applicazioni Parallele 14/22 7
8 Bilanciamento Dinamico (a Posteriori) dei Processi Ottenuto mediante MIGRAZIONE DEI PROCESSI (o STRUTTURE DATI). Vi sono tre metodi per controllare e gestire l operazione (centralizzata) della migrazione: Iniziativa del Destinatario I processori con piccolo workload richiedono più processi (Adatto nel caso di sistemi molto carichi) Iniziativa del Mittente I processori con eccessivo workload richiedono di poter cedere alcuni processi ad altri processori (Adatto nel caso di sistemi poco carichi) Metodo Ibrido Si passa dal primo al secondo metodo a seconda del livello di carico del sistema. Michele Colajanni Efficienza delle Applicazioni Parallele 15/22 Pro e Contro del Bilanciamento Dinamico + Si ottiene, tipicamente, un utilizzo maggiore dei processori ± Bisogna evitare la cosiddetta migrazione circolare, utilizzando algoritmi opportuni e valori soglia - Vi sono elevati costi aggiuntivi sia nel determinare il workload dei processori che il workload totale - L operazione di migrazione di un processo è costosa e dovrebbe essere effettuata solo per i processi con lunghi tempi di esecuzione (informazione che spesso non è possibile determinare a priori) - In genere, tutti i metodi di bilanciamento dinamico intervengono troppo tardi (quando le prestazioni del sistema sono già degradate). Il bilanciamento forward-looking è possibile solo conoscendo i tempi di run dei singoli processi. - Nei sistemi eccessivamente carichi, tutti i metodi di bilanciamento dinamico non hanno punti di riferimento. Per di più, i costi introdotti dalla gestione del bilanciamento tendono a far peggiorare ulteriormente le prestazioni del sistema. Michele Colajanni Efficienza delle Applicazioni Parallele 16/22 8
9 Bottleneck di Sequenzializzazione Obiettivo: Evitare che tutti i processi si mettano in attesa di un singolo processore. ===>Ogni sequenzializzazione forzata del codice influenza in modo considerevole le prestazioni. Bottleneck del processore Bottleneck del codice Es., Fattorizzazione LU (decomposizione per colunne) POSSIBILE TECNICHE DI MIGLIORAMENTO Modificare o migliorare l algoritmo in modo da sovrapporre il codice sequenziale con altre computazioni Distribuire i workload di processori sovraccarichi (bottleneck) tra più processori Michele Colajanni Efficienza delle Applicazioni Parallele 17/22 Bottleneck di Sincronizzazione Obiettivo: Limitare i punti in cui tutti i processori debbano sincronizzarsi. ===> L ultimo processo ad arrivare al punto di sincronizzazione determina il tempo di esecuzione globale. LU factorization (no send-ahead) POSSIBILI TECNICHE DI MIGLIORAMENTO Inviare i valori necessari alle computazioni di altri processori non appena sono disponibili (send-ahead) Modificare o riorganizzare l algoritmo in modo da eliminare i punti di sincronizzazione dove non strettamente necessari Michele Colajanni Efficienza delle Applicazioni Parallele 18/22 9
10 Rapporto Comunicazioni/Computazioni Obiettivo: Minimizzare il rapporto tempo di comunicazione tempo di computazioni di un programma. ===> Rapporti COMUNICAZIONI/COMPUTAZIONI più bassi implicano prestazioni più elevate POSSIBILI TECNICHE DI MIGLIORAMENTO Aumentare la granularità Ristrutturare il programma in modo da avere meno messaggi, ciascuno di dimensione maggiore Ristrutturare le comunicazioni in modo da combinare messaggi logicamente multipli in messaggi singoli Michele Colajanni Efficienza delle Applicazioni Parallele 19/22 Tuning dei Programmi (Ambito: Data Parallelism con Allocazione Statica) OBIETTIVO 1: MIGLIORARE IL BILANCIAMENTO DEL CARICO Esempio (Fattorizzazione LU) Passare da una decomposizione geometrica ad una decomposizione ciclica del dominio dei dati Michele Colajanni Efficienza delle Applicazioni Parallele 20/22 10
11 Tuning dei Programmi (Ambito: Data Parallelism con allocazione statica) OBIETTIVO2: ELIMINARE LE SINCRONIZZAZIONI NON NECESSARIE Esempio (Fattorizzazione LU) (1) Algortimo naive (decomposizione per righe) for k=1 to n-1 do if (k in mynode) then broadcast(a k* ) else receive(a k* ) for all (i>k in mynode) do l ik =a ik /a kk for j=k+1 to n do a ij =a ij -l ik a kj (2) Algoritmo 1-send-ahead (decomposizione per righe) if (1 in mynode) then broadcast(a i* ) for k=1 to n-1 do if not(k in mynode) then receive(a k* ) for all (i>k in mynode) do l ik =a ik /a kk for j=k+1 to n do {a ij =a ij -l ik a kj if ((i=k+1) (i n)) then broadcast(a i* ) } Michele Colajanni Efficienza delle Applicazioni Parallele 21/22 Tuning dei Programmi (Ambito: Data Parallelism con Allocazione Dinamica) Sebbene lo schema manager-worker migliori considerevolmente il Bilanciamento del Carico, è possibile effettuare ulteriori miglioramenti agendo sulla granularità dei compiti e dell allocazione dei processi. Esempio (N Regine) Determina il numero migliore (del punto di vista del bilanciamento) per ciò che concerne i sottoproblemi da creare [Numero di sottoproblemi e numero di messaggi sono inversamente proporzionali] ---> si tende a migliorare il bilanciamento del carico e il rapporto comunic./comput. Invia due sottoproblemi per ciascuna comunicazione Manager-Worker [In tal modo si consente al Worker di sovrapporre una computazione per ogni richiesta pendente al Manager] ---> si riduce il bottleneck di sequenzializzazione e si migliora il rapporto comunicazione/computazione Se il manager risulta essere poco carico, sfrutta il multitasking: aggiungi un processo Worker anche sul processore che esegue il processo Manager Se il Manager risulta essere troppo carico, suddividi il lavoro del Manager tra più processori Michele Colajanni Efficienza delle Applicazioni Parallele 22/22 11
Esempi di Applicazioni Parallele e di Metodologie di parallelizzazione
Esempi di Applicazioni Parallele e di Metodologie di parallelizzazione Esempi Applicazioni Parallele Applicazioni embarassing parallel Es.. Calcolo del π Metodo di parallelizzazione Task farm statico Applicazioni
DettagliValutazione 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
DettagliCLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico)
CLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico) - Dedicati Quelli dei primi sistemi operativi. La macchina viene utilizzata da un utente per volta che può eseguire un solo programma per volta.
DettagliClassificazione delle Architetture Parallele
Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Classificazione delle Architetture Parallele Corso di Sistemi Distribuiti Valeria Cardellini Anno accademico 2009/10 Architetture parallele
DettagliLa vera difficoltà non è progettare architetture
Superamento dei 10 Pflops Progettazione di algoritmi e software paralleli diffusione dei cluster e avvento dei multicore il modo con cui è stato sviluppato il software fino ad ora scomparirà tra pochi
DettagliCALCOLO PARALLELO SUPERARE I LIMITI DI CALCOLO. A cura di Tania Caprini
CALCOLO PARALLELO SUPERARE I LIMITI DI CALCOLO A cura di Tania Caprini 1 CALCOLO SERIALE: esecuzione di istruzioni in sequenza CALCOLO PARALLELO: EVOLUZIONE DEL CALCOLO SERIALE elaborazione di un istruzione
DettagliCorso di Matematica per la Chimica
Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Pivoting e stabilità Se la matrice A non appartiene a nessuna delle categorie precedenti può accadere che al k esimo passo risulti a (k) k,k = 0, e quindi il
DettagliPROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE
PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE 1 ALGORITMO, PROGRAMMA, PROCESSO Algoritmo Procedimento logico che deve essere eseguito per risolvere un determinato problema. Programma Descrizione di un
DettagliCalcolatori 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
DettagliPARTE II PROGRAMMAZIONE PARALLELA
PARTE II PROGRAMMAZIONE PARALLELA Metodologie di Esplicitazione del Metodologie di Esplicitazione del Implicito Funzionale (Control Parallelism ) Basato sui dati (Data Parallelism ) Ogni metodologia di
DettagliIntroduzione al Calcolo Parallelo Algoritmi e Calcolo Parallelo. Daniele Loiacono
Introduzione al Calcolo Parallelo Algoritmi e Calcolo Parallelo Riferimenti Questo materiale deriva dalle slide del prof. Lanzi per il corso di Informatica B, A.A. 2009/2010 Il materiale presente in queste
DettagliModelli di programmazione parallela
Modelli di programmazione parallela Oggi sono comunemente utilizzati diversi modelli di programmazione parallela: Shared Memory Multi Thread Message Passing Data Parallel Tali modelli non sono specifici
DettagliReti locali. Protocolli di accesso per reti locali
Protocolli di accesso per reti locali Gruppo Reti TLC nome.cognome@polito.it http://www.telematica.polito.it/ PROTOCOLLI DI ACCESSO PER RETI LOCALI - 1 Caratteristiche reti locali Piccola estensione geografica
Dettagli2.2 Alberi di supporto di costo ottimo
. Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) memorizzazione compatta di sequenze (DNA) diffusione
DettagliArchitetture della memoria
Architetture della memoria Un elemento determinante per disegnare una applicazione parallela e' l architettura della memoria della macchina che abbiamo a disposizione. Rispetto all architettura della memoria
DettagliSistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.
Programmi applicativi Un programma applicativo (o applicativo) è un eseguibile che può essere utilizzato dall utente e che ha funzionalità di alto livello (word processor, spreadsheet, DBMS) Univ. Milano-Bicocca
DettagliProgrammi per calcolo parallelo. Calcolo parallelo. Esempi di calcolo parallelo. Misure di efficienza. Fondamenti di Informatica
FONDAMENTI DI INFORMATICA rof IER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Calcolo parallelo e sistemi multiprocessore 2000 ier Luca Montessoro (si veda la nota di copyright
DettagliSistemi Operativi. A.M. Fanelli Architettura dei Sistemi a. a Livello di Sistema Operativo. Livello di Linguaggi Applicativi
Sistemi Operativi A.M. Fanelli Architettura dei Sistemi a. a. 2008-09 1 Livello di Sistema Operativo Livello di Linguaggi Applicativi Livello di Linguaggio Assembly Livello di Sistema Operativo Livello
DettagliParte I. Ibrido MPLS. Figura 1.1
Parte I 1. INTRODUZIONE ALLE RETI MPLS Instradamento a pacchetto datagram Ibrido Commutazione di circuito virtuale IP MPLS ATM Figura 1.1 L MPLS (Multiprotocol label switching, commutazione di etichetta
Dettagli5. Applicazione ai dati sperimentali, un modello di previsione delle temperature
5. Applicazione ai dati sperimentali, un modello di previsione delle temperature 5.1 Ricostruzione dello spazio delle fasi L utilizzo del teorema di embedding per ricostruire lo spazio delle fasi relativo
DettagliUn Algoritmo parallelo per l Equazione delle Onde nelle Applicazioni Geofisiche
UNIVERSITÀ DEGLI STUDI DI ROMA TRE FACOLTÀ DI SCIENZE M.F.N. Un Algoritmo parallelo per l Equazione delle Onde nelle Applicazioni Geofisiche Sintesi della tesi di Laurea in Matematica di Riccardo Alessandrini
DettagliCorso di High Performance Computing Ingegneria e Scienze Informatiche Università di Bologna Prova Scritta, 29/6/2017
Nome e Cognome Matricola Corso di High Performance Computing Ingegneria e Scienze Informatiche Università di Bologna Prova Scritta, 29/6/2017 La prova dura 60 minuti Durante la prova non è consentito consultare
DettagliRETI DI CALCOLATORI. Domande di riepilogo Quarta Esercitazione. Quali sono le differenze tra Bridge, Router e Gateway?
RETI DI CALCOLATORI Domande di riepilogo Quarta Esercitazione Quali sono le differenze tra Bridge, Router e Gateway? Bridge, Router e Gateway servono ad interconnettere reti diverse (internetworking).
Dettagli11.4 Chiusura transitiva
6 11.4 Chiusura transitiva Il problema che consideriamo in questa sezione riguarda il calcolo della chiusura transitiva di un grafo. Dato un grafo orientato G = hv,ei, si vuole determinare il grafo orientato)
DettagliMotivazione: Come si fa? Matrici simmetriche. Fattorizzazioni di matrici speciali
Motivazione: Fattorizzazioni di matrici speciali Diminuire la complessità computazionale = evitare operazioni inutili = risparmiare tempo di calcolo Diminuire l occupazione di memoria Come si fa? Si tiene
DettagliSoluzioni degli esercizi di formulazione di PL{0, 1}
Soluzioni degli esercizi di formulazione di PL{0, 1} Salvatore Nocella 12 febbraio 2007 1 Al lavoro Due operai devono eseguire un certo numero di lavori J = {1,..., n}, ciascuno della durata di un ora.
DettagliParte VIII. Architetture Parallele
Parte VIII Architetture Parallele VIII.1 Motivazioni Limite di prestazioni delle architetture sequenziali: velocità di propagazione dei segnali, la luce percorre 30 cm in un nsec! Migliore rapporto costo/prestazioni
DettagliSistemi Web per il turismo - lezione 3 -
Sistemi Web per il turismo - lezione 3 - Software Si definisce software il complesso di comandi che fanno eseguire al computer delle operazioni. Il termine si contrappone ad hardware, che invece designa
DettagliModello a scambio di messaggi
Modello a scambio di messaggi Aspetti caratterizzanti il modello Canali di comunicazione Primitive di comunicazione 1 Aspetti caratterizzanti il modello modello architetturale di macchina (virtuale) concorrente
DettagliRouting IP. IP routing
Routing IP IP routing IP routing (inoltro IP): meccanismo per la scelta del percorso in Internet attraverso il quale inviare i datagram IP routing effettuato dai router (scelgono il percorso) Routing diretto
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
DettagliABC: determinazione dei costi in base alle attività
ABC: determinazione dei costi in base alle attività L ABCèunmodello,nonunsistema contabile Particolarmente adatto in situazioni produttive caratterizzate: da un alta incidenza dei costi generali di produzione
DettagliProcessi, Threads e Agenti
Processi, Threads e Agenti Processi in Sistemi Distribuiti Un sistema software distribuito ècompostodaun insieme di processi in esecuzione su più nodi del sistema. Un algoritmo distribuito può essere definito
DettagliIndirettezza. Fetch/Execute. Fetch/Execute. Introduzione della Indirettezza (indirect)
Ciclo esecutivo delle istruzioni: Fetch/Execute Lo avete visto nel corso di Introduzione alle Architetture degli Elaboratori Stallings, Capitolo 3 Ne vediamo una versione revisionata Indirettezza Per recuperare
DettagliAlgoritmo basato su cancellazione di cicli
Algoritmo basato su cancellazione di cicli Dato un flusso ammissibile iniziale, si costruisce una sequenza di flussi ammissibili di costo decrescente. Ciascun flusso è ottenuto dal precedente flusso ammissibile
DettagliProgramma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori
Programma del corso Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori Evoluzione dei sistemi informatici Cos è una rete? Insieme di
DettagliMatrici. Matrici.h Definizione dei tipi. Un po di esercizi sulle matrici Semplici. Media difficoltà. Difficili
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
DettagliSistemi RAID. Motivazioni Concetti di base Livelli RAID. Sommario
Sistemi RAID 1 Motivazioni Concetti di base Livelli RAID Sommario 2 1 Motivazione L evoluzione tecnologica ha permesso di avere dischi sempre più piccoli e meno costosi E facile equipaggiare un sistema
DettagliSistemi lineari. 2x 1 + x 2 x 3 = 2 x 1 x 2 + x 3 = 1 x 1 + 3x 2 2x 3 = 0. x 1 x 2 x 3
Sistemi lineari 2x 1 + x 2 x 3 = 2 x 1 x 2 + x 3 = 1 x 1 + 3x 2 2x 3 = 0 2 1 1 1 1 1 1 3 2 x 1 x 2 x 3 = 2 1 0 n j=1 a i,jx j = b i, i = 1,, n Ax = b A = (a i,j ) R n n matrice invertibile (det(a) 0) b
DettagliAndrea Manganaro. Tecniche di campionamento a confronto per i sistemi di audit regionali
Andrea Manganaro Tecniche di campionamento a confronto per i sistemi di audit regionali Definizione del problema Le regioni finanziano ogni anno diverse attività tramite due fondi europei: il Fondo Europeo
DettagliI THREAD O PROCESSI LEGGERI
I THREAD O PROCESSI Processi (pesanti): LEGGERI entità autonome con poche risorse condivise (si prestano poco alla scrittura di applicazioni fortemente cooperanti) Ogni processo può essere visto come Immagine
DettagliMPI. 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
DettagliL Affidabilità dei Sistemi di Input-Output ad Elevate Prestazioni
1 tesi di laurea Anno Accademico 2005/2006 relatore Ch.mo prof. Domenico Cotroneo correlatore Ing. Generoso Paolillo candidato Emanuele Di Pascale Matr. 534/789 2 Il Contesto Le moderne applicazioni scientifiche
DettagliINTRODUZIONE ALLA TEORIA DEI GIOCHI
Corso di Identificazione dei Modelli e Controllo Ottimo Prof. Franco Garofalo INTRODUZIONE ALLA TEORIA DEI GIOCHI A cura di Elena Napoletano elena.napoletano@unina.it Teoria dei Giochi Disciplina che studia
DettagliArchitetture di rete. 4. Le applicazioni di rete
Architetture di rete 4. Le applicazioni di rete Introduzione L avvento di tecnologie (hw, sw, protocolli) di rete avanzate ha permesso la nascita di architetture software molto evolute che permettono lo
DettagliOperations Management
La schedulazione dei progetti Estratto da Operations Management Modelli e metodi per la logistica II Edizione Autore: Giuseppe Bruno Edizioni Scientifiche Italiane I problemi di scheduling 21 6.8 - LA
DettagliModelli di interazione tra processi
Modelli di interazione tra processi Modello a memoria comune (ambiente globale, global environment) Modello a scambio di messaggi (ambiente locale, message passing) 1 Modello a memoria comune Il sistema
Dettagli5.3 Metodo dei piani di taglio
5.3 Metodo dei piani di taglio (PLI) min s.v. c T x Ax b x interi X Ipotesi: a ij, c j e b i interi Osservazione: La regione ammissibile di un PLI può essere descritta mediante dei vincoli più o meno stringenti
DettagliStallo di processi. Definizione del problema e modellizzazione Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino
Stallo di processi Definizione del problema e modellizzazione Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Stallo (deadlock) Condizione di stallo (deadlock) Un P/T richiede
DettagliUn tipico esempio è la definizione del fattoriale n! di un numero n, la cui definizione è la seguente:
Pag 29 4) La ricorsione 4.1 Funzioni matematiche ricorsive Partiamo da un concetto ben noto, quello delle funzioni matematiche ricorsive. Una funzione matematica è detta ricorsiva quando la sua definizione
DettagliIntelligenza Artificiale. Cooperazione e coordinamento. Intelligenza Artificiale Daniele Nardi, 2003 Cooperazione e coordinamento 0
Intelligenza Artificiale Cooperazione e coordinamento Intelligenza Artificiale Daniele Nardi, 2003 Cooperazione e coordinamento 0 Sommario Cooperazione [Ferber - MAS, cap. 7.1-7.3] Coordinamento [Ferber
DettagliModelli di interazione tra processi
Modelli di interazione tra processi Modello a memoria comune (ambiente globale, global environment) Modello a scambio di messaggi (ambiente locale, message passing) 1 Modello a memoria comune Il sistema
DettagliBILANCIAMENTO DI UNA LINEA DI MONTAGGIO MANUALE
BILANCIAMENTO DI UNA LINEA DI MONTAGGIO MANUALE PROBLEMA: Quante e quali operazioni assegnare a ciascuna stazione di lavoro per bilanciare la linea, ovvero per evitare colli di bottiglia o stazioni troppo
DettagliANTITRASFORMATA DI LAPLACE MODI DI UN SISTEMA
CONTROLLI AUTOMATICI Ingegneria Gestionale http://www.automazione.ingre.unimore.it/pages/corsi/controlliautomaticigestionale.htm ANTITRASFORMATA DI LAPLACE MODI DI UN SISTEMA Ing. Federica Grossi Tel.
DettagliTecnica di Subnetting e Sub-subnetting
Tecnica di Subnetting e Sub-subnetting Autore: Roberto Bandiera febbraio 2015 Quando si ha a disposizione un pacchetto di indirizzi IP pubblici per l intera nostra rete aziendale occorre suddividere tale
DettagliESERCITAZIONE SUL CRITERIO
TECNOLOGIE DELLE COSTRUZIONI AEROSPAZIALI ESERCITAZIONE SUL CRITERIO DI JUVINALL Prof. Claudio Scarponi Ing. Carlo Andreotti Ing. Carlo Andreotti 1 IL CRITERIO DI JUVINALL La formulazione del criterio
DettagliMacchine parallele M 1 M 2 M 3 J 1 J 2 LAVORI J 3 J 4
Macchine parallele M 1 J 1 J 2 LAVORI M 2 J 3 J 4 M 3 Macchine parallele Scheduling su macchine parallele scorrelate R C max Descrizione del problema n lavori devono essere processati da m macchine diverse
DettagliValutazione delle prestazioni
Valutazione delle prestazioni Cristina Silvano Università degli Studi di Milano Dipartimento di Scienze dell Informazione email: silvano@dsi.unimi.it Cristina Silvano pag 1 Valutazione delle prestazioni
DettagliIntroduzione. Introduzione al calcolo parallelo
Introduzione Introduzione al calcolo parallelo Aumento delle prestazioni dei chip La capacità computazionale dei processori aumenta continuamente! Transistor più piccoli => maggiore densità dei circuiti
DettagliTempo e spazio di calcolo (continua)
Tempo e spazio di calcolo (continua) I numeri di Fibonacci come case study (applichiamo ad un esempio completo le tecniche illustrate nei lucidi precedenti) Abbiamo introdotto tecniche per la correttezza
DettagliCercare il minimo di una funzione: Particle swam optimization
di una funzione: Particle swam optimization Author: Luca Albergante 1 Dipartimento di Matematica, Università degli Studi di Milano 28 Marzo 2011 L. Albergante (Univ. of Milan) PSO 28 Marzo 2011 1 / 14
Dettagliinteroperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse.
Capitolo 7 Le infrastrutture SoftWare Funzioni del sistema operativo Rendere utilizzabili le risorse fisiche presenti nel sistema informatico: correttezza e precision; anywhere, anytime; affidabilità,
DettagliRisoluzione di sistemi lineari sparsi e di grandi dimensioni
Risoluzione di sistemi lineari sparsi e di grandi dimensioni Un sistema lineare Ax = b con A R n n, b R n, è sparso quando il numero di elementi della matrice A diversi da zero è αn, con n α. Una caratteristica
DettagliComponenti e connessioni. Capitolo 3
Componenti e connessioni Capitolo 3 Componenti principali CPU (Unità Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro Architettura di Von Neumann Dati e instruzioni in memoria (lettura
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
DettagliProdotto 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
DettagliApprossimazione di dati e funzioni
Approssimazione di dati e funzioni Richiamiamo i principali metodi di approssimazione polinomiale di un insieme di dati (x i, y i ), i = 0,..., n. Le ordinate y i possono essere i valori assunti nei nodi
DettagliLavagna Kanban HOW TO
Lavagna Kanban HOW TO Istruzioni per l uso Come la gestione visuale del processo su una lavagna può davvero migliorare il flusso di lavoro sui progetti. Visualizzare il flusso di lavoro: rappresentare
Dettagli3.4 Metodo di Branch and Bound
3.4 Metodo di Branch and Bound Consideriamo un generico problema di Ottimizzazione Discreta dove X è la regione ammissibile. (P ) z = max{c(x) : x X} Metodologia generale di enumerazione implicita (Land
DettagliOttimizziamo il flusso di lavoro aziendale ed abbattiamo i costi di gestione mediante l uso di tecnologie adeguate.
L infrastruttura software si compone di tutti quei sistemi e servizi informatici (spesso invisibili all utente finale) che permettono un corretto funzionamento della rete informatica aziendale. S u di
Dettagli1 Esercizi in pseudocodice
Questa dispensa propone esercizi sulla scrittura di algoritmi in un linguaggio semiformale, utile all acquisizione delle abilità essenziali per implementare algoritmi in qualsiasi linguaggio di programmazione.
DettagliProgetto del controllore
Parte 10, 1 - Problema di progetto Parte 10, 2 Progetto del controllore Il caso dei sistemi LTI a tempo continuo Determinare in modo che il sistema soddisfi alcuni requisiti - Principali requisiti e diagrammi
DettagliEsercitazione 5: Sistemi a risoluzione immediata.
Esercitazione 5: Sistemi a risoluzione immediata. Ipotesi: Supponiamo le matrici non singolari. Nota: Per verificare che si ha risolto correttamente il sistema lineare Ax = b basta calcolare la norma del
DettagliTECNOLOGIE DELL INFORMAZIONE E DELLA COMUNICAZIONE PER LE AZIENDE
TECNOLOGIE DELL INFORMAZIONE E DELLA COMUNICAZIONE PER LE AZIENDE Materiale di supporto alla didattica Tecnologie dell informazione e della comunicazione per le aziende CAPITOLO 5: La gestione delle informazioni
DettagliAlgoritmi e loro proprietà. Che cos è un algoritmo? Un esempio di algoritmo
1 Cos è l informatica? L informatica è la scienza della rappresentazione e dell elaborazione dell informazione Algoritmi e loro proprietà Proprietà formali degli Algoritmi Efficienza rispetto al tempo
DettagliSommario. Tabelle ad indirizzamento diretto e hash Funzioni Hash
Funzioni Hash Sommario Tabelle ad indirizzamento diretto e hash Funzioni Hash Requisiti Metodo della divisione Metodo della moltiplicazione Funzione Hash Universale La ricerca Talvolta si richiede che
DettagliI B+ Alberi. Sommario
I B+ Alberi R. Basili (Basi di Dati, a.a. 2002-3) Sommario Indici organizzati secondo B + -alberi Motivazioni ed Esempio Definizione Ricerca in un B + -albero Esempio Vantaggi Inserimento/Cancellazione
DettagliSistemi a processori multipli
Sistemi a processori multipli Sommario Classificazione e concetti di base Sistemi multi-processore Sistemi multi-computer (cluster) Sistemi distribuiti Obiettivo comune Risolvere problemi di dimensioni
DettagliModelli di interazione tra processi
Modelli di interazione tra processi Modelli di interazione Modello a memoria comune (ambiente globale) Modello a scambio di messaggi (ambiente locale, message passing) Modello a memoria comune Il sistema
DettagliIndirizzi IP, Classi, Subnetting, NAT
Indirizzi IP, Classi, Subnetting, NAT L'indirizzamento IP permette di identificare ogni host all'interno di una rete TCP/IP. Grazie all'utilizzo delle classi di indirizzi ed al subnetting è possibile organizzare
DettagliIntervallo di fiducia del coefficiente angolare e dell intercetta L intervallo di fiducia del coefficiente angolare (b 1 ) è dato da:
Analisi chimica strumentale Intervallo di fiducia del coefficiente angolare e dell intercetta L intervallo di fiducia del coefficiente angolare (b 1 ) è dato da: (31.4) dove s y è la varianza dei valori
DettagliLa gestione della memoria dinamica Heap
Laboratorio di Algoritmi e Strutture Dati La gestione della memoria dinamica Heap Prof. Luigi Lamberti 2005 Cenni sui Processi Un Programma è un insieme di Istruzioni memorizzato in un file con le costanti
DettagliLa gestione della memoria. Lezione 16 Sistemi Operativi
La gestione della memoria Lezione 16 Sistemi Operativi La memoria come risorsa La memoria centrale è una risorsa fondamentale di un sistema di calcolo L accesso a memoria centrale è una delle operazioni
DettagliCOME INSEGNARE I FONDAMENTALI DI GIOCO
COME INSEGNARE I FONDAMENTALI DI GIOCO Insegnare è in parte una scienza Un Allenatore deve essere un insegnante ed applicare i principi dell insegnamento Educazione motoria fattori che influenzano l apprendimento
DettagliSistemi Operativi. Lez. 6: Problemi classici della programmazione concorrente
Sistemi Operativi Lez. 6: Problemi classici della programmazione concorrente Produttore e consumatore Uno dei problemi classici della programmazione concorrente è il problema del produttore consumatore.
DettagliIl tema proposto può essere risolto seguendo due ipotesi:
Per la trattazione delle tecniche TDM, PM e Trasmissione dati si rimanda alle schede 41, 42, 43, 44, 45, 46, 47 e 48 del libro Le Telecomunicazioni del Prof. F. Dell Aquila. Il tema proposto può essere
DettagliUniversità degli Studi di Cassino e del Lazio Meridionale
di Cassino e del Lazio Meridionale Corso di Misura delle prestazioni Anno Accademico Francesco Tortorella Misura delle prestazioni E fondamentale definire una metrica corretta per misurare le prestazioni
DettagliProgrammazione multi threaded in Python. Linguaggi dinamici A.A. 2010/2011 1
Programmazione multi threaded in Python 1 Motivazione all'uso dei thread Pro Scrittura di applicazioni con molteplici eventi asincroni (GUI) Riduzione della latenza di servizio mediante l'uso di un pool
DettagliAlbero di Riscorsione
Albero di Riscorsione Albero di ricorsione Un albero di ricorsione è un modo di visualizzare cosa accade in un algoritmo divide et impera L etichetta della radice rappresenta il costo non ricorsivo della
DettagliSCD. Sistemi distribuiti: introduzione. Sistemi distribuiti: introduzione. Sistemi distribuiti: introduzione
Anno accademico 2004/5 Corso di Sistemi Concorrenti e Distribuiti Tullio Vardanega, tullio.vardanega@math.unipd.it SCD Definizione Un sistema distribuito è un insieme di elaboratori indipendenti capaci
DettagliEsercitazione di Calcolo Numerico 1 22 Aprile Determinare la fattorizzazione LU della matrice a 1 1 A = 3a 2 a 2a a a 2 A =
Esercitazione di Calcolo Numerico 22 Aprile 29. Determinare la fattorizzazione LU della matrice a A = 3a 2 a 2a a a 2 ed utilizzarla per calcolare il det(a). 2. Calcolare il determinante della matrice
DettagliStrategie di comunicazione in simulazioni distribuite basate su agenti: D-MASON. Carmine Spagnuolo
in simulazioni distribuite basate su agenti: D-MASON Carmine Spagnuolo Overview 1 2 3 4 Simulazione Multi-Agente Ambiti di utilizzo Simulazione Multi-Agente Distribuita La simulazione parallela/distribuita
Dettaglietà (anni) manutenzione (keuro) ricavato (keuro)
.6 Cammini minimi. Determinare i cammini minimi dal nodo 0 a tutti gli altri nodi del seguente grafo, mediante l algoritmo di Dijkstra e, se applicabile, anche mediante quello di Programmazione Dinamica.
DettagliStrutture di accesso ai dati: B + -tree
Strutture di accesso ai dati: B + -tree A L B E R T O B E L U S S I S E C O N D A P A R T E A N N O A C C A D E M I C O 2 0 0 9-2 0 0 Osservazione Quando l indice aumenta di dimensioni, non può risiedere
DettagliProgetto e sviluppo di un banco HIL per sistemi automobilistici di controllo attivo del rollio
Progetto e sviluppo di un banco HIL per sistemi automobilistici di controllo del rollio Relatori: Prof. Nicolò D Alfio Prof. Mauro Velardocchia Candidati: Alessandro Fassio Roberto Fassio PAROLE CHIAVE:
DettagliTransparent Networking e tecnologie di virtualizzazione della rete. M. Caberletti (INFN-CNAF) A. Brunengo (INFN Genova)
Transparent Networking e tecnologie di virtualizzazione della rete M. Caberletti (INFN-CNAF) A. Brunengo (INFN Genova) Sommario Networking nel Cloud Computing Virtualizzazione della rete Soluzioni di virtualizzazione
DettagliValutazione delle prestazioni
Valutazione delle prestazioni Cristina Silvano Università degli Studi di Milano Dipartimento di Scienze dell Informazione email: silvano@dsi.unimi.it Cristina Silvano pag 1 Valutazione delle prestazioni
DettagliSommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C...
Sommario PREFAZIONE...XI Aggiornamenti e novità... xi Lo scopo di questo libro... xii Diagramma delle dipendenze... xii La metodologia di insegnamento... xiii Panoramica sul libro... xvi Ringraziamenti...
DettagliPROGRAMMAZIONE STRUTTURATA
PROGRAMMAZIONE STRUTTURATA Programmazione strutturata 2 La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) Obiettivo:
DettagliESERCITAZIONI DI ECONOMIA POLITICA (programma di MICROECONOMIA) seconda parte
ESERCITAZIONI DI ECONOMIA POLITICA (programma di MICROECONOMIA) anno accademico 01 013 seconda parte Per domande, dubbi o chiarimenti scrivere a: gaetano.lisi@unicas.it 1 1. IMPORTANZA DEI COSTI (MEDI)
Dettagli