199 resultados para GPGPU, CUDA, OpenCL, Programmazione Parallela


Relevância:

10.00% 10.00%

Publicador:

Resumo:

"I computer del nuovo millennio saranno sempre più invisibili, o meglio embedded, incorporati agli oggetti, ai mobili, anche al nostro corpo. L'intelligenza elettronica sviluppata su silicio diventerà sempre più diffusa e ubiqua. Sarà come un'orchestra di oggetti interattivi, non invasivi e dalla presenza discreta, ovunque". [Mark Weiser, 1991] La visione dell'ubiquitous computing, prevista da Weiser, è ormai molto vicina alla realtà e anticipa una rivoluzione tecnologica nella quale l'elaborazione di dati ha assunto un ruolo sempre più dominante nella nostra vita quotidiana. La rivoluzione porta non solo a vedere l'elaborazione di dati come un'operazione che si può compiere attraverso un computer desktop, legato quindi ad una postazione fissa, ma soprattutto a considerare l'uso della tecnologia come qualcosa di necessario in ogni occasione, in ogni luogo e la diffusione della miniaturizzazione dei dispositivi elettronici e delle tecnologie di comunicazione wireless ha contribuito notevolmente alla realizzazione di questo scenario. La possibilità di avere a disposizione nei luoghi più impensabili sistemi elettronici di piccole dimensioni e autoalimentati ha contribuito allo sviluppo di nuove applicazioni, tra le quali troviamo le WSN (Wireless Sensor Network), ovvero reti formate da dispositivi in grado di monitorare qualsiasi grandezza naturale misurabile e inviare i dati verso sistemi in grado di elaborare e immagazzinare le informazioni raccolte. La novità introdotta dalle reti WSN è rappresentata dalla possibilità di effettuare monitoraggi con continuità delle più diverse grandezze fisiche, il che ha consentito a questa nuova tecnologia l'accesso ad un mercato che prevede una vastità di scenari indefinita. Osservazioni estese sia nello spazio che nel tempo possono essere inoltre utili per poter ricavare informazioni sull'andamento di fenomeni naturali che, se monitorati saltuariamente, non fornirebbero alcuna informazione interessante. Tra i casi d'interesse più rilevanti si possono evidenziare: - segnalazione di emergenze (terremoti, inondazioni) - monitoraggio di parametri difficilmente accessibili all'uomo (frane, ghiacciai) - smart cities (analisi e controllo di illuminazione pubblica, traffico, inquinamento, contatori gas e luce) - monitoraggio di parametri utili al miglioramento di attività produttive (agricoltura intelligente, monitoraggio consumi) - sorveglianza (controllo accessi ad aree riservate, rilevamento della presenza dell'uomo) Il vantaggio rappresentato da un basso consumo energetico, e di conseguenza un tempo di vita della rete elevato, ha come controparte il non elevato range di copertura wireless, valutato nell'ordine delle decine di metri secondo lo standard IEEE 802.15.4. Il monitoraggio di un'area di grandi dimensioni richiede quindi la disposizione di nodi intermedi aventi le funzioni di un router, il cui compito sarà quello di inoltrare i dati ricevuti verso il coordinatore della rete. Il tempo di vita dei nodi intermedi è di notevole importanza perché, in caso di spegnimento, parte delle informazioni raccolte non raggiungerebbero il coordinatore e quindi non verrebbero immagazzinate e analizzate dall'uomo o dai sistemi di controllo. Lo scopo di questa trattazione è la creazione di un protocollo di comunicazione che preveda meccanismi di routing orientati alla ricerca del massimo tempo di vita della rete. Nel capitolo 1 vengono introdotte le WSN descrivendo caratteristiche generali, applicazioni, struttura della rete e architettura hardware richiesta. Nel capitolo 2 viene illustrato l'ambiente di sviluppo del progetto, analizzando le piattaforme hardware, firmware e software sulle quali ci appoggeremo per realizzare il progetto. Verranno descritti anche alcuni strumenti utili per effettuare la programmazione e il debug della rete. Nel capitolo 3 si descrivono i requisiti di progetto e si realizza una mappatura dell'architettura finale. Nel capitolo 4 si sviluppa il protocollo di routing, analizzando i consumi e motivando le scelte progettuali. Nel capitolo 5 vengono presentate le interfacce grafiche utilizzate utili per l'analisi dei dati. Nel capitolo 6 vengono esposti i risultati sperimentali dell'implementazione fissando come obiettivo il massimo lifetime della rete.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

