199 resultados para GPGPU, CUDA, OpenCL, Programmazione Parallela
Resumo:
L'informatica è al giorno d'oggi al centro di un incredibile sviluppo e tumulto innovativo; è la scienza che coniuga ogni sviluppo tecnologico, il quale inevitabilmente, d'ora in poi, verrà in qualche modo condizionato dalle innovazioni di tale disciplina. Fra gli innumerevoli nuovi trend che si sono affacciati prepotentemente negli ultimi anni sul panorama informatico, il paradigma per la programmazione ad agenti è uno dei più interessanti, in accordo con i recenti e prossimi sviluppi della tecnologia in generale. Questa tesi tratterà tale argomento partendo da un punto di vista generico ed introduttivo volutamente esaustivo, per poi concentrarsi su una specifica tecnologia implementativa, ovvero il linguaggio Jason, mostrandola infine nella pratica con la presentazione di un'applicazione nel capitolo tre.
Resumo:
La tesi tratta il processo di analisi, progettazione e implementazione dell'applicazione del corso di laurea di Programmazione, in ambiente iOS. L'applicazione fornirà i servizi, ora offerti dal portale del corso di laurea, ottimizzati per dispositivi mobili.
Resumo:
I processori multi core stanno cambiando lo sviluppo dei software in tutti i settori dell'informatica poiché offrono prestazioni più elevate con un consumo energetico più basso. Abbiamo quindi la possibilità di una computazione realmente parallela, distribuita tra i diversi core del processore. Uno standard per la programmazione multithreading è sicuramente OpenMP, il quale si propone di fornire direttive semplici e chiare per lo sviluppo di programmi su sistemi a memoria condivisa, fornendo un controllo completo sulla parallelizzazione. Nella fisica moderna spesso vengono utilizzate simulazioni al computer di sistemi con alti livelli di complessità computazionale. Si ottimizzerà un software che utilizza l'algoritmo DMRG (Density Matrix Renormalization Group), un algoritmo che consente di studiare reticoli lineari di sistemi a molti corpi, al fine di renderlo più veloce nei calcoli cercando di sfruttare al meglio i core del processore. Per fare ciò verrà utilizzata l'API OpenMP, che ci permetterà in modo poco invasivo di parallelizzare l'algoritmo rendendo così più veloce l'esecuzione su architetture multi core.
Resumo:
La tesi si occupa della programmazione lineare in particolare nel caso in cui le variabili coinvolte o alcune di esse sono obbligate ad assumere valori interi.
Resumo:
In questa tesi si descrive il lavoro svolto presso l’istituto INFN-CNAF, che consiste nello sviluppo di un’applicazione parallela e del suo utilizzo su di un’architettura a basso consumo, allo scopo di valutare il comportamento della stessa, confrontandolo a quello di architetture ad alta potenza di calcolo. L’architettura a basso consumo utilizzata `e un system on chip mutuato dal mondo mobile e embedded contenente una cpu ARM quad core e una GPU NVIDIA, mentre l’architettura ad alta potenza di calcolo `e un sistema x86 64 con una GPU NVIDIA di classe server. L’applicazione `e stata sviluppata in C++ in due differenti versioni: la prima utilizzando l’estensione OpenMP e la seconda utilizzando l’estensione CUDA. Queste due versioni hanno permesso di valutare il comportamento dell’architettura a basso consumo sotto diversi punti di vista, utilizzando nelle differenti versioni dell’applicazione la CPU o la GPU come unita` principale di elaborazione.
Resumo:
La tesi, che si colloca all'interno di un progetto di esplorazione degli approcci alla programmazione multi-piattaforma tra Java e iOS, mira a proseguire ed ampliare lo studio del tool RoboVM, in particolare grazie allo sviluppo dell'applicazione iTuCSoN, porting del Command Line Interpreter contenuto in TuCSoN (http://tucson.apice.unibo.it/)
Resumo:
I sistemi software rivestono nel campo dell'informatica un ruolo di fondamentale importanza. Negli ultimi anni una caratteristica richiesta ai sistemi è la decentralizzazione del controllo, nell'ottica di un sistema visto come connessioni di parti che possono interagire, e dove ciascuna parte possiede un certo grado di autonomia nella scelta delle attività che devono essere compiute. In tale contesto si introduce il paradigma degli agenti, in quanto include sia aspetti relativi ai modelli computazionali, sia aspetti relativi ai linguaggi. Nella tesi si esplora l'applicazione del linguaggio di programmazione Jason applicato alla programmazione dei controllori di robot. In particolare, si esplora ciò che riguarda il comportamento individuale dell'agente.
Resumo:
L’obiettivo principale di questo elaborato è di mostrare in un primo momento i concetti fondamentali che stanno alla base del paradigma ad agenti. Una volta introdotti, essi verranno collocati in un determinato ambiente di programmazione attraverso una piattaforma specifica chiamata Jason. Come sarà facile capire dalla lettura di questa trattazione, un sistema ad agenti è costituito dagli agenti stessi e dall’ambiente in cui sono situati. L’ambiente risulta quindi un altro tassello fondamentale ed è stato introdotto allo scopo un nuovo paradigma per la programmazione di ambienti chiamato Agent & Artifact. Nello specifico, verrà ampiamente descritto il framework di riferimento di tale paradigma: CArtAgO. Dopo aver illustrato i concetti e gli strumenti per poter agilmente programmare e progettare sistemi ad agenti, verrà infine mostrato un esempio di applicazione di tale tecnologia attraverso un case study. Il progetto del sistema in questione riguarda un reale caso aziendale e integra la tecnologia RFID con quella ad agenti per fornire la soluzione ad un problema noto come quello del controllo periodico delle scorte.
Resumo:
Questo elaborato tratta alcuni dei più noti framework di programmazione avanzata per la costruzione di piattaforme distribuite che utilizzano il linguaggio di programmazione avanzata Scala come fulcro principale per realizzare i propri protocolli. Le tecnologie analizzate saranno Finagle, Akka, Kafka e Storm. Per ciascuna di esse sarà presente una sezione di introduzione, documentazione e un esempio di codice. L’obiettivo dell’elaborato è l’analisi approfondita delle tecnologie sopraelencate per comprendere a fondo le tecniche di programmazione che le rendono uniche nel loro genere. Questo percorso fornisce una chiave di lettura obiettiva e chiara di ciascuna tecnologia, sarà cura del lettore proseguire nello studio individuale della specifica tecnica che ritiene essere più efficace o interessante. Alla fine della tesi è presente un aperto dibattito in cui le quattro tecnologie vengono messe a confronto e giudicate in base alle loro caratteristiche. Inoltre vengono ipotizzate realtà in cui si possa trovare collaborazione tra i vari framework ed, infine, è presente una mia personale opinione basata sulla mia esperienza in merito.
Resumo:
I paradigmi di programmazione più utilizzati nella realizzazione di sistemi embedded presentano delle limitazioni, in quanto non consentono di modellare alcuni aspetti fondamentali. Il paradigma ad agenti presenta delle caratteristiche che consentono di modellare alcuni aspetti fondamenetali di un sistema embedded, oltre a fornire un livello di astrazione più elevato. All'interno di questa tesi verranno mostrati i concetti fondamentali di questo paradigma, mostrando inoltre i costrutti di base di un linguaggio ad agenti come Jason. Nella programmazione ad agenti, l'ambiente riveste un ruolo fondomentale. All'interno di questa trattazione verrà introdotto un paradigma per la programmazione di ambienti, descrivendo inoltre il framework di riferimento: CArtAgo. Dopo aver descritto i concetti e gli strumenti per applicare il paradigma ad agenti, verrà proposto un metodo per la realizzazione di sistemi embedded tramite l'applicazione di Jason sulla scheda di prototipazione Arduino.
Resumo:
La tesi ha lo scopo di indagare le tecnologie disponibili per la realizzazione di linguaggi di programmazione e linguaggi domain specific in ambiente Java. In particolare, vengono proposti e analizzati tre strumenti presenti sul mercato: JavaCC, ANTLR e Xtext. Al termine dell’elaborato, il lettore dovrebbe avere un’idea generale dei principali meccanismi e sistemi utilizzati (come lexer, parser, AST, parse trees, etc.), oltre che del funzionamento dei tre tools presentati. Inoltre, si vogliono individuare vantaggi e svantaggi di ciascuno strumento attraverso un’analisi delle funzionalità offerte, così da fornire un giudizio critico per la scelta e la valutazione dei sistemi da utilizzare.
Resumo:
Negli ultimi anni le tecnologie informatiche sono state al centro di uno sviluppo esponenziale. Fra le incalcolabili innovazioni presentate, ha preso sempre più campo il paradigma per la programmazione ad agenti, che permette la realizzazione di sistemi software complessi, i quali, nell'informatica moderna, ricoprono un ruolo di fondamentale importanza. Questi sistemi, denominati autonomi, mostrano caratteristiche interessanti per scenari dinamici; essi infatti devono essere robusti e resistenti, in grado di adattarsi al contesto ambientale e quindi reagire a determinate modifiche che si verificano nell'ambiente, comportandosi di conseguenza. Indicano perciò la pro-attività dell'entità presa in considerazione. In questa tesi saranno spiegate queste tipologie di sistemi, introdotte le loro caratteristiche e mostrate le loro potenzialità. Tali caratteristiche permettono di responsabilizzare i soggetti, rendendo il sistema auto-organizzato, con una migliore scalabilità e modularità, riducendo quindi le elevate esigenze di calcolo. L'organizzazione di questo documento prevede i primi capitoli atti a introdurre il mondo dei sistemi autonomi, partendo dalle definizioni di autonomia e di agenti software, concludendo con i sistemi multi-agenti, allo scopo di permettere al lettore una comprensione adatta ed esaustiva. I successivi capitoli riguardano le fasi di progettazione delle entità prese in esame, le loro forme di standardizzazione e i modelli che possono adottare, tra i quali il più conosciuto, il modello BDI. Ne seguono due diverse metodologie per l'ingegneria del software orientata agli agenti. Si conclude con la presentazione dello stato dell'arte degli ambienti di sviluppo conosciuti, contenente un'esauriente introduzione ad ognuno di essi ed una visione nel mondo del lavoro del loro apporto negli applicativi in commercio. Infine la tesi terminerà con un capitolo di conclusioni e di riflessioni sui possibili aspetti futuri.
Resumo:
In questo lavoro di tesi sono state impiegate le librerie grafiche OpenGL ES 2 per eseguire calcoli paralleli sulla GPU del Raspberry Pi. Sono stati affrontati e discussi concetti riguanrdati il calcolo parallelo, stream processing, GPGPU e le metriche di valutazione di algoritmi paralleli. Sono inoltre descritte le potenzialita e le limitazioni derivanti dall'impiego di OpenGL per implementare algoritmi paralleli. In particolare si e fatto riferimento all'algoritmo Seam Carving per il restringimento di immagini, realizzando e valutando una implementazione parallela di questo sul Raspberry Pi.
Resumo:
Il presente progetto è stato svolto in collaborazione con la Cineteca di Bologna e verte sulla riprogettazione dell'odierna interfaccia Web, in funzione della sua visualizzazione mobile non considerata nella progettazione del 2008, in particolare nella sua parte che concerne la programmazione degli spettacoli in ambito cinematografico. Raccolti i suggerimenti degli utenti e approfondite le richieste della Cineteca, affrontando con i responsabili IT della Fondazione le criticità emerse, la ristrutturazione delle sezioni presenti e l'aggiunta di nuove funzionalità, si è impostato il lavoro come segue. In primis, si è eseguita una ricerca, avvalendosi di fonti autorevoli nella letteratura di settore, con un focus incentrato sull’Usabilità. Questa ha portato a presentare una panoramica di tale tematica, per concentrarsi poi sulle peculiarità dei dispositivi mobili, toccando vari aspetti: da un approfondimento dalle caratteristiche dell’uso fino una collocazione anche storica alla realtà mobile. Successivamente, si è proseguito analizzando nel dettaglio tutti i vari elementi da includere, sia dal punto di vista concettuale che posizionale, in riferimento a varie soluzioni proposte dalla letteratura di settore. Ciò preferendo i modelli principalmente utilizzati, dunque maggiormente familiari agli utenti, e i metodi normalizzati per la risoluzione di singole problematiche frequenti nella presentazione delle informazioni. Il risultato è un progetto di interfaccia più vicina all'esperienza quotidiana dell'utente, concretizzatosi con la realizzazione di un prototipo per mezzo di applicativi che simulano un device e mostrano anteprime grafiche dell'interfaccia medesima, nella fattispecie della natura e della collocazione dei singoli componenti sullo schermo. Il lavoro, pertanto, si pone l’obiettivo di rispondere a comuni e debite aspettative dell'utenza in fatto di comodità, efficienza e immediatezza di consultazione della Programmazione anche in mobilità.
Resumo:
In questa tesi si discutono inizialmente i concetti chiave di agente e sistema multi-agente e si descrivono in ogni dettaglio il linguaggio di programmazione AgentSpeak(L) e la piattaforma Jason, fornendo le basi per poter programmare con il paradigma AOP. Lo scopo centrale di questa tesi è quello di estendere il modello di pianificazione dell’interprete di AgentSpeak(L), considerato come caso specifico, con un approccio che può essere integrato in qualsiasi linguaggio di programmazione ad agenti. Si espone un’evoluzione di AgentSpeak(L) in AgentSpeak(PL), ossia la creazione ed esecuzione di piani automatici in caso di fallimento attraverso l'uso di un algoritmo di planning state-space. L'approccio integrativo modifica il Ciclo di Reasoning di Jason proponendo in fase di pianificazione automatica un riuso di piani già esistenti, atto a favorire la riduzione di tempi e costi nel long-term in un sistema multi-agente. Nel primo capitolo si discute della nozione di agente e delle sue caratteristiche principali mentre nel secondo capitolo come avviene la vera e propria programmazione con AgentSpeak(L). Avendo approfondito questi argomenti base, il terzo capitolo è incentrato sull’interprete Jason e il quarto su una migliore estensione dell'interprete, in grado di superare i limiti migliorando le performance nel tempo. Si delineano infine alcune considerazioni e ringraziamenti nel quinto e ultimo capitolo. Viene proposta con scrittura di carattere divulgativo e non ambiguo.