Università degli Studi di Roma Tor Vergata. Gestione Big Data. Manuel Fiorelli

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Università degli Studi di Roma Tor Vergata. Gestione Big Data. Manuel Fiorelli"

Transcript

1 Università degli Studi di Roma Tor Vergata Gestione Big Data Manuel Fiorelli

2 11/12/ Volume e Velocity I Big Data sono spesso caratterizzati in termini di 5 V (cui talvolta ne sono aggiunte altre): volume, variety, velocity, value, veracity. In particolare, la necessità di gestire grandi quantità di dati (volume) e di reagire prontamente al loro arrivo (velocity) pongono delle sfide alle architetture tradizionali di elaborazione dei dati.

3 11/12/ Quanto Grande? Jacobs (2009) ci fornisce una "meta-definizione" di Big Data incentrata sul concetto di Volume: "big data should be defined at any point in time as data whose size forces us to look beyond the tried-and-true methods that are prevalent at that time. Alcune osservazioni: Questa definizione ignora le altre V dei Big Data L'asticella di quanto un dataset debba essere grande per definirsi "big data" varia col tempo (aumentando col progresso tecnologico)

4 11/12/ Quanto Grande? Alcuni spunti tratti da Jacob (2009): transaction processing e data storage sono problemi largamente risolti è più facile inserire (get in) dati in un database relazionale che tirarli fuori (get out) le vere patologie dei Big Data sono quelle dell'analisi

5 11/12/ Quanto Grande? Oggigiorno si può considerare sufficientemente grande un dataset che non può essere caricato in un database relazionale ed essere elaborato con l'ausilio di pacchetti desktop di analisi/visualizzazione. [Jacob(2009)] Jacob (2009) ci fa l'esempio di un dataset di quasi 7 miliardi di record: Si può salvare su un comune hard disk Semplicemente leggendo il file, si può rispondere ad alcune semplici domande in modo rapido (mix, max, media), ma non rispondere a domande più complesse Con un po' di fatica si riesce a caricare su un RDBMS Le query SQL di analisi sono oltremodo lente

6 11/12/ No Limiti Software Un programma non dovrebbe avere limiti arbitrari circa la dimensione dei dati che può gestire In teoria, un programma dovrebbe essere in grado di sfruttare tutte le risorse hardware disponibili (cpu, memoria, disco) fino ad esaurirle

7 11/12/ Free Lunch Per molto tempo i programmi (ben scritti) hanno beneficiato gratuitamente dell'aumento delle prestazione dell'hardware, in particolar modo della CPU: Un processore col doppio della frequenza di clock dovrebbe essere in grado di eseguire lo stesso programma sequenziale due volte più velocemente

8 11/12/ Free Lunch is Over Ci sono però dei limiti (anche di natura fisica) sulle risorse hardware di una singola macchina. Diversi fattori (tra cui limiti nella dissipazione del calore) hanno arrestato la corsa ai GHz nello sviluppo dei processori. Siamo entrati nell'era dei processori multi-core. Tuttavia, un programma single-threaded può sfruttare un solo core. Un programma si può avvantaggiare dei processori multi-core solo se è multi-threaded: The free lunch is over (Sutter, 2004)

9 11/12/ Difficoltà della concorrenza (1/2) Lo sviluppo dei programmi concorrenti presenta dei problemi: È difficile (es. deadlock, livelock, starvation, race, etc ) Non tutti i programmi sono facilmente parallelizzabili La legge di Amdahl pone un limite allo speedup di un programma (cioè di quante volte si riduce il suo tempo di esecuzione) T 1 = T ser + T par T P T ser + T par = ft P f T 1 P dove fè la frazione seriale non parallelizzabile del lavoro totale S P = T 1 T P T 1 ft f T 1 P S lim P 1 f + 1 f P 1 f + 1 f P Un programma che spende l'1% del proprio tempo di esecuzione a svolgere lavoro non parallelizzabile non potrà avere uno speedup superiore a 100. = 1 f

10 11/12/ Difficoltà della concorrenza (2/2) La legge di Amdahl assume che il workload di un programma sia fisso e che l'obiettivo sia ridurre il tempo di esecuzione. La legge di Gustafson-Barsis, invece, si occupa della capacità di scalare a problemi di dimensione maggiore. Se la parte seriale è costante, oppure cresce più lentamente di quella parallelizzabile, allora lo speedup cresce insieme al numero di processori.

11 11/12/ Sistemi Distribuiti Le risorse disponibili su una sola macchina sono comunque limitate. Cosa fare quando non sono più sufficienti? Comprare un'altra macchina ed usarla insieme alla precedente: Siamo entrati nel mondo dei sistemi distribuiti

12 11/12/ Difficoltà dei Sistemi Distribuiti A prima vista potrebbero sembrare non molto diversi da programmi concorrenti (soprattutto quelli non sfruttano la memoria condivisa). In realtà, lo sviluppo di sistemi distribuiti è ancora più complesso: È difficile distinguere un nodo eccessivamente lento da uno fallito È difficile sapere se un comando è stato effettivamente eseguito È difficile fare in modo che i nodi trovino un consenso su qualcosa Etc.

13 11/12/ Sistemi per il calcolo distribuito Ciò di cui abbiamo bisogno è un computing model che ci permetta di esprimere facilmente la computazione di cui abbiamo bisogno, delegando i dettagli della sua esecuzione ad un framework che deve gestire le complessità dei sistemi distribuiti: Fault tolerance Data distribution Parallelization Load balancing

14 11/12/ Bounded Dataset vs Unbounded Dataset Bounded Dataset: Un insieme finito di dati disponibili tutti qui ed ora Unbounded Dataset: Dati in continuo arrivo Spesso associati alla parola "streaming"

15 11/12/ Unbounded Dataset 2 domini temporali Un unbounded dataset è caratterizzato da due domini temporali: Tempo dell'evento: istante in cui l'evento descritto da un dato è effettivamente occorso Tempo dell'elaborazione: istante in cui il dato entra all'interno del sistema di elaborazione Spesso c'è una differenza non costante tra i due, chiamata skew. Quando si è interessati a ragionare sul tempo dell'evento, lo skew può complicare la generazione di risultati corretti.

16 11/12/ Elaborazione di bounded dataset I bounded dataset sono generalmente elaborati con sistemi di tipo batch: MapReduce ne è un esempio

17 11/12/ Elaborazione di unbounded dataset Un dataset unbound può essere elaborato in vari modi: Batch Streaming

18 11/12/ Elaborazione di unbounded dataset - batch I dati sono bufferizzati (secondo una logica di windowing) creando una sorta di bounded dataset, che può essere elaborato con un sistema di tipo batch: Se l'event time è rilevante, allora abbiamo possibili problemi di incompletezza L'analisi di una sessione utente potrebbe essere suddivisa tra più batch (se la sessione dura più della finestra)

19 Elaborazione di unbounded dataset - streaming 11/12/ Ci sono diversi approcci di elaborazione streaming: Time-agnostic Approximation Windowing by processing time Windowing by event time

20 Elaborazione di unbounded dataset streaming time agnostic 11/12/ L'elaborazione di stream quando il tempo non interessa: Filtrare i dati Calcolare la join di due dataset. Un dato è bufferizzato finché non arriva un messaggio corrispondente. Tuttavia, se questo messaggio potesse non esistere, occorrerebbe inserire un timeout, quindi una nozione di tempo