La presente tesi è dedicata al riuso nel software. Eccettuata un'introduzione organica al tema, l'analisi è a livello dei meccanismi offerti dai linguaggi di programmazione e delle tecniche di sviluppo, con speciale attenzione rivolta al tema della concorrenza. Il primo capitolo fornisce un quadro generale nel quale il riuso del software è descritto, assieme alle ragioni che ne determinano l'importanza e ai punti cruciali relativi alla sua attuazione. Si individuano diversi livelli di riuso sulla base dell'astrazione e degli artefatti in gioco, e si sottolinea come i linguaggi contribuiscano alla riusabilità e alla realizzazione del riuso. In seguito, viene esplorato, con esempi di codice, il supporto al riuso da parte del paradigma ad oggetti, in termini di incapsulamento, ereditarietà, polimorfismo, composizione. La trattazione prosegue analizzando differenti feature – tipizzazione, interfacce, mixin, generics – offerte da vari linguaggi di programmazione, mostrando come esse intervengano sulla riusabilità dei componenti software. A chiudere il capitolo, qualche parola contestualizzata sull'inversione di controllo, la programmazione orientata agli aspetti, e il meccanismo della delega. Il secondo capitolo abbraccia il tema della concorrenza. Dopo aver introdotto l'argomento, vengono approfonditi alcuni significativi modelli di concorrenza: programmazione multi-threaded, task nel linguaggio Ada, SCOOP, modello ad Attori. Essi vengono descritti negli elementi fondamentali e ne vengono evidenziati gli aspetti cruciali in termini di contributo al riuso, con esempi di codice. Relativamente al modello ad Attori, viene presentata la sua implementazione in Scala/Akka come caso studio. Infine, viene esaminato il problema dell'inheritance anomaly, sulla base di esempi e delle tre classi principali di anomalia, e si analizza la suscettibilità del supporto di concorrenza di Scala/Akka a riscontrare tali problemi. Inoltre, in questo capitolo si nota come alcuni aspetti relativi al binomio riuso/concorrenza, tra cui il significato profondo dello stesso, non siano ancora stati adeguatamente affrontati dalla comunità informatica. Il terzo e ultimo capitolo esordisce con una panoramica dell'agent-oriented programming, prendendo il linguaggio simpAL come riferimento. In seguito, si prova ad estendere al caso degli agenti la nozione di riuso approfondita nei capitoli precedenti.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Il Web nel corso della sua esistenza ha subito un mutamento dovuto in parte dalle richieste del mercato, ma soprattutto dall’evoluzione e la nascita costante delle numerose tecnologie coinvolte in esso. Si è passati da un’iniziale semplice diffusione di contenuti statici, ad una successiva collezione di siti web, dapprima con limitate presenze di dinamicità e interattività (a causa dei limiti tecnologici), ma successivamente poi evoluti alle attuali applicazioni web moderne che hanno colmato il gap con le applicazioni desktop, sia a livello tecnologico, che a livello di diffusione effettiva sul mercato. Tali applicazioni web moderne possono presentare un grado di complessità paragonabile in tutto e per tutto ai sistemi software desktop tradizionali; le tecnologie web hanno subito nel tempo un evoluzione legata ai cambiamenti del web stesso e tra le tecnologie più diffuse troviamo JavaScript, un linguaggio di scripting nato per dare dinamicità ai siti web che si ritrova tutt’ora ad essere utilizzato come linguaggio di programmazione di applicazioni altamente strutturate. Nel corso degli anni la comunità di sviluppo che ruota intorno a JavaScript ha prodotto numerose librerie al supporto del linguaggio dotando così gli sviluppatori di un linguaggio completo in grado di far realizzare applicazioni web avanzate. Le recenti evoluzioni dei motori javascript presenti nei browser hanno inoltre incrementato le prestazioni del linguaggio consacrandone la sua leadership nei confronti dei linguaggi concorrenti. Negli ultimi anni a causa della crescita della complessità delle applicazioni web, javascript è stato messo molto in discussione in quanto come linguaggio non offre le classiche astrazioni consolidate nel tempo per la programmazione altamente strutturata; per questo motivo sono nati linguaggi orientati alla programmazione ad oggetti per il web che si pongono come obiettivo la risoluzione di questo problema: tra questi si trovano linguaggi che hanno l’ambizione di soppiantare JavaScript come ad esempio Dart creato da Google, oppure altri che invece sfruttano JavaScript come linguaggio base al quale aggiungono le caratteristiche mancanti e, mediante il processo di compilazione, producono codice JavaScript puro compatibile con i motori JavaScript presenti nei browser. JavaScript storicamente fu introdotto come linguaggio sia per la programmazione client-side, che per la controparte server-side, ma per vari motivi (la forte concorrenza, basse performance, etc.) ebbe successo solo come linguaggio per la programmazione client; le recenti evoluzioni del linguaggio lo hanno però riportato in auge anche per la programmazione server-side, soprattutto per i miglioramenti delle performance, ma anche per la sua naturale predisposizione per la programmazione event-driven, paradigma alternativo al multi-threading per la programmazione concorrente. Un’applicazione web di elevata complessità al giorno d’oggi può quindi essere interamente sviluppata utilizzando il linguaggio JavaScript, acquisendone sia i suoi vantaggi che gli svantaggi; le nuove tecnologie introdotte ambiscono quindi a diventare la soluzione per i problemi presenti in JavaScript e di conseguenza si propongono come potenziali nuovi linguaggi completi per la programmazione web del futuro, anticipando anche le prossime evoluzioni delle tecnologie già esistenti preannunciate dagli enti standard della programmazione web, il W3C ed ECMAScript. In questa tesi saranno affrontate le tematiche appena introdotte confrontando tra loro le tecnologie in gioco con lo scopo di ottenere un’ampia panoramica delle soluzioni che uno sviluppatore web dovrà prendere in considerazione per realizzare un sistema di importanti dimensioni; in particolare sarà approfondito il linguaggio TypeScript proposto da Microsoft, il quale è nato in successione a Dart apparentemente con lo stesso scopo, ma grazie alla compatibilità con JavaScript e soprattutto con il vasto mondo di librerie legate ad esso nate in questi ultimi anni, si presenta nel mercato come tecnologia facile da apprendere per tutti gli sviluppatori che già da tempo hanno sviluppato abilità nella programmazione JavaScript.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

