SAPERE Self-aware Pervasive Service Ecosystems From Engineer to Alchemist, There and Back Again: An Alchemist Tale Danilo Pianini – [email protected] Alma Mater Studiorum—Università di Bologna Cesena, May 24th, 2013 Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 1 / 46 Outline 1 Simulation Definitions Models When it’s useful? 2 Alchemist SAPERE background Computational model Engine and architecture Case studies Performance 3 Development Development model Contributors Future activities Danilo Pianini (UniBo) Do or do not, there is no try. An Alchemist Tale Cesena, May 24th, 2013 2 / 46 Simulation Simulation Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 3 / 46 Simulation Definitions Scientific Method Traditional science workflow [Parisi, 2001] Traditional scientific method identification direct observation theories / hypothesis empirical observation quantitative analysis validation / invalidation Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 4 / 46 Simulation Definitions Definition of Simulation A new way for describing scientific theories [Parisi, 2001] Simulation is the process with which we can study the dynamic evolution of a model system, usually through computational tools [Banks, 1999] Simulation is the imitation of the operation of a real-world process or system over time Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 5 / 46 Simulation Models Simulation Requires a Model M. Minsky – Models, Minds, Machines A model (M) for a system (S), and an experiment (E) is anything to which E can be applied in order to answer questions about S. Representation / abstraction Formalisation Aggregation, Simplification, Omission Building a model... How complex should be the model? Which assumptions should be done? Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 6 / 46 Simulation Models From Model to Simulation. . . Computer simulation Models are designed runnable processes Simulation creates a virtual laboratory controlled conditions it’s easy to modify the experiment (variables, parameters, etc.) Simulations imitate the operations of the modelled process generation of an artificial evolution of the system Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 7 / 46 Simulation Models . . . and Back Deductions on the real system represented Evaluation of theories about the model Model validation [Klugl and Norling, 2006] if the data is reliable; if prediction doesn’t match the observed behaviour do not match ⇒ the model must be revised Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 8 / 46 Simulation When it’s useful? Why do we Need Simulations? [Parisi, 2001, Klugl and Norling, 2006] The real system cannot actually be observed The time scale of the real system is too small or too large for observation The original system doesn’t yet exist (or not anymore) The system is too complex Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 9 / 46 Alchemist Alchemist Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 10 / 46 Alchemist SAPERE background The SAPERE Project http://www.sapere-project.eu/ SAPERE (Self-aware Pervasive Service Ecosystems) is an EU STREP project under the FP7 FET Proactive Initiative: Self-Awareness in Autonomic Systems (AWARENESS) The objective of SAPERE is the development of a highly-innovative theoretical and practical framework for the decentralized deployment and execution of self-aware and adaptive services for future and emerging pervasive network scenarios Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 11 / 46 Alchemist SAPERE background SAPERE World SAPERE Node eco-law Engine Software services LSA Space LSA SAPERE Node SAPERE Node LSA LSA SAPERE Node LSA eco-law activation SAPERE Node SAPERE Node SAPERE Node SAPERE Node SAPERE Node Danilo Pianini (UniBo) SAPERE Node An Alchemist Tale SAPERE Node Cesena, May 24th, 2013 12 / 46 Alchemist SAPERE background Simulation of a SAPERE environment The role of simulation Emergence cannot be fully designed It’s crazy to deploy a whole ecosystem without any test Fist class abstractions Dynamic environment Different, mobile, communicating nodes Programmability through a set of chemical-like laws Continuous Time Markov Chain (CTMC) model Autonomous agents Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 13 / 46 Alchemist SAPERE background Two approaches Classic ABM modelling High flexibility Topology as first-class abstraction Dynamics explicitly modelled No native support for CTMC model Chemical inspired modelling Natively CTMC Very fast and reliable algorithms exist in literature Very limited topology: multicompartment at best Only classic reactions can change the world status: limited flexibility Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 14 / 46 Alchemist Computational model Alchemist simulation approach Base idea Start from the existing work with stochastic chemical systems simulation Extend it as needed to reach desired flexibility Goals Full support for Continuous Time Markov Chains (CTMC) Support for differently distributed events (e.g. Triggers) Rich environments, with obstacles, mobile nodes, etc. More expressive reactions Fast and flexible SSA engine Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 15 / 46 Alchemist Computational model Enriching the environment description Reactions Environment Molecules Node Alchemist world The Environment contains and links together Nodes Each Node is programmed with a set of Reactions Nodes contain Molecules Each Molecule in a node is described with a Concentration Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 16 / 46 Alchemist Computational model Extending the concept of reaction From a set of reactants that combine themselves in a set of products to: Reaction Conditions Actions Probability distribution Change concentration of something Node contains something Number of neighbors<3 Rate equation: how conditions influence the execution speed Move a node towards... Any other condition about this environment Any other action on this environment In Alchemist, every event is an occurrence of a Reaction Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 17 / 46 Alchemist Engine and architecture SSA Algorithms Several SSA exist, they follow the same base schema [Gillespie, 1977]: 1 Select next reaction using markovian rates 2 Execute it 3 Update the rates which may have changed Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 18 / 46 Alchemist Engine and architecture Do the math: reaction speed Consider a chemical reaction in the form: µ A+B − →C The probability that this reaction will trigger depends on: 1 Number of molecules A and B: the higher, the higher the probability those molecule will encounter and react 2 µ, a speed coefficient for the reaction We define the propensity of a reaction as its speed in a precise instant of time as aµ = µ[A][B] Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 19 / 46 Alchemist Engine and architecture Do the math: next reaction choice If we assume every reaction is a Poisson process, the probability for it to be the next one is: Z ∞ Z ∞ P aµ P(next = µ) = P(µ, τ )dτ = aµ e −τ j aj dτ = P 0 0 j aj Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 20 / 46 Alchemist Engine and architecture Do the math: next reaction time We can also compute the next time of occurrence: P X X P(τ )dτ = P(µ, τ )dτ = aj e −τ j aj dτ j j X aj = λ −→ λe −λx j Z t F (x ≤ t) = h it λe −λx dx = −e −λt −∞ −∞ = e −λt Now, given a uniformly distributed random r , it’s possible to compute it’s equivalent for the desired distribution: e −λt = r ⇒ t = Danilo Pianini (UniBo) − ln (r ) λ An Alchemist Tale Cesena, May 24th, 2013 21 / 46 Alchemist Engine and architecture Existing algorithms Direct method 1 Compute propensity for each reaction 2 Select next reaction probabilistically 3 Execute it Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 22 / 46 Alchemist Engine and architecture Existing algorithms A+B→C B+C→D E+G→A D+E→E+F F→D+G Direct method + Dependency graph 1 Compute the dependencies among reactions 2 Compute propensity for each reaction 3 Select next reaction probabilistically 4 Execute it 5 Update propensities only for potentially involved reactions 6 Goto 3 Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 23 / 46 Alchemist Engine and architecture Existing algorithms Next Reaction 1 Compute a putative execution time for each reaction 2 Store reactions in a binary heap 3 Pick the next reaction 4 Execute it 5 Compute putative times only for potentially involved reactions 6 Goto 3 Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 24 / 46 Alchemist Engine and architecture Existing algorithms [Slepoy et al., 2008] 1 Compute propensities 2 Split the reactions in groups by their propensity 3 Throw randoms until a reaction in a group is selected 4 Execute it 5 Update propensities only for potentially involved reactions 6 Goto 3 Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 25 / 46 Alchemist Engine and architecture More flexibility! What they miss is what we added Support for instantaneus events (∞ Markovian rate) Reactions can be added and removed during the simulation Support for non-exponential time distributed events (e.g. triggers) Dependencies among reactions are evaluated considering their “context”, speeding up the update phase Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 26 / 46 Alchemist Engine and architecture Smart data structures ⇒ bleeding edge performances 2.0 4 4 A+B→C 7.3 3.7 2 2 1 5.5 0 0 0 0 E+G→A D+E→E+F F→D+G 0 inf 10.1 0 0 1 0 B+C→D 9.1 8.9 4.2 0 1 1 0 Next Reaction efficient structures made dynamic Dynamic Indexed Priority Queue Allow to access the next reaction to execute in O(1) time Worst case update in log2 (N) (average case a lot better) Extended to ensure balancing with insertion and removal Dynamic Dependency Graph Allows to smartly update only a subset of all the reaction Extended with the concept of input and output context Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 27 / 46 Alchemist Engine and architecture Modular structure User Interface Reporting System Core Engine Interactive UI Reaction Manager Alchemist language Simulation Flow Environment Language Parser Environment Instantiator Dependency Graph XML Bytecode Incarnation-specific language Application-specific Alchemist Bytecode Compiler Environment description in application-specific language Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 28 / 46 Alchemist Engine and architecture Some Features in short Parallel executor Approximate Stochastic Model Checker Parallelised engine Alchemist2Blender PVeStA integration Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 29 / 46 Alchemist Case studies Crowd evacuation EXIT 1 EXIT 2 Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 30 / 46 Alchemist Case studies Crowd steering Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 31 / 46 Alchemist Case studies Adaptive Displays Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 32 / 46 Alchemist Case studies Simple Morphogenesis proof of concept Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 33 / 46 Alchemist Case studies Morphogenesis of a Drosophila Melanogaster Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 34 / 46 Alchemist Case studies Anticipative adaptation 'datald.log' using 2:3:4 60 50 60 40 50 30 20 40 10 30 0 20 45 10 40 35 0 30 0 5 25 10 Danilo Pianini (UniBo) 15 20 20 25 15 30 10 35 40 5 45 An Alchemist Tale 0 Cesena, May 24th, 2013 35 / 46 Alchemist Case studies Realistic pedestrians see the video... Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 36 / 46 Alchemist Performance Testbed We realised the same crowd-steering application for both Alchemist and RePast, in order to evaluate the performance gap (if any) Source code for RePast and standalone Alchemist application available at http://www.apice.unibo.it/xwiki/bin/view/Alchemist/JOS We choose a simplified use case which allows simulation in RePast without any change in its engine This actually cripples out the most important Alchemist optimization for complex environment (the dependency graph) Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 37 / 46 Alchemist Performance Results Performance comparison with Repast 500 450 Execution time [s] 400 350 300 250 200 150 100 50 0 50 100 150 200 250 300 350 400 450 500 Number of agents Repast Danilo Pianini (UniBo) Alchemist An Alchemist Tale Cesena, May 24th, 2013 38 / 46 Development Development Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 39 / 46 Development Development model Distributed development Alchemist is a training ground for some good team development practices Linux kernel-like development model Java XText Mercurial DCVS Bitbucket web-based code hosting Maven JUnit Source is released under GPL Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 40 / 46 Development Contributors People involved Michele Bombardi (Done) Realistic pedestrians Chiara Casalboni (Done) Realistic pedestrians Francesca Cioffi (Done) Further experiments with Alchemist-SAPERE Davide Ensini (Done) Approximate Stochastic Model Checker improvement Enrico Galassi (Done) Alchemist-SAPERE high level language Enrico Gualandi (Ongoing) Alchemist-SAPERE languages review Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 41 / 46 Development Contributors People involved Luca Mella (Done) Tools for social network analysis Alessandro Montalti (Done) MS-BioNet to AlchemistXML translator Luca Nenni (Done) Alchemist2Blender Enrico Polverelli (Done) Gradient based patterns Michele Pratiffi (Done) Image importer for Alchemist Giacomo Pronti (Done) SAPERE incarnation main author Luca Ricci (Ongoing) Map importer for Alchemist Andrea Vandin (IMT Lucca) PVeStA integration Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 42 / 46 Development Future activities There is a lot of work to do! MS-Bionet compatibility layer AlcheGRID Alchemist2Blender improvement OpenStreet Map importer and Google Map importer Blender Integration improvement Gnuplot integration CellML / SBML to AlchemistXML Chemistry Incarnation review Alchemist for Bio DSL Realistic biological gradients GPX tracks loader RDF to Alchemist-SAPERE translator These are examples, if you have something in mind, be proactive! Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 43 / 46 Development Future activities Bibliography I Banks, J. (1999). Introduction to simulation. In Farrington, P., Nembhard, H. B., Sturrock, D. T., and Evans, G. W., editors, Proceedings of the 1999 Winter Simulation Conference, pages 7–13. Gillespie, D. T. (1977). Exact stochastic simulation of coupled chemical reactions. Journal of Physical Chemistry, 81(25):2340–2361. Klugl, F. and Norling, E. (2006). Agent-based simulation: Social science simulation and beyond. Technical report, The Eighth European Agent Systems Summer School (EASSS 2006), Annecy. Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 44 / 46 Development Future activities Bibliography II Parisi, D. (2001). Simulazioni - La realtà rifatta al computer. Società editrice il Mulino. Slepoy, A., Thompson, A. P., and Plimpton, S. J. (2008). A constant-time kinetic Monte Carlo algorithm for simulation of large biochemical reaction networks. The Journal of Chemical Physics, 128(20):205101+. Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 45 / 46 SAPERE Self-aware Pervasive Service Ecosystems From Engineer to Alchemist, There and Back Again: An Alchemist Tale Danilo Pianini – [email protected] Alma Mater Studiorum—Università di Bologna Cesena, May 24th, 2013 Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 24th, 2013 46 / 46