21 Elaborazione di unbounded dataset streaming approximation 11/12/ Non entreremo nei dettagli. Ci sono degli algoritmi in grado di approssima certe quantità (es. numero di valori unici) in maniera "memoryless" È difficile inventarne uno nuovo Spesso alcune garanzie teoriche di accuratezza dipendono dal processing time (invece che dall'event time)

22 Elaborazione di unbounded dataset streaming widowing 11/12/ Posso suddividere i dati in ingresso in finestre (fisse, scorrevoli o sessioni) secondo il processing time o l'event time: Nel secondo caso è difficile giudicare la completezza di una finestra: Ci si può basare su delle euristiche Oppure, chiedere all'"esterno" quando i dati vanno materializzati Procedure per raffinare i dati nel tempo

23 11/12/ MapReduce Introdotto da Google per risolvere i propri problemi di Big Data (es. indicizzazione del Web) Ispirato alle primitive map e reduce del linguaggio di programmazione funzionale Lisp Utilizzando un approccio funzionale, può sfruttare la ri-esecuzione come meccanismo principale di fault tolerance

24 11/12/ MapReduce primitive Un job MapReduce prende in ingresso una collezione di coppie <K 1, V 1 > e produce una collezione di coppie <K 2, V 2 > L'utente deve specificare due operazioni: map: <K 1, V 1 > List<<K 2, V 2 >> per ciascuna coppia di input genera un numero arbitrario di coppie chiavevalore intermedie reduce: <K 2, List<V 2 >> List<V 2 > ricevendo in ingresso una chiave intermedia e l'insieme di valori per quella chiave (generati da diversi coppie di input), fonde i diversi valori, producendone in genere zero o uno

25 11/12/ MapReduce esempio (1/2) map(string key, String value): // key: document name // value: document contents for each word w in value: EmitIntermediate(w, "1"); reduce(string key, Iterator values): // key: a word // values: a list of counts int result = 0; for each v in values: result += ParseInt(v); Emit(AsString(result));

26 11/12/ MapReduce esempio (2/2) (the, 1) (cat, 1) (a, 1) (a, 1) (a, 2) the cat (the, 1) (cat, 1) the dog (cat, 2) (dog, 1) (cat, 1) a cat a dog (a, 1) (a, 1) (the, 1) (dog, 1) (dog, 1) (cat, 1) (the, 1) (dog, 1) (dog, 2) (the, 2)

27 11/12/ MapReduce map task Se map è una funzione pura, può essere eseguita in parallelo su porzioni differenti dell'input. Da ciò l'idea di suddividere l'input in tanti blocchi (di 64MB) ciascuno dei quali è un map task, che può essere assegnato (scheduled) su uno dei nodi worker. Solitamente il numero di map task viene indicato con M.

28 11/12/ MapReduce reduce task Per quanto riguarda la funzione reduce, lo spazio delle chiavi intermedie viene partizionato. Ciascuna partizione diventa un reduce task, che può essere assegnato (scheduled) su uno dei nodi worker. Se R è il numero di reduce task, una funzione di partizionamento può essere: hash(k 2 ) mod R

29 11/12/ MapReduce DFS (1) Il computing model MapReduce è abbinato ad un filesystem distribuito (DFS): Ciascun file di input è suddiviso in blocchi di dimensione fissa Ciascun blocco viene immagazzinato su un data node e la posizione dei diversi blocchi è immagazzinata su un name node (responsabile del namespace) Fault tolerance (rispetto ai guasti dei data node) ottenuta replicando ciascun blocco su un numero (stabilito) di data node (secondo varie policy)

30 11/12/ MapReduce DFS (2) Come si combinano MapReduce e DFS? Si cerca di assegnare a ciascun worker map task relativi a blocchi che sono replicati su quella macchina (località) Il woker responsabile di un map task scriverà le chiavi intermedie su tanti file nel proprio file system locale quanti sono i reduce task Ciascun reduce task chieve legge (tramite RPC) il contenuto del filesystem locale di ciascun mapper, e produce un file nel DFS (ordinato per chiave) con il risultato del proprio lavoro.

31 MapReduce esecuzione 11/12/

32 11/12/ MapReduce fault tolerance Se un worker fallisce: map task completati sono rieseguiti, perché il loro output non è più accessibile (si trova nel filesyste locale) reduce task completati non sono rieseguiti, perché il loro output è stato salvato nel DFS (quindi i blocchi si trovano, possibilmente replicati, su altri nodi)

33 11/12/ MapReduce alcune ottimizzazioni combiner: Effettuano una riduzione parziale localmente a ciascun map task. In molti casi, il combiner è banalmente il reducer. backup task: Talvolta un task può richiedere molto più tempo del previsto (per diversi ragioni): quando il processo di MapReduce è prossimo al completamento, il master avvia delle copie di backup dei task ancora running, per evitare che il processo sia rallentato da questi task che sono più lenti del normale.

34 11/12/ MapReduce algoritmi iterativi MapReduce non è particolarmente indicato per implementare algoritmi iterativi su grafi: Occorre gestire (fuori dal framework) una sequenza di job MapReduce (sconvenienza) La natura funzionale del modello computazione ci costringe spesso a copiare l'intero grafo da un'iterazione all'altra (inefficienza) Per ovviare a queste limitazioni, Google ha introdotto il modello Pregel.

35 11/12/ Pregel Pregel è un computing model idoneo allo sviluppo di algoritmi iterativi su grafi. Pregel è ispirato al Bulk Synchronous Parallel model. La computazione è una sequenza di superstep Durante il superstep S, per ogni vertice V viene eseguita (concettualmente in parallelo) una funziona decisa dall'utente che: Può leggere i messaggi che sono stati inviati al nodo durante il superstep S-1 Può inviare messaggi ad altri nodi (in genere, collegati tramite archi uscenti), che li riceveranno nel superstep S+1 Può modificare lo stato nel vertice Può modificare la topologia (aggiungere/rimuovere archi e nodi) Può votare di terminare la computazione La computazione termina quando tutti i vertici hanno votato così Un vertice che ha votato la terminazione, non viene più eseguito a meno che non riceva dei messaggi

36 11/12/ Pregel gestione della concorrenza Il modello di computazione adottato da Pregel: Si presta bene alla parallelizzazione, perché non c'è alcun meccanismo di rilevare l'ordine di esecuzione all'interno di un superstep e tutte le comunicazioni avvengo da un superstep al successivo Naturalmente privo di deadlock e data race

37 11/12/ Pregel calcolo del valore massimo Le linee tratteggiate rappresentano messaggi. I nodi ingrigiti hanno votato per la terminazione.

38 11/12/ Pregel single-source shortest path Si consideri un grafo diretto i cui archi hanno pesi strettamente positivi Si vuole calcolare la lunghezza del cammino minimo da un vertice n verso tutti gli altri vertici

39 11/12/ Pregel single-source shortest path Nello stato di ogni vertice c'è una variabile dove verrà inserita la lunghezza del cammino minimo da n Inizialmente queste variabili hanno tutte valore INF Al superstep 0: n setta la propria variabile a 0, ed invia un messaggio a tutti i nodi raggiungibili con archi uscenti un messaggio contenente il peso dell'arco Al superstep S+1 Ciascun vertice legge tutti i messaggi in ingresso, e calcola il valore minimo (che sarebbe una nuova stima della sua distanza da n). Se questo valore è inferiore a quello nella propria variabile: i) aggiorna la variabile, ii) invia ai nodi uscenti un messaggio, pari alla somma del valore e del peso dell'arco. In ogni caso, il vertice vota per terminare. Ad un certo punto, non ci sono più messaggi, tutti i vertici hanno votato per terminare, quindi la computazione termina. La variabile associata a ciascun nodo conterrà la lunghezza del cammino minimo da n (oppure INF se non può essere raggiunto).