L'obbiettivo di questa tesi è dimostrare che è attualmente possibile realizzare un sistema di aggregazione dati in grado di gestire un numero elevato di connessioni contemporanee con relativamente poco sforzo per lo sviluppatore grazie all'utilizzo di Node JS, piattaforma che utilizza internamente una gestione a eventi a livello di linguaggio di programmazione.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Negli ultimi anni il mondo del mobile computing ha avuto una vera e propria crescita esponenziale grazie soprattutto all'entrata in scena dello smartphone. In realtà, per essere più precisi, è bene bene sottolineare che gli smartphone esistevano già da tempo ma il loro utilizzo era in particolar modo indirizzato ai professionisti per il quale era, ma continua ad essere tutt'oggi, un valido supporto in campo lavorativo, basti pensare all'importanza della comunicazione via e-mail e non solo. Seppur comunque fossero già presenti da tempo, i primi smartphone non godevano di certo di un touch-screen sofisticato come quello odierno nè in essi erano presenti funzionalità tipiche dei dispositivi che troviamo ad oggi sul mercato. Una svolta decisiva è stata segnata dall'introduzione dell'iPhone e successivamente dell'AppStore, grazie a questi la programmazione per i dispositivi mobile ha preso sempre più piede diventando un vero e proprio business. In un secondo momento alla programmazione nativa si affiancarono le tecnologie web. Questo mio lavoro di tesi si pone l'obiettivo di studiare in primis la struttura, caratteristiche e peculiarità del sistema operativo iOS e analizzare il framework PhoneGap al fine di riuscire a confrontarne i vari aspetti fondamentali anche attraverso lo sviluppo di piccole applicazioni. Così facendo, quindi scendendo nei dettagli di quelle che possono essere le differenze rilevanti, mi pongo l'obiettivo di valutarne relativi pro e contro al fine di fare una scelta del tutto personale tra iOS e PhoneGap.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Il lavoro è costituito da una prima parte nella quale sono analizzate in dettaglio le caratteristiche fisiche e tecnologiche degli impianti a vapore, a gas e combinati. Segue quindi una seconda parte nella quale è introdotto l'ambiente di programmazione Matlab, sono spiegate alcune funzionalità del programma e infine vengono analizzate alcune toolboxes rilevanti per la parte conclusiva del lavoro, che riguarda l'analisi numerica dei cicli sopra menzionati volta all'ottenimento di interfacce user-friendly che consentono l'approccio analitico completo a questo tipo di sistemi anche da parte di utenti inesperti di programmazione.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

