Ferdinando Picarella
"Chiedete e vi sarà dato; cercate e troverete; bussate e vi sarà aperto; perché chiunque chiede riceve e chi cerca trova e a chi bussa sarà aperto" (Gesù di Nazareth, Mt 7, 7-8)
Contatti:
Laurea Specialistica
Lavoro
La simulazione di gruppi di agenti in movimento in un mondo virtuale è oggetto di studio sin dagli anni ottanta e, oltre all'Informatica, coinvolge tante altre materie, come ad esempio la Fisica, la Biologia, la Psicologia e le Scienze Sociali. Ma talvolta, per avere dei risultati particolarmente interessanti e significativi, è necessario eseguire simulazioni con milioni di agenti, cosa che al momento è difficile, se non impossibile, svolgere utilizzando una sola unità di calcolo. A tale scopo in ISISLab è stato sviluppato DistributedSteer, framework con cui viene bilanciato il carico di lavoro tra più worker, permettendo di simulare il plugin Boids della famosa libreria OpenSteer (sviluppata da Sony Computer Entertainment America su impulso di Craig Reynolds, già autore dei modelli teorici relativi agli agenti) con diverse decine di milioni di agent. Il mio compito è quello di integrare nuovi plugin - i cui agenti abbiano complessità maggiore rispetto ai boid - all'interno di DistributedSteer, in maniera tale da poter meglio valutare la bontà del lavoro finora effettuato e, qualora ce ne fosse bisogno, apportare dei piccoli miglioramenti.
Seminari
- Venerdì 17 Febbraio 2012 ho tenuto il seminario "Verso la simulazione massiva di un plugin pesante per OpenSteer"
Abstract:
OpenSteer, la famosa libreria open-source per simulazioni di agenti autonomi, nella sua versione originale presenta problemi di prestazioni quando il numero degli agenti supera l'ordine delle migliaia. A tale scopo in ISISLab è stato sviluppato DistributedSteer, il cui intento era quello di parallelizzare la computazione, permettendo simulazioni con milioni di agenti. Tutto ciò concentrandosi su Boids, uno dei plugin di cui è composto OpenSteer. Durante il seminario verrà fatta una panoramica sul lavoro finora svolto e sarà presentato nello specifico Pedestrians, il nuovo plugin che si intende parallelizzare, esaminandone le problematiche e le possibili soluzioni per ciò che riguarda la sua integrazione in un contesto distribuito.
- Giovedì 14 Giugno 2012 ho trattato il seminario "Un plugin sociale per DistributedSteer"
Abstract:
DistributedSteer, il framework per il bilanciamento del carico basato sul famoso sistema ad agenti OpenSteer,è stato integrato con un nuovo plugin, attraverso il quale vengono simulate semplici interazioni sociali all'interno di un gruppo di persone. Durante il seminario daremo uno sguardo allo stato dell'arte nell'ambito dei sistemi ad agenti che simulano comportamenti umani per poi concentrarci sul modello proposto ed osservare come esso funziona in un contesto parallelo, sia in termini di prestazioni che per quanto riguarda la scalabilità.
Riferimenti e link utili
-
- OpenSteer
- DeinoMPI
- Steering Behaviors For Autonomous Characters - Web Site
- Steering Behaviors For Autonomous Characters - Paper
- Interaction with Groups of Autonomous Characters
- Flocks, Herds, and Schools: A Distributed Behavioral Model
- Distributed Load Balancing for Parallel Agent-based Simulations
- Crowd Modeling and Simulation Technologies
- Parallelizing a Real-Time Steering Simulation for Computer Games with OpenMP
- Comparing Extremism Propagation Patterns in Continuous Opinion Models (Guillame Deffuant)
- Simulating dynamical features of escape panic (Helbing model)
- EVACNET4: a user-friendly interactive computer program for modelling building evacuations
- Modeling and simulation of pedestrian behaviors in crowded places (Koh-Zhou model)
- SteerBench: a benchmark suite for evaluating steering behaviors
- Validation and Verification of Multi-Agent Systems
Laurea Triennale
Lavoro
Ho sviluppato un servizio aggiuntivo per Facebook, che consente di effettuare filtering sui post generati dai propri amici; in particolare, esso consente di scegliere quanti post (al massimo) si desidera visualizzare per ognuno degli stessi. Tale servizio è stato implementato mediante un'applicazione CGI scritta in Perl, che utilizza librerie (reperite dal sito di CPAN) che invocano servizi delle API di Facebook (gli stessi utilizzati dalle applicazioni di terze parti già presenti nel famoso social network), il tutto opportunamente integrato all'interno di un proxy HTTP (SISI).
Per maggiori dettagli è possibile visionare il secondo seminario che ho tenuto, dal titolo: "Sviluppo di servizi intermediari per Facebook".
Seminari
- Mercoledì 8 Aprile 2009 ho tenuto il seminario "Google Social Graph API".
Abstract:
Nel seminario sono state presentate le API messe a disposizione da Google per la costruzione di reti sociali per le pagine web che supportano le specifiche XFN e FOAF. Nella parte iniziale sono stati descritti ed analizzati tali linguaggi di markup, ed in seguito sono stati mostrati nel dettaglio gli specifici servizi, e su come è possibile utilizzarli all'interno di codice Perl.
- Venerdì 18 Settembre 2009 ho tenuto il seminario "Sviluppo di servizi intermediari per Facebook".
Abstract:
I nuovi moduli Perl resi disponibili sul sito di CPAN per interagire con le API di Facebook hanno introdotto la possibilità di poter integrare servizi all'interno del sistema intermediario SISI. Nella prima parte del seminario è stata fatta una breve panoramica sulle tecnologie e gli strumenti offerti dalla Facebook Platform ed è stato illustrato come è possibile sviluppare applicazioni per il famoso sito di social networking. Infine è stato descritto nel dettaglio il servizio aggiunto a Facebook, che consente di personalizzare il numero di post che si desidera visualizzare nella propria homepage per ogni amico, analizzando alcuni frammenti di codice salienti e discutendo delle scelte implementative effettuate ed eventuali sviluppi futuri.
Riferimenti
- Pagina ufficiale degli sviluppatori di Facebook
- Documentazione API di Facebook
- Librerie Perl per utilizzare le API di Facebook
- Sito ufficiale di Perl.it