40 11/12/ Pregel combiner Nell'esempio precedente, un vertice è interessato soltanto al minimo dei valori contenuti nei messaggi di cui è destinatario. È possibile ridurre l'invio (eventualmente tra nodi remoti) e la bufferizzazione dei messaggi tramite un combiner: una funzione (scelta) dall'utente per accorpare più messaggi: Nell'esempio precedente è sufficiente una funzione minimo

41 11/12/ Apache Hadoop L'implementazione di MapReduce fatta da Google è proprietaria, ed usata internamente dal motore di ricerca di Mountain View. Gli altri possono usare il "clone open-source" Apache Hadoop.

42 11/12/ Apache Hadoop 2 Nella versione 2, l'introduzione di YARN per la gestione del cluster, ha permesso ad Hadoop di svincolarsi da MapReduce (quale unico programming model)

43 11/12/ HDFS - Assunzioni Hadoop Distributed Filesystem (HDFS) è il filesystem distribuito alla base di Apache Hadoop. Principali assunzioni: Hardware failure: tolleranza ai guasti implementata al livello applicativo (principalmente attraverso la replicazione dei blocchi di dati) Streaming Data Access: orientato alle applicazioni batch, piuttosto che all'uso interattivo. Favorisce il throughput alla latency Large Data Sets: decine di milioni di file da GB a TB. Scalabilità a centinaia di nodi Simple Coherency Model: una volta che un file è stato chiuso, è solo possibile appendervi del contenuto oppure troncarlo "Moving Computation is Cheaper than Moving Data": HDFS fornisce delle interfacce che permettono alle applicazioni di spostarsi vicino a dove i dati sono effettivamente immagazzinati Portability across Heterogeneous Hardware and Software Platforms

44 11/12/ HDFS - Architettura

45 11/12/ HDFS - Cartoon

46 11/12/ YARN - Architettura

47 11/12/ HDFS Assunzioni Hadoop Distributed Filesystem (HDFS) è il filesystem distribuito alla base di Apache Hadoop. Principali assunzioni: Hardware failure: tolleranza ai guasti implementata al livello applicativo (principalmente attraverso la replicazione dei blocchi di dati) Streaming Data Access: orientato alle applicazioni batch, piuttosto che l'uso interattivo. Favorisce il throughput alla latency Large Data Sets: decine di milioni di file da GB a TB. Scalabilità a centinaia di nodi Simple Coherency Model: una volta che un file è stato chiuso, è solo possibile appendervi del contenuto oppure troncarlo "Moving Computation is Cheaper than Moving Data": HDFS fornisce delle interfacce che permettono alle applicazioni di spostarsi vicino a dove i dati sono effettivamente immagazzinati Portability across Heterogeneous Hardware and Software Platforms

48 11/12/ Hadoop Modailità d'uso Modalità locale (standalone) [default] Eseguito come un singolo processo Java Utile per il debugging Modalità pseudodistribuita Eseguito come un insieme di processi (NameNode, DataNode, Secondary NameNode, ResourceManager, NodeManager, WebAppProxy and Map Reduce Job History Server) su una singola macchina Modalità pienamente distribuita I vari processi elencati in precedenza sono distribuiti su più macchine

49 11/12/ Hadoop MapReduce InputFormat Un InputFormat describe la specifica di input per un job MapReduce. Il framework MapReduce si affida all'inputformat del job per: Validare la specifica del'input del job. Suddividere i file di in istanze di InputSplit, ciascuna delle quali è assegnato ad un Mapper invididuale. Fornire l'implementazione del RecordReader per estrarre dall'inputsplit i record che saranno elaborate dal Mapper.

50 11/12/ Hadoop MapReduce InputSplit InputSplit rappresenta i dati che devono essere elaborati da un certo Mapper. Tipicamente InputSplit presenta un visione dell'input orientata ai byte, ed è responsabilità del RecordReader elaborarla e presentare una visione a record. FileSplit è l'inputsplit predefinito. Esso setta mapreduce.map.input.file al path del file di input dello split logico.

51 11/12/ Hadoop MapReduce RecordReader Un RecordReader legge coppie <key, value> da un InputSplit. Tipicamente un RecordReader converte la visione dell'input orientata ai byte, fornita da un InputSplit, e presenta una visione a record alle implementazioni di Mapper per l'elaborazione. Il RecordReader assume pertanto la responsabilità di elaborare i confini dei record e presentare ai task chiavi e valori.

52 11/12/ Hadoop MapReduce OutputFormat OutputFormat descrive la specifica di output per un job MapReduce. Il framework MapReduce si affida all'outputformat del job per: Validare la specifica di output del job; per esempio, controllare la cartella di output non esista già. Fornire l'implementazione di RecordWriter usata per scrivere i file di output del job. I file di output solo immagazzinati in un FileSystem. TextOutputFormat è l'outputformat predefinito.

53 11/12/ Hadoop MapReduce Counter I counters rappresentano contatori globali, definiti dal framework MapReduce o dalle applicazioni. Ogni Counter può essere di qualunque tipo Enum. Contatori di un particolare Enum sono messi insieme in gruppi di tipo Counters.Group.

54 11/12/ Hadoop MapReduce SkipBadRecords Hadoop fornisce un'opzione dove un certo insieme di input record cattivi può essere saltato durante la fase di map. Le applicazioni possono controllare questa feature attraverso la classe SkipBadRecords.

55 11/12/ Hadoop MapReduce input/output multipli La classe MultipleInputs supporta job MapReduce con più input path aventi ciascuno un InputFormat e Mapper diversi. p/mapreduce/lib/input/multipleinputs.html La classe MultipleOutputs semplifica la scrittura su più file di output. p/mapreduce/lib/output/multipleoutputs.html

56 11/12/ Hadoop MapReduce lib Nel package org.apache.hadoop.mapreduce.lib si trova una libreria di classi di interesse.

57 Hadoop MapReduce scrivere soltanto i valori 11/12/ Per scrivere soltanto I valori si può usare NullWritable come tipo di output.