La diffusione nelle strutture sanitarie di un numero sempre crescente di apparecchiature biomediche e di tecnologie "avanzate" per la diagnosi e la terapia ha radicalmente modificato l'approccio alla cura della salute. Questo processo di "tecnologizzazione" rende evidente la necessità di fare ricorso a competenze specifiche e a strutture organizzative adeguate in modo da garantire un’efficiente e corretta gestione delle tecnologie, sia dal punto di vista tecnico che economico, bisogni a cui da circa 40 anni risponde l’Ingegneria Clinica e i Servizi di Ingegneria Clinica. Nei paesi industrializzati la crescita economica ha permesso di finanziare nuovi investimenti e strutture all'avanguardia dal punto di vista tecnologico, ma d'altra parte il pesante ingresso della tecnologia negli ospedali ha contribuito, insieme ad altri fattori (aumento del tenore di vita, crescente urbanizzazione, invecchiamento della popolazione, ...) a rendere incontrollabile e difficilmente gestibile la spesa sanitaria. A fronte quindi di una distribuzione sempre più vasta ed ormai irrinunciabile di tecnologie biomediche, la struttura sanitaria deve essere in grado di scegliere le appropriate tecnologie e di impiegare correttamente la strumentazione, di garantire la sicurezza dei pazienti e degli operatori, nonché la qualità del servizio erogato e di ridurre e ottimizzare i costi di acquisto e di gestione. Davanti alla necessità di garantire gli stessi servizi con meno risorse è indispensabile utilizzare l’approccio dell’Health Technology Assessment (HTA), ossia la Valutazione delle Tecnologie Sanitarie, sia nell’introduzione di innovazioni sia nella scelta di disinvestire su servizi inappropriati od obsoleti che non aggiungono valore alla tutela della salute dei cittadini. Il seguente elaborato, dopo la definizione e classificazione delle tecnologie sanitarie, un’analisi del mercato di tale settore e delle spesa sanitaria sostenuta dai vari paesi Ocse, pone l’attenzione ai Servizi di Ingegneria Clinica e il ruolo chiave che essi hanno nel garantire efficienza ed economicità grazie anche all’ausilio dei profili HTA per la programmazione degli acquisti in sanità.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

L'elaborato ha come scopo l'analisi delle tecniche di Text Mining e la loro applicazione all'interno di processi per l'auto-organizzazione della conoscenza. La prima parte della tesi si concentra sul concetto del Text Mining. Viene fornita la sua definizione, i possibili campi di utilizzo, il processo di sviluppo che lo riguarda e vengono esposte le diverse tecniche di Text Mining. Si analizzano poi alcuni tools per il Text Mining e infine vengono presentati alcuni esempi pratici di utilizzo. Il macro-argomento che viene esposto successivamente riguarda TuCSoN, una infrastruttura per la coordinazione di processi: autonomi, distribuiti e intelligenti, come ad esempio gli agenti. Si descrivono innanzi tutto le entità sulle quali il modello si basa, vengono introdotte le metodologie di interazione fra di essi e successivamente, gli strumenti di programmazione che l'infrastruttura mette a disposizione. La tesi, in un secondo momento, presenta MoK, un modello di coordinazione basato sulla biochimica studiato per l'auto-organizzazione della conoscenza. Anche per MoK, come per TuCSoN, vengono introdotte le entità alla base del modello. Avvalendosi MoK dell'infrastruttura TuCSoN, viene mostrato come le entità del primo vengano mappate su quelle del secondo. A conclusione dell'argomento viene mostrata un'applicazione per l'auto-organizzazione di news che si avvale del modello. Il capitolo successivo si occupa di analizzare i possibili utilizzi delle tecniche di Text Mining all'interno di infrastrutture per l'auto-organizzazione, come MoK. Nell'elaborato vengono poi presentati gli esperimenti effettuati sfruttando tecniche di Text Mining. Tutti gli esperimenti svolti hanno come scopo la clusterizzazione di articoli scientifici in base al loro contenuto, vengono quindi analizzati i risultati ottenuti. L'elaborato di tesi si conclude mettendo in evidenza alcune considerazioni finali su quanto svolto.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Lo scopo di questa dissertazione è di identificare le tecnologie più appropriate per la creazione di editor parametrici per documenti strutturati e di descrivere LIME, un editor di markup parametrico e indipendente dal linguaggio. La recente evoluzione delle tecnologie XML ha portato ad un utilizzo sempre più consistente di documenti strutturati. Oggigiorno, questi vengono utilizzati sia per scopi tipografici sia per l’interscambio di dati nella rete internet. Per questa ragione, sempre più persone hanno a che fare con documenti XML nel lavoro quotidiano. Alcuni dialetti XML, tuttavia, non sono semplici da comprendere e da utilizzare e, per questo motivo, si rendono necessari editor XML che possano guidare gli autori di documenti XML durante tutto il processo di markup. In alcuni contesti, specialmente in quello dell’informatica giuridica, sono stati introdotti i markup editor, software WYSIWYG che assistono l’utente nella creazione di documenti corretti. Questi editor possono essere utilizzati anche da persone che non conoscono a fondo XML ma, d’altra parte, sono solitamente basati su uno specifico linguaggio XML. Questo significa che sono necessarie molte risorse, in termini di programmazione, per poterli adattare ad altri linguaggi XML o ad altri contesti. Basando l’architettura degli editor di markup su parametri, è possibile progettare e sviluppare software che non dipendono da uno specifico linguaggio XML e che possono essere personalizzati al fine di utilizzarli in svariati contesti.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Questa tesi consiste nello sviluppo di codice per un applicativo esistente. Tale applicativo si occupa di simulazione di protocolli di rete su varie topologie di rete. La parte di cui si occupa questa tesi è la fase di analisi dei file di traccia generati. Tale fase è una delle tre fasi dell'applicativo. I file di traccia contengono informazioni che permettono di stimare due grandezze, copertura e ritardo. Per copertura si intende una media fra tutte le coperture. Ogni copertura sarà relativa ad uno specifico nodo della rete. Per copertura di uno specifico nodo della rete si intende la parte di messaggi arrivati a quel nodo relativamente a tutti i messaggi generati all'interno della rete. Per ritardo si intende la media del numero di salti che avvengono per arrivare ai vari nodi che compongono la rete. I valori calcolati, mediante le informazioni contenute nei trace file, vengono poi memorizzati su dei file. Oltre al calcolo di queste specifiche grandezze, la tesi include anche una possibile soluzione relativa al parallelismo dei processi. Tale soluzione mira ad avere un numero, stabilito in base alla memoria principale libera, di processi che vengono eseguiti in maniera parallela.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Descrizione di un software di simulazione, realizzato attraverso la programmazione in Labview, che estrapola i dati immagazzinati nei file RINEX di navigazione e di osservazione della missione GRACE e li invia con le stesse modalità con cui lo farebbe il ricevitore OEM615 della NovAtel. L'obiettivo è creare un software che permetta di testare, nell'ambito della missione ESEO dell'ESA, il ricevitore GPS che farà parte del payoload della stessa missione, costituita da un micro-satellite che orbiterà in orbita bassa LEO, e che sarà composto da un ricevitore OEM615, da un'antenna GPS e da un processore di navigazione.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Guida per la programmazione e l'utilizzo di una scheda per l'acquisizione di dati relativi ai gas presenti nell'atmosfera mediante l'utilizzo di sensori.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Questa tesi è strutturata in due parti per un totale di quattro capitoli. La prima parte, formata dai primi due, analizza il sistema operativo iOS e il linguaggio di programmazione Objective-C. La seconda parte, formata dai restanti, è incentrata sullo sviluppo di un framework per iOS che permetta ad un'app di interagire con la piattaforma di commercio elettronico Prestashop. In particolare, verranno studiate l’architettura del framework ed i suoi elementi, ed infine analizzate le sue performance a tempo di esecuzione.