58 11/12/ Hadoop Modalità locale (default) Comandi per shell Unix. Per la PowerShell di Windows è sufficiente usare il backslash Esegue un JAR. $ mkdir input $ cp etc/hadoop/*.xml input $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples jar grep input output 'dfs[a-z.]+' $ cat output/*

59 11/12/ Apache Spark Lightening-fast unified analytics engine. Modello di computazione DAG, scheduler, ottimizzatore ed esecutore allo stato dell'arte. Evita scrittura dei risultati intermedi in computazioni iterative. Un'API di basso livello su cui sono implementate API di più alto livello per diversi scenari, con prestazioni comparabili o migliori a quelle ottenute con sistemi dedicati

60 11/12/ Apache Spark Apache Spark può essere eseguito su una singola macchina, oppure su un cluster, su EC2, YARN, Mesos o Kubernetes. Apache Spark può accedere a sorgenti di dati diverse, incluso HDFS, HBASE, Cassandra, Hive.

61 11/12/ Apache Spark 3 API Resilient Distributed Dataset (RDD) Una collezione immutabile di elementi partizionati tra i nodi del cluster su si può operare in parallelo attraverso trasformazioni e azioni DataFrame Una collezione distribuita di dati organizzati in colonne dotate di un nome elaborata con SparkSQL Dataset Una collezione distribuita di dati (fortemente tipizzata) che beneficia del motore di esecuzione ottimizzato di SparkSQL

62 11/12/ Apache Spark 3 API

63 11/12/ Apache Spark RDD Un RDD può essere costruito a partire da una qualunque sorgente supportata da Spark oppure parallelizzando una collezione nel programma. Il seguente snippet crea un RDD i cui elementi sono le righe del file. JavaRDD<String> distfile = sc.textfile("data.txt"); Nel caso di un file in HDFS il partizionamento è guidato dalla suddivisione in blocchi.

64 11/12/ Apache Spark RDD Due tipi di operazioni: Trasformazioni: creano un nuovo RDD da uno esistente Azioni: restituiscono un valore al driver Le trasformazioni sono lazy, in quanto eseguite solo quando un'azione richiede di restituire un valore al driver. Le trasformazioni sono ricalcolate ogni volta che eseguiamo le azioni, a meno che l'rdd non sia persistito: ciò è necessario per gli algoritmi iterativi.

65 11/12/ Apache Spark RDD JavaRDD<String> lines = sc.textfile("data.txt"); JavaPairRDD<String, Integer> pairs = lines.maptopair(s -> new Tuple2(s, 1)); JavaPairRDD<String, Integer> counts = pairs.reducebykey((a, b) -> a + b);

66 Apache Spark RDD - Trasformazioni 11/12/

67 Apache Spark RDD Azioni 11/12/

68 11/12/ Apache Spark RDD Altre cose Broadcast variable Accumulator variable Persistence

69 11/12/ Apache Spark DataFrame Dataset<Row> df = spark.read().json("examples/src/main/resources/people.json"); // Displays the content of the DataFrame to stdout df.show(); // // age name // // null Michael // 30 Andy // 19 Justin //

70 11/12/ Apache Spark DataFrame // Select everybody, but increment the age by 1 df.select(col("name"), col("age").plus(1)).show(); // // name (age + 1) // // Michael null // Andy 31 // Justin 20 //

71 Apache Spark Dataset Encoder<Person> personencoder = Encoders.bean(Person.class); Dataset<Person> javabeands = spark.createdataset( ); Collections.singletonList(person), personencoder javabeands.show(); // // age name // // 32 Andy // Gli RDD utilizzano la Serialization standard oppure Kryo; I dataset usano invece gli Encoder. La differenza è che questi ultimi usano un formato che permette a Spark di eseguire varie operazioni (filtering, hashing, sorting, ) senza dover deserializzare l'oggetto 11/12/

72 11/12/ Apache Spark Dataset Dataset<String> names = people.map((person p) -> p.name, Encoders.STRING)); // in Java 8

73 11/12/ Apache Spark Dataset vs RDD I Dataset tipizzati assomigliano molto agli RDD in termini di type safety ed utilizzo di funzioni lambda. Tuttavia, la maggiore struttura dei Dataset e dei DataFrame permette l'uso dell'ottimizzatore Catalyst: Applica diverse ottimizzazioni logiche (es. filter push down) Genera bytecode JVM ottimizzato per il piano fisico di esecuzioni, scegliendo tra diversi algoritmi (es. vari tipi di join)

74 11/12/ Apache Spark GraphX GraphX introduce il tipo Graph per rappresentare un multigrafo con proprietà associate sia ai vertici sia agli archi. class Graph[VD, ED] { val vertices: VertexRDD[VD] val edges: EdgeRDD[ED] } VertexRDD[VD] = RDD[(VertexId, VD)] EdgeRDD[ED] = RDD[Edge[ED]]

75 11/12/ Apache Spark GraphX GraphX definisce degli operati su grafi che utilizzano funzioni definite dall'utente e che producono nuovi grafi con proprietà e struttura cambiate. Supporta l'api Pregel per implementare algoritmi iterativi. Fornisce una libreria di algoritmi pronti.

76 11/12/ Apache UIMA-AS UIMA-AS (Asynchronous Scaleout) è un'estensione del framework Apache UIMA per l'esecuzione su un cluster di macchine. Utilizza un queue broker per mettere in comunicazione le varie parti del sistema.

77 11/12/ Apache UIMA-AS Diverse configurazioni di scaleout.

78 11/12/ Riferimenti (1/3) Dean J., & Ghemawat, S. (2004). MapReduce: Simplified Data Processing on Large Clusters. In Proceedings of OSDI 04: 6th Symposium on Operating Systems Design and Implementation (pp ). ACM Jacobs, A. (2009). The pathologies of big data. Queue, 7(6), 10. Malewicz, G., Austern, M. H., Bik, A. J., Dehnert, J. C., Horn, I., Leiser, N., & Czajkowski, G. (2010, June). Pregel: a system for large-scale graph processing. In Proceedings of the 2010 ACM SIGMOD International Conference on Management of data (pp ). ACM.

79 11/12/ Riferimenti (2/3) McCool, M., Robison, A., & Reinders, J. (2013). Amdahl's Law vs. Gustafson-Barsis' Law. Available at: Sutter, H. (2005). The free lunch is over: A fundamental turn toward concurrency in software. Dr. Dobb s journal, 30(3), Available at: Zaharia, M., Xin, R. S., Wendell, P., Das, T., Armbrust, M., Dave, A.,... & Ghodsi, A. (2016). Apache spark: a unified engine for big data processing. Communications of the ACM, 59(11),

80 11/12/ Riferimenti (3/3) Apache Hadoop: Apache Hadoop 2 is now GA!: Databricks Glossary: Introducing DataFrames in Apache Spark for Large Scale Data Science: The world beyond batch: Streaming 101: Getting Started: Apache UIMA Asynchronous Scaleout:

Università degli Studi di Roma Tor Vergata. Gestione Big Data. Manuel Fiorelli

Università degli Studi di Roma Tor Vergata. Gestione Big Data. Manuel Fiorelli Università degli Studi di Roma Tor Vergata Gestione Big Data Manuel Fiorelli fiorelli@info.uniroma2.it 07/12/2018 2 Volume e Velocity I Big Data sono spesso caratterizzati in termini di 5 V (cui talvolta

Dettagli

Tecnologie e metodologie di Big Data Analytics - Apache Spark

Tecnologie e metodologie di Big Data Analytics - Apache Spark Tecnologie e metodologie di Big Data Analytics - Apache Spark Simone Angelini Fondazione Ugo Bordoni sangelini@fub.it 2 Luglio 2019 Simone Angelini (Fondazione Ugo Bordoni) Tecnologie e metodologie di

Dettagli

Big Data: tecnologie, metodologie e applicazioni per l analisi dei dati massivi

Big Data: tecnologie, metodologie e applicazioni per l analisi dei dati massivi Big Data: tecnologie, metodologie e applicazioni per l analisi dei dati massivi Ministero Dello Sviluppo Economico Istituto Superiore delle Comunicazioni e delle Tecnologie dell Informazione Seminario

Dettagli

Sviluppo di sistemi scalabili con Apache Spark. Alessandro Natilla - 22/10/2016 1

Sviluppo di sistemi scalabili con Apache Spark. Alessandro Natilla - 22/10/2016 1 Sviluppo di sistemi scalabili con Apache Spark Alessandro Natilla - 22/10/2016 1 Outline Big Data Cosa è Apache Spark Storia di Spark Spark vs MapReduce Componenti di Apache Spark Foundations: RDD e operazioni

Dettagli

Memoria primaria o secondaria? DFS MapReduce Scheduling & Data flow. Map Reduce. Giambattista Amati. Università di Tor Vergata.

Memoria primaria o secondaria? DFS MapReduce Scheduling & Data flow. Map Reduce. Giambattista Amati. Università di Tor Vergata. Map Reduce, Roma Sommario 1 Memoria primaria o secondaria? 2 DFS 3 MapReduce 4 Scheduling & Data flow Alcuni numeri Jeffrey Dean, Stanford talk, November 10, 2010 Dati in-memoria o su disco? Tempi di lettura

Dettagli

Gestione di Big RDF Data

Gestione di Big RDF Data Università degli Studi di Roma Tor Vergata Gestione di Big RDF Data Manuel Fiorelli fiorelli@info.uniroma2.it 2 Distributed RDF store La taglia di un "big" RDF dataset può impedire di caricarlo e valutare

Dettagli

MapReduce. Progettazione del Software a.a. 2012/13. Università degli Studi di Milano Dept. of Computer Science. Matteo Camilli

MapReduce. Progettazione del Software a.a. 2012/13. Università degli Studi di Milano Dept. of Computer Science. Matteo Camilli Università degli Studi di Milano Dept. of Computer Science MapReduce Matteo Camilli matteo.camilli@unimi.it http://camilli.di.unimi.it Progettazione del Software a.a. 2012/13 1 Motivazioni Vogliamo processare

Dettagli

Sperimentazione del file-system distribuito HDFS in ambiente GRID. III Borsista Day, Roma, 06.12.2012

Sperimentazione del file-system distribuito HDFS in ambiente GRID. III Borsista Day, Roma, 06.12.2012 Sperimentazione del file-system distribuito HDFS in ambiente GRID Tutor: Domenico Diacono Outline Use cases Hadoop Distributed File System Test di funzionalità Sviluppo di politiche di replica dei dati

Dettagli

Gestione di Big RDF Data

Gestione di Big RDF Data Università degli Studi di Roma Tor Vergata Gestione di Big RDF Data Manuel Fiorelli fiorelli@info.uniroma2.it 11/12/2018 2 Distributed RDF store La taglia di un "big" RDF dataset può impedire di caricarlo

Dettagli

Elaborazione dati parallela con map/reduce. Roberto Congiu rcongiu@yahoo.com

Elaborazione dati parallela con map/reduce. Roberto Congiu rcongiu@yahoo.com Elaborazione dati parallela con map/reduce Roberto Congiu rcongiu@yahoo.com Indice delle slide Introduzione a Map/Reduce Descrizione del modello Implementazione Ottimizzazioni Introduzione Map/Reduce e

Dettagli

MapReduce: teoria e implementazione

MapReduce: teoria e implementazione MapReduce: teoria e implementazione 1 Genesi nasce nel 2004 [ MapReduce: simplified Data Processing on Large Clusters, Dean, Ghemawat. Google Inc.] nasce dall esigenza di eseguire problemi semplici su

Dettagli

CONFIGURAZIONI E TESTING DI HADOOP-FS PER L'ALTA AFFIDABILITÀ DEI DATI DI UN SITO MEDIO-PICCOLO

CONFIGURAZIONI E TESTING DI HADOOP-FS PER L'ALTA AFFIDABILITÀ DEI DATI DI UN SITO MEDIO-PICCOLO CONFIGURAZIONI E TESTING DI HADOOP-FS PER L'ALTA AFFIDABILITÀ DEI DATI DI UN SITO MEDIO-PICCOLO Giovanni Marzulli GARR-INFN Domenico Diacono INFN Giacinto Donvito IGI-INFN 1 Outline Use cases Hadoop Distributed

Dettagli

INDEXING: DISTRIBUITO O MAPREDUCE? Davide Tuccilli Algoritmi Avanzati A.A. 2011/2012

INDEXING: DISTRIBUITO O MAPREDUCE? Davide Tuccilli Algoritmi Avanzati A.A. 2011/2012 INDEXING: DISTRIBUITO O MAPREDUCE? Davide Tuccilli Algoritmi Avanzati A.A. 2011/2012 Introduzione Grandi moli di dati su cui effettuiamo ricerche quotidianamente Google indicizza per il motore di ricerca

Dettagli

DataBase NoSQL. Prof. Marco Pedroni Unversità degli Studi di Ferrara

DataBase NoSQL. Prof. Marco Pedroni Unversità degli Studi di Ferrara DataBase NoSQL Prof. Marco Pedroni Unversità degli Studi di Ferrara Definizione DB NoSQL = sistemi software di archiviazione, in cui la persistenza dei dati è caratterizzata dal fatto di non utilizzare

Dettagli

Modelli di programmazione parallela

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

Dettagli

2. Cenni di sistemi operativi

2. Cenni di sistemi operativi 2. Cenni di sistemi operativi Andrea Marongiu (andrea.marongiu@unimore.it) Paolo Valente Contiene slides dal corso «Sistemi Operativi» dei prof. Gherardi/Scandurra dell Università degli studi di Bergamo

Dettagli

Subsection 1. MapReduce

Subsection 1. MapReduce MapReduce Subsection 1 MapReduce MapReduce La programmazione distribuita è molto pesante Soluzione: MapReduce MapReduce viene incontro alle sfide della programmazione distribuita. Le 3 regole Archivia

Dettagli

Soluzioni distribuite per la BioInformatica nel Virtual Data 5 Aprile Center / 33

Soluzioni distribuite per la BioInformatica nel Virtual Data 5 Aprile Center / 33 Soluzioni distribuite per la BioInformatica nel Virtual Data Center Workshop GARR 2017 - Netvolution Giuseppe Cattaneo Dipartimento di Informatica Università di Salerno, I-84084, Fisciano (SA), Italy cattaneo@unisa.it

Dettagli

SISTEMI OPERATIVI THREAD. Giorgio Giacinto Sistemi Operativi

SISTEMI OPERATIVI THREAD. Giorgio Giacinto Sistemi Operativi SISTEMI OPERATIVI THREAD 2 Motivazioni» Un programma complesso può eseguire in modo concorrente più funzioni attraverso la creazione e gestione di processi figli attraverso il meccanismo dei thread» La

Dettagli

Architetture Applicative Altri Esempi

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

Dettagli

Indice generale. Introduzione...xiii. Gli autori...xvii. I revisori...xix

Indice generale. Introduzione...xiii. Gli autori...xvii. I revisori...xix Indice generale Introduzione...xiii Struttura del libro... xiii Cosa serve per questo libro...xiv Lo scopo del libro...xiv Convenzioni...xv Codice degli esempi...xv Gli autori...xvii I revisori...xix Capitolo

Dettagli

Architettura dei Sistemi Informatici

Architettura dei Sistemi Informatici Sistemi di Calcolo Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti Architettura insieme delle componenti del sistema, descrizione delle loro funzionalità e della loro interazione

Dettagli

Il sistema operativo

Il sistema operativo Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali Indice Architettura Gestione dei processi Gestione della memoria centrale Driver Gestione dei file 2 1 Il sistema operativo E uno

Dettagli

UML Introduzione a UML Linguaggio di Modellazione Unificato. Corso di Ingegneria del Software Anno Accademico 2012/13

UML Introduzione a UML Linguaggio di Modellazione Unificato. Corso di Ingegneria del Software Anno Accademico 2012/13 UML Introduzione a UML Linguaggio di Modellazione Unificato Corso di Ingegneria del Software Anno Accademico 2012/13 1 Che cosa è UML? UML (Unified Modeling Language) è un linguaggio grafico per: specificare

Dettagli

Introduzione ai thread

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

Dettagli

Francesco Sacchi. Embedded data structures. Firenze, 24 Settembre 2012

Francesco Sacchi. Embedded data structures. Firenze, 24 Settembre 2012 Francesco Sacchi Embedded data structures Firenze, 24 Settembre 2012 Embedded data structures Obbiettivi Presentare alcune strutture dati di utilizzo generico e la loro implementazione ottimizzata per

Dettagli

L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software:

L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software: Il Software L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software: un insieme di programmi che permettono di trasformare un insieme di circuiti

Dettagli

Il Sistema Operativo

Il Sistema Operativo Il Sistema Operativo Il sistema operativo Con il termine sistema operativo si intende l insieme di programmi e librerie che opera direttamente sulla macchina fisica mascherandone le caratteristiche specifiche

Dettagli

ANALISI E SPERIMENTAZIONE DELLA PIATTAFORMA CLOUD DATAFLOW

ANALISI E SPERIMENTAZIONE DELLA PIATTAFORMA CLOUD DATAFLOW ALMA MATER STUDIORUM UNIVERSITÀ DI BOLOGNA SCUOLA DI INGEGNERIA E ARCHITETTURA DIPARTIMENTO DI INFORMATICA SCIENZA E INGEGNERIA CORSO DI LAUREA IN INGEGNERIA INFORMATICA TESI DI LAUREA IN SISTEMI OPERATIVI

Dettagli

Elementi di Informatica A. A. 2016/2017

Elementi di Informatica A. A. 2016/2017 Elementi di Informatica A. A. 2016/2017 Ing. Nicola Amatucci Università degli studi di Napoli Federico II Scuola Politecnica e Delle Scienze di Base nicola.amatucci@unina.it Cos'è un Sistema Operativo?

Dettagli

Sistema di monitoraggio per datacenter distribuiti geograficamente basati su OpenStack

Sistema di monitoraggio per datacenter distribuiti geograficamente basati su OpenStack Sistema di monitoraggio per datacenter distribuiti geograficamente basati su OpenStack Tutor: Dott. Domenico Elia Tutor: Dott. Giacinto Donvito Indice Descrizione del progetto Confronto con l attività

Dettagli

Ingegneria del Software A.A. 2016/2017 Esame

Ingegneria del Software A.A. 2016/2017 Esame Ingegneria del Software A.A. 2016/2017 Esame 2017-07-13 Esercizio 1 (6 punti) Monster è uno dei principali siti sul mondo del lavoro al mondo. Al suo interno chiunque può ricercare tra le offerte di lavoro

Dettagli

BASI DI DATI DISTRIBUITE

BASI DI DATI DISTRIBUITE BASI DI DATI DISTRIBUITE Definizione 2 Un sistema distribuito è costituito da un insieme di nodi (o di siti) di elaborazione una rete dati che connette fra loro i nodi Obiettivo: far cooperare i nodi per

Dettagli

File: definizione. Il file è la più piccola unità logica manipolabie Un file è caratterizzato principalmente da:

File: definizione. Il file è la più piccola unità logica manipolabie Un file è caratterizzato principalmente da: File System File: definizione Il file è la più piccola unità logica manipolabie Un file è caratterizzato principalmente da: Dimensione Posizione Accessibilità (solo lettura, lettura e scrittura) Tipo (estensione)

Dettagli

Filippo Bergamasco ( DAIS - Università Ca Foscari di Venezia Anno accademico:

Filippo Bergamasco (   DAIS - Università Ca Foscari di Venezia Anno accademico: Filippo Bergamasco ( filippo.bergamasco@unive.it) http://www.dais.unive.it/~bergamasco/ DAIS - Università Ca Foscari di Venezia Anno accademico: 2017/2018 Storicamente, realizzare la parte server di un

Dettagli

Struttura dei Sistemi Operativi

Struttura dei Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1 Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione

Dettagli

Sistema operativo & file system 1

Sistema operativo & file system 1 Il software (sw) Software di sistema e file system Lezione 1b L esecuzione di programmi è lo scopo di un elaboratore I programmi sono algoritmi codificati in un particolare linguaggio di programmazione

Dettagli

Introduzione ai. Sistemi Distribuiti

Introduzione ai. Sistemi Distribuiti Introduzione ai Sistemi Distribuiti Definizione di Sistema Distribuito (1) Un sistema distribuito è: Una collezione di computer indipendenti che appaiono agli utente come un sistema singolo coerente. 1

Dettagli

Sistemi Operativi Da Unix a GNU/Linux (parte 3)

Sistemi Operativi Da Unix a GNU/Linux (parte 3) Sistemi Operativi Da Unix a GNU/Linux Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Crediti per queste slides al Prof. Tullio Vardanega Caratteristiche del File System 1 File visto da FS come sequenza

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 4 Giovedì 20-10-2016 Struttura e organizzazione software dei sistemi

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 23 Martedì 17-01-2017 Il file system Il file system si basa sulle astrazioni

Dettagli

Savitar: Analisi di dati in tempo reale di una partita di calcio. Sistemi e architetture per Big Data

Savitar: Analisi di dati in tempo reale di una partita di calcio. Sistemi e architetture per Big Data Savitar: Analisi di dati in tempo reale di una partita di calcio Sistemi e architetture per Big Data Outline Scopo del progetto e descrizione dataset. Scelta del framework. Descrizione delle query. Valutazione

Dettagli

Sistemi Operativi FILE SYSTEM : INTERFACCIA. D. Talia - UNICAL. Sistemi Operativi 8.1

Sistemi Operativi FILE SYSTEM : INTERFACCIA. D. Talia - UNICAL. Sistemi Operativi 8.1 FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File

Dettagli

IL SISTEMA OPERATIVO

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO (seconda parte) PROGRAMMI UTENTE INTERPRETE COMANDI FILE SYSTEM GESTIONE DELLE PERIFERICHE GESTIONE DELLA MEMORIA GESTIONE DEI PROCESSI (NUCLEO) HARDWARE La gestione delle periferiche

Dettagli

Sistemi Operativi (modulo di Informatica II) L interfaccia del file system

Sistemi Operativi (modulo di Informatica II) L interfaccia del file system Sistemi Operativi (modulo di Informatica II) L interfaccia del file system Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario Il concetto di file Metodi di accesso Struttura delle

Dettagli

Architettura di un calcolatore

Architettura di un calcolatore Architettura di un calcolatore Processore: CPU Componente elettronico costituito da minuscole componenti di silicio, chiamate CHIP. Esegue le istruzioni implementate nel SW, tramite una serie di operazioni

Dettagli

Progettazione ed implementazione di un sistema di calcolo distribuito ibrido multithread/multiprocesso per HPC: applicazione all imaging medico

Progettazione ed implementazione di un sistema di calcolo distribuito ibrido multithread/multiprocesso per HPC: applicazione all imaging medico Progettazione ed implementazione di un sistema di calcolo distribuito ibrido multithread/multiprocesso per HPC: applicazione all imaging medico Relatore: Chiar.mo Prof. Renato Campanini Correlatore: Dott.

Dettagli

Esame di INFORMATICA ARCHITETTURA DI VON NEUMANN. Lezione 4 ARCHITETTURA DI VON NEUMANN

Esame di INFORMATICA ARCHITETTURA DI VON NEUMANN. Lezione 4 ARCHITETTURA DI VON NEUMANN Università degli Studi di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA A.A. 2008/09 Lezione 4 ARCHITETTURA DI VON NEUMANN Anni 40 i dati e i programmi che descrivono come elaborare i dati possono

Dettagli

Corso di Calcolatori Elettronici I

Corso di Calcolatori Elettronici I Corso di Calcolatori Elettronici I Architettura dei Calcolatori Elettronici: primi cenni introduttivi Roberto Canonico Università degli Studi di Napoli Federico II A.A. 2017-2018 Roberto Canonico Corso

Dettagli

Le reti rete La telematica telematica tele matica Aspetti evolutivi delle reti Modello con mainframe terminali Definizione di rete di computer rete

Le reti rete La telematica telematica tele matica Aspetti evolutivi delle reti Modello con mainframe terminali Definizione di rete di computer rete Reti e comunicazione Le reti Con il termine rete si fa riferimento, in generale ai servizi che si ottengono dall integrazione tra tecnologie delle telecomunicazioni e le tecnologie dell informatica. La

Dettagli

Sistemi e Architetture per Big Data - A.A. 2017/18 Progetto 2: Analisi del dataset ACM DEBS Grand Challenge 2016 con Storm/Flink

Sistemi e Architetture per Big Data - A.A. 2017/18 Progetto 2: Analisi del dataset ACM DEBS Grand Challenge 2016 con Storm/Flink Sistemi e Architetture per Big Data - A.A. 2017/18 Progetto 2: Analisi del dataset ACM DEBS Grand Challenge 2016 con Storm/Flink Docenti: Valeria Cardellini, Matteo Nardelli Dipartimento di Ingegneria

Dettagli

Principi operativi dei computer. Capitolo 7 Fluency Conoscere e usare l informatica

Principi operativi dei computer. Capitolo 7 Fluency Conoscere e usare l informatica Principi operativi dei computer Capitolo 7 Fluency Conoscere e usare l informatica I soliti sospetti Processore Sistema operativo Software Istruzioni Ciclo macchina Memoria Hardware componente Com è fatto

Dettagli

Il calcolatore. Architettura di un calcolatore (Hardware)

Il calcolatore. Architettura di un calcolatore (Hardware) Il calcolatore Prima parlare della programmazione, e' bene fare una brevissima introduzione su come sono strutturati i calcolatori elettronici. I calcolatori elettronici sono stati progettati e costruiti

Dettagli

SQL Server Integration Services. SQL Server 2005: ETL - 1. Integration Services Project

SQL Server Integration Services. SQL Server 2005: ETL - 1. Integration Services Project Database and data mining group, SQL Server 2005 Integration Services SQL Server 2005: ETL - 1 Database and data mining group, Integration Services Project Permette di gestire tutti i processi di ETL Basato

Dettagli

Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017 Palermo 31 Luglio - 4 Agosto 2017

Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017 Palermo 31 Luglio - 4 Agosto 2017 Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017 Palermo 31 Luglio - 4 Agosto 2017 www.u4learn.it Alessandro Bruno Introduzione al calcolo parallelo Approcci per il calcolo parallelo Programmazione

Dettagli

Lezione n.19 22/05/2009 OVERLAY WEAVER Laura Ricci

Lezione n.19 22/05/2009 OVERLAY WEAVER   Laura Ricci Università degli Studi di Pisa Dipartimento di Informatica Lezione n.19 22/05/2009 OVERLAY WEAVER HTTP://OVERLAYWEAVER.SF.NET 1 Overlay: Una rete costruita 'sopra' un'altra rete Internet sopra la rete

Dettagli

1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione

1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione 1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione su un sistema con una sola CPU? 2. Qual è la differenza tra un interruzione e una trap? Si faccia qualche esempio. 1.

Dettagli

Architetture Client/Server. Un architettura è centralizzata quando i dati e le applicazioni (programmi) risiedono in un unico nodo elaborativo

Architetture Client/Server. Un architettura è centralizzata quando i dati e le applicazioni (programmi) risiedono in un unico nodo elaborativo Basi di Dati Architetture Client/Server D B M G Architettura centralizzata Un architettura è centralizzata quando i dati e le applicazioni (programmi) risiedono in un unico nodo elaborativo Tutta l intelligenza

Dettagli

Architettura hardware

Architettura hardware Architettura hardware la parte che si può prendere a calci Architettura dell elaboratore Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

Che cos e l Informatica. Informatica generale. Caratteristiche fondamentali degli algoritmi. Esempi di algoritmi. Introduzione

Che cos e l Informatica. Informatica generale. Caratteristiche fondamentali degli algoritmi. Esempi di algoritmi. Introduzione Che cos e l Informatica Scienza dell elaborazione dell informazione Informatica generale non si riduce all utilizzo di strumenti (e.g. linguaggi di programmazione e basi di dati); si occupa del trattamento

Dettagli

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 5 Martedì 25-10-2016 Definizione di processo Esiste una distinzione concettuale

Dettagli

Il Sistema Operativo Ripasso

Il Sistema Operativo Ripasso ISTITUTO TECNICO SECONDO BIENNIO GIORGIO PORCU www.thegiorgio.it Sommario Concetti di base Sistema Operativo Risorse Funzioni e Struttura Bootstrap, Kernel, Shell Gestione dei Processi Processo e PCB Algoritmi

Dettagli

Elenco sezioni libro di testo Ed. 5 Tra parentesi le corrispondenze per l'ed. 7.

Elenco sezioni libro di testo Ed. 5 Tra parentesi le corrispondenze per l'ed. 7. Elenco sezioni libro di testo Ed. 5 Tra parentesi le corrispondenze per l'ed. 7. Modulo 1 - Architettura del calcolatore Unità 1 - Architettura e funzionamento dei sistemi di elaborazione Lezione 1 - Macchina

Dettagli

SOFTWARE. Programmi e dati che indicano al computer come svolgere un determinato compito

SOFTWARE. Programmi e dati che indicano al computer come svolgere un determinato compito SOFTWARE MODULO 3 SOFTWARE Programmi e dati che indicano al computer come svolgere un determinato compito Programma: sequenza di istruzioni, scritte in un determinato linguaggio, con le quali si fa eseguire

Dettagli

Lab 1: Java Multithreading

Lab 1: Java Multithreading Dept. of Computer Science Lab 1: Java Multithreading Matteo Camilli matteo.camilli@unimi.it Laboratorio di Sistemi Operativi a.a. 2015/16 Università degli Studi di Bergamo 1 Outline Programmazione multithreading

Dettagli

Sistemi Operativi (modulo di Informatica II) L interfaccia del file system

Sistemi Operativi (modulo di Informatica II) L interfaccia del file system Sistemi Operativi (modulo di Informatica II) L interfaccia del file system Patrizia Scandurra Università degli Studi di Bergamo a.a. 2011-12 Sommario Il concetto di file Metodi di accesso Struttura delle

Dettagli

Corso di Programmazione Concorrente

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

Dettagli

Sistema Operativo (Software di base)

Sistema Operativo (Software di base) Il Software Il software del PC Il computer ha grandi potenzialità ma non può funzionare senza il software. Il software essenziale per fare funzionare il PC può essere diviso nelle seguenti componenti:

Dettagli

Il Sistema Operativo Concorrenza e Grafi di precedenza

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

Dettagli

Sistemi Operativi: Concetti Introduttivi

Sistemi Operativi: Concetti Introduttivi Sistemi Operativi: Concetti Introduttivi 1.1 Principali funzioni di un Sistema Operativo 1.2 Cenni Storici 1.3 Classificazione dei Sistemi Operativi 1.4 Struttura dei Sistemi Operativi 1.5 Processi e gestione

Dettagli

Corso di Informatica

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

Dettagli

La memoria cache. Informatica generale

La memoria cache. Informatica generale La memoria cache Nello schema di funzionamento di un calcolatore il processore continuamente preleva informazioni ed istruzioni dalla memoria centrale e scrive in essa informazioni La memoria centrale,

Dettagli

Esercitazione 6 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016

Esercitazione 6 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016 Esercitazione 6 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016 Tong Liu April 14, 2016 Elementi Fondamentali Rappresentazione n = V numero di vertici (nodi) m = E numero di archi Matrice di adiacenza:

Dettagli

Come funzionano i computer

Come funzionano i computer Fluency Come funzionano i computer Capitolo 6 Cosa sanno fare Esecuzione deterministica istruzioni per elaborare dati Devono ricevere una serie di istruzioni da seguire Cosa non sanno fare Non hanno immaginazione

Dettagli

Introduzione ai. Sistemi Distribuiti

Introduzione ai. Sistemi Distribuiti Introduzione ai Sistemi Distribuiti Definizione di Sistema Distribuito (1) Un sistema distribuito è: Una collezione di computer indipendenti che appaiono agli utenti come un sistema singolo coerente. Definizione

Dettagli

VERIFICA DI SISTEMI. 5 Domanda [1 punto] Calcolare la velocità di trasferimento dei seguenti hard disk:

VERIFICA DI SISTEMI. 5 Domanda [1 punto] Calcolare la velocità di trasferimento dei seguenti hard disk: VERIFICA DI SISTEMI 1 Domanda [2 punti] Illustra la funzione della CPU e degli eventuali elementi che la costituiscono, specificando quali sono i parametri che ne caratterizzano il funzionamento. Spiega

Dettagli

Criteri da tenere a mente

Criteri da tenere a mente 2 Alcune considerazioni sul progetto di soluzioni software Criteri da tenere a mente Lo stile di programmazione è importante leggibilità (commenti / nomi significativi di variabili / indentazioni /...)

Dettagli

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

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Funzionamento macchina di von Neumann clock Memoria Centrale: Tutta l informazione prima di essere

Dettagli

Esercitazione. programmazione MapReduce con Hadoop v1.2.1

Esercitazione. programmazione MapReduce con Hadoop v1.2.1 Esercitazione programmazione MapReduce con Hadoop v1.2.1 1 Prologo Cluster di VM accessibili tramite un gateway con reverse ssh passwordless ssh (Secure SHell) protocollo di rete per stabilire una connessione

Dettagli

Corso integrato di Sistemi di Elaborazione. Modulo I. Prof. Crescenzio Gallo.

Corso integrato di Sistemi di Elaborazione. Modulo I. Prof. Crescenzio Gallo. Corso integrato di Sistemi di Elaborazione Modulo I Prof. Crescenzio Gallo crescenzio.gallo@unifg.it Basi di dati: introduzione 2 Introduzione Gestione delle informazioni Basi di dati / DBMS Modello dei

Dettagli

Sistemi Web per il turismo - lezione 3 -

Sistemi 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

Dettagli

Componenti principali

Componenti principali Componenti e connessioni Capitolo 3 Componenti principali n CPU (Unità Centrale di Elaborazione) n Memoria n Sistemi di I/O n Connessioni tra loro Architettura di Von Neumann n Dati e instruzioni in memoria

Dettagli

Simulazione esame Laboratorio di Sistemi Operativi Cognome Nome Mat.

Simulazione esame Laboratorio di Sistemi Operativi Cognome Nome Mat. Il compito è costituito da domande chiuse, domande aperte ed esercizi. Non è consentito l uso di libri, manuali, appunti., etc. Tempo massimo 2 ore. Domande chiuse: ogni domanda corrisponde ad un punteggio

Dettagli

Sistemi distribuiti su larga scala

Sistemi distribuiti su larga scala Sistemi distribuiti su larga scala Sistemi Distribuiti Laurea magistrale in ingegneria informatica A.A. 2011-2012 Leonardo Querzoni Dove siamo arrivati Replicazione Attiva Replicazione Primary/Backup Atomic

Dettagli

UNIVERSITY OF CAGLIARI

UNIVERSITY OF CAGLIARI UNIVERSITY OF CAGLIARI DIEE - Department of Electrical and Electronic Engineering Infrastrutture ed Applicazioni Avanzate nell Internet Google App Engine PaaS 1 Google App Engine PaaS Google App Engine

Dettagli

Basi di Dati Architetture Client/Server

Basi di Dati Architetture Client/Server Basi di Dati Architetture Client/Server Architettura centralizzata Un architettura è centralizzata quando i dati e le applicazioni (programmi) risiedono in un unico nodo elaborativo Tutta l intelligenza

Dettagli

INFORMATICA. L informatica comprende:

INFORMATICA. L informatica comprende: Varie definizioni: INFORMATICA Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Definizione proposta: Scienza della rappresentazione e dell elaborazione dell informazione

Dettagli

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

Sistemi 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

Dettagli

LEZIONE BASI DI DATI I 22/10/2008 XML

LEZIONE BASI DI DATI I 22/10/2008 XML LEZIONE BASI DI DATI I 22/10/2008 XML Il linguaggio XML (Extended Markup Language) è uno standard per la strutturazione dei dati sul web. A differenza di html, che è utilizzato per formattare documenti

Dettagli

Calcolo numerico e programmazione Programmazione

Calcolo numerico e programmazione Programmazione Calcolo numerico e programmazione Programmazione Tullio Facchinetti 11 maggio 2012 14:05 http://robot.unipv.it/toolleeo La programmazione la programmazione è l insieme delle

Dettagli

RETI DI CALCOLATORI II

RETI DI CALCOLATORI II RETI DI CALCOLATORI II Facoltà di Ingegneria Università degli Studi di Udine Ing. DANIELE DE CANEVA a.a. 2009/2010 ARGOMENTI DELLA LEZIONE TEORIA DEL ROUTING ROUTING STATICO ROUTING DINAMICO o PROTOCOLLI

Dettagli

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande/ VERSIONE 1 1) In Python, se scrivo v = [ ] in un programma, vuol dire che a) v è un quadrato b) v è un insieme vuoto

Dettagli

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Lez. 5 La Programmazione. Prof. Salvatore CUOMO Lez. 5 La Programmazione Prof. Salvatore CUOMO 1 2 Programma di utilità: Bootstrap All accensione dell elaboratore (Bootsrap), parte l esecuzione del BIOS (Basic Input Output System), un programma residente

Dettagli

Introduzione D B M G

Introduzione D B M G Introduzione D B M G Introduzione alle basi di dati Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS D B M G 2 Gestione delle

Dettagli

Un altro vantaggio è la maggior fault-tolerance: l'errore in un nodo non pregiudica totalmente il funzionamento dell'applicazione.

Un altro vantaggio è la maggior fault-tolerance: l'errore in un nodo non pregiudica totalmente il funzionamento dell'applicazione. Sommario Vantaggi di Nosql... 1 Scalabilità orizzontale... 1 Scalabilità verticale... 1 Mongo db... 2 Open Source... 2 Caratteristiche principali... 2 NoSQL è l'acronimo di "Not only SQL" e viene usato

Dettagli