Distributed simulation of situated multi-agent systems

Similar documents
DISTRIBUTING REPAST SIMULATIONS USING ACTORS

Simulation of Scale-Free Networks

Processes in Distributed Systems

PARALLEL AND DISTRIBUTED PLATFORM FOR PLUG-AND-PLAY AGENT-BASED SIMULATIONS. Wentong CAI

Workloads Programmierung Paralleler und Verteilter Systeme (PPV)

Introduction to Parallel Computing

Outline. Simulating overlay networks with PeerSim. Introduction: P2P Systems. What is PeerSim? Peersim components. ! Introduction to Peersim

Coordination in Situated Systems

Parallel Patterns for Window-based Stateful Operators on Data Streams: an Algorithmic Skeleton Approach

Ingegneria del Software Corso di Laurea in Informatica per il Management

Parallel Programming Patterns Overview CS 472 Concurrent & Parallel Programming University of Evansville

Processes in Distributed Systems

Outline. Database Tuning. Ideal Transaction. Concurrency Tuning Goals. Concurrency Tuning. Nikolaus Augsten. Lock Tuning. Unit 8 WS 2013/2014

Fall CSE 633 Parallel Algorithms. Cellular Automata. Nils Wisiol 11/13/12

Introduction to Distributed Systems

WHAT IS SOFTWARE ARCHITECTURE?

AGENT METHODOLOGICAL LAYERS IN REPAST SIMPHONY

Challenges in large-scale graph processing on HPC platforms and the Graph500 benchmark. by Nkemdirim Dockery

Introduction to Distributed Systems

Agents and areas of application

Most real programs operate somewhere between task and data parallelism. Our solution also lies in this set.

Caching video contents in IPTV systems with hierarchical architecture

Computer-based systems will be increasingly embedded in many of

Determining Differences between Two Sets of Polygons

An Introduction to Parallel Programming

Effective Data-Race Detection for the Kernel

Jade: Java Agent DEvelopment Framework Overview

Dynamic Virtual Cluster reconfiguration for efficient IaaS provisioning

Embedded Systems Dr. Santanu Chaudhury Department of Electrical Engineering Indian Institute of Technology, Delhi

Agent based Cellular Automata Simulation

Parallelizing Graphics Pipeline Execution (+ Basics of Characterizing a Rendering Workload)

Multi-Agent Pathfinding. Ko-Hsin Cindy Wang & Adi Botea NICTA & The Australian National University

From Objects to Agents: The Java Agent Middleware (JAM)

Oracle Policy Automation The modern enterprise advice platform

Written Presentation: JoCaml, a Language for Concurrent Distributed and Mobile Programming

Optimal Decision Trees Generation from OR-Decision Tables

Main Points of the Computer Organization and System Software Module

Crossword Puzzles as a Constraint Problem

Fast Denoising for Moving Object Detection by An Extended Structural Fitness Algorithm

Big Data Management and NoSQL Databases

Unit 5: Distributed, Real-Time, and Multimedia Systems

Jade: Java Agent DEvelopment Framework Overview

Algorithms for the Bin Packing Problem with Conflicts

Performance impact of dynamic parallelism on different clustering algorithms

A Cloud Framework for Big Data Analytics Workflows on Azure

Transactum Business Process Manager with High-Performance Elastic Scaling. November 2011 Ivan Klianev

Chapter 3: Processes. Operating System Concepts 8th Edition,

Database Management and Tuning

Pace University. Fundamental Concepts of CS121 1

An Introduction to Complex Systems Science

Behavioral Simulations in MapReduce

Exercise (could be a quiz) Solution. Concurrent Programming. Roadmap. Tevfik Koşar. CSE 421/521 - Operating Systems Fall Lecture - IV Threads

Browsing the World in the Sensors Continuum. Franco Zambonelli. Motivations. all our everyday objects all our everyday environments

Teaching Distributed Programming Concepts using a Java and Logo-based Framework

Simulating overlay networks with PeerSim. Acknowledgements. Outline. Introduction: P2P Systems

Tecniche di Progettazione: Design Patterns

AGENTS OVER THE GRID: AN EXPERIENCE USING THE GLOBUS TOOLKIT 4

Multithreading and Interactive Programs

SIMULATION FRAMEWORK FOR MODELING LARGE-SCALE DISTRIBUTED SYSTEMS. Dobre Ciprian Mihai *, Cristea Valentin *, Iosif C. Legrand **

Paolo Bellavista Veronica Conti Carlo Giannelli Jukka Honkola

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2014 Lecture 14

Dictionaries and Hash Tables

6/20/2018 CS5386 SOFTWARE DESIGN & ARCHITECTURE LECTURE 5: ARCHITECTURAL VIEWS C&C STYLES. Outline for Today. Architecture views C&C Views

VoltDB vs. Redis Benchmark

Scalable Algorithmic Techniques Decompositions & Mapping. Alexandre David

Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions

Optimization solutions for the segmented sum algorithmic function

Multiprocessors & Thread Level Parallelism

Distributed Individual-Based Simulation

Serial. Parallel. CIT 668: System Architecture 2/14/2011. Topics. Serial and Parallel Computation. Parallel Computing

Multiprocessors 2007/2008

Main Memory. ICS332 Operating Systems

Parallel Computing: Parallel Architectures Jin, Hai

Track pattern-recognition on GPGPUs in the LHCb experiment

Chapter 11: File System Implementation. Objectives

CSE 344 Final Review. August 16 th

Indexing by Shape of Image Databases Based on Extended Grid Files

OpenMPSuperscalar: Task-Parallel Simulation and Visualization of Crowds with Several CPUs and GPUs

The VERCE Architecture for Data-Intensive Seismology

Scheduling Transactions in Replicated Distributed Transactional Memory

Mobile robots and appliances to support the elderly people

Parallel access to linked data structures

Using Transparent Compression to Improve SSD-based I/O Caches

Concurrency for data-intensive applications

Chapter 4: Threads. Operating System Concepts 9 th Edition

CS 471 Operating Systems. Yue Cheng. George Mason University Fall 2017

2. The system of... generally ran one job at a time. These were called single stream batch processing.

Parallel Programming Patterns

Week 2 / Paper 1. The Design Philosophy of the DARPA Internet Protocols

1. Memory technology & Hierarchy

B.H.GARDI COLLEGE OF ENGINEERING & TECHNOLOGY (MCA Dept.) Parallel Database Database Management System - 2

Multithreading and Interactive Programs

GROUP PROJECT. Instructor: Dr. Karne COSC 519

PowerVR Hardware. Architecture Overview for Developers

Computer Graphics and GPGPU Programming

Department of Computer Science, Institute for System Architecture, Operating Systems Group. Real-Time Systems '08 / '09. Hardware.

Chapter 1: Distributed Information Systems

Rule partitioning versus task sharing in parallel processing of universal production systems

A Process Model suitable for defining and programming MpSoCs

IOS: A Middleware for Decentralized Distributed Computing

Transcription:

Distributed simulation of situated multi-agent systems Franco Cicirelli, Andrea Giordano, Libero Nigro Laboratorio di Ingegneria del Software http://www.lis.deis.unical.it Dipartimento di Elettronica Informatica e Sistemistica Università della Calabria 87036 Rende (CS) Italy {f.cicirelli,a.giordano}@deis.unical.it, l.nigro@unical.it

Goal proposing an approach and supporting framework, for modelling and distributed simulation of complex situated multi-agent systems Presentation Outline introducing situated agents discussing distributed-simulation of situated agents describing the proposed approach and the developed framework showing achievable performance by means of a TileWorld-based simulation model 2

Situated agents are characterized by being embedded in a spatial environment (or territory) and by owning spatial coordinates their behaviour is strongly influenced by the owned position into the environment are able to move on, perceive and act-upon the territory emerging properties of modelled systems may arise by agent-to-agent or agent-to-environment interactions 3

Distributed simulation of situated agents situated agents are widely adopted for studying a broad range of phenomena and systems (e.g. in biology, sociology, wildfires) distributed simulation is often mandatory to cope with the high resource demand (both in terms of time and space) of such large models in a distributed context the environment becomes a huge shared variable of a concurrent system suitable environment partitioning-schemas and approaches regulating the access to the environmental data are required (e.g. for load balancing, data consistency, performance) 4

Distributing the environment (1) intersection of action areas A first scenario: the territory is modelled as a bi-dimensional grid limited sensing/control capabilities a hypothesis: each cell may host at most one agent (a conflict occurs otherwise) sequential simulation and cooperative concurrency 5

Distributing the environment (2) LP1 LP2 A second scenario: distributed simulation (2 LPs) territory and agent population are split conflicts occur on red highlighted cells (real parallelism) remote communication is required between LPs 6

Distributing the environment: a solution (1) LP1 Reducing remote communication: border areas are replicated (gray parts) their size depend on visibility radius LP1 LP2 LP2 7

Distributing the environment: a solution (2) Avoiding conflicts: a Conflict Free execution order is enforced among agents residing on different LPs conflicting agents are not allowed to act concurrently no control messages are exchanged among LPs no locks are used LP1 LP2 8

Distributing the environment: a solution (3) LP2 CFN = 8 CFN = 2 LP1 LP2 LP1 Avoiding conflicts: Cells on border areas are tagged with Conflict Free Numbers (CFNs) two agents which are distant less than or equal to 2*actionradius and belong to different LPs must be flagged with a different CFN CFNs are used to define a conflict free execution order among agents agents on different LPs having the same CFNs can really act in parallel tagging schema depend on action radius 9

Distributing the environment: a solution (4) Avoiding conflicts: a repetitive pattern, favouring CFN reuse, is used (shuffled from time to time) CFN reuse favours parallelism LP1 LP2 the assigning algorithm scans the border area from top to bottom and from left to right the same assignment (despite shuffling) is made by two neighbouring LPs without requiring any interaction by using the current logical time as the seed for the pseudo random number generators 10

Enforcing the conflict-free execution order: the composite logical time (CLT) < --------------- CLT ------------- > [ Virtual time Epoch CFN Step ] is the virtual time from the model point of view manages multiple events at the same virtual time used to handle updates and agent migrations for conflict resolution every time an event (message) is ready to be dispatched, its actual delivery occurs at a time which take into account the CFN of the receiving agent actions triggered by such event cannot cause conflicts 11

Distributing the environment: a solution (5) territory and agent population are split among various LPs each territory portion is called region the edge portions of adjacent regions (borders) are mirrored among LPs and kept updated proposed approach conflict resolution and data consistency rely on a composite logical time notion which makes use of CFN action and visibility radii are introduced (neighborhood) migration is required when an agent moves among regions such radii delimit the area within which an agent can efficiently read and change the status of the immediate surrounding territory 12

Distributing the environment: the supporting framework is added into the Theatre multi-agent architecture relies on a lightweight actor model of computation promotes the environment as first-class entity (ActorEnv) simplifies M&S tasks by making the modeller unaware of distribution concerns realized framework allows the sharing of agent state within the agent neighborhood, it permits synchronous access to the environment (asynchronous otherwise) 13

The supporting framework: the Neighborhood interface Neighbourhood n = ActorEnv.getMyNeighbourhood(); Actor createandlocate(string actclass, Position p); void moveactor(actor act, Position p); void removeactor(actor act); List<Actor> getcell(position p, Class actclass); boolean iscellempty(position p); List<Actor> getactors(class actclass); Position getposition(actor act); void addshared(string name, Class type); <T> T getshared(string name, Class<T> type, Actor act); <T> void setshared(string name, Class<T> type, T value, Actor act); 14

A TileWorld Model as testbed agent s mission: move around to find and pick-up a tile and then move to fill an hole and so forth until no more tiles exist an hole is characterized by its depth holes and tiles may appear and disappear dynamically different game configurations with a huge number of randomly placed TileWorldActor(s), TileActor(s), HoleActor(s), and static obstacles, were experimented different values for the action and visibility radii were considered the goal was not to compare agent strategies but only to check the achievable simulation performance 15

A code excerpt of the TileWorldActor //status MOVE_TO_HOLE Neighbourhood n = ActorEnv.getMyNeighbourhood(); if( n.getshared("visible",boolean.class,this.foundhole) ){ nextposition = makeasteptowardahole(this.foundhole); if (nextposition.isreached( n.getposition(this.foundhole) )){//fill the hole int d = n.getshared("depth",integer.class,this.foundhole); n.setshared("depth",integer.class,d-1,this.foundhole); if (n.getshared("depth",integer.class,this.foundhole)==0){ n.setshared("visible",booelan.class,false,this.foundhole); this.score += n.getshared("score",double.class,this.foundhole); state become(look_for_tile);//change status} }else if (!n.getcell(nextposition,obstacleactor.class).isempty()) nextposition = changedirection();//avoid the obstacle n.moveactor(this,nextposition); }else{//explore this.foundhole = null; for(holeactor a:n.getactors(holeactor.class)) if (n.getshared("visible",boolean.class,a)){ this.foundhole = a; nextposition = makeasteptowardahole(this.foundhole); } n.moveactor(this,nextposition); break;} if (this.foundhole == null) become(look_for_hole);//change status move on the territory access to neighbourhood manage shared explore the territory distribution aspects and conflict management are completely hidden 16

Speedup vs. TileWorldActors (variable load) 1 2 3 three LPs/federates allocated on three WinXP (32 bit) Intel i7 CPU 960, 1-core, 3.20 GHz, 3GB RAM, interconnected by a Gigabit Ethernet switch in the presence of HLA prti 1516 each federate hosts a region composed of 1200x900 cells (overall territory is 1200x2700 cells) 17

The variable-load scenario: is it appropriate? 1 2 3 18

Speedup vs. Action and Visibility radii (constant load) 1 2 3 4 19

On-going and future work experimenting with the use of the infrastructure in large and highly dynamic systems (e.g. inspired by biology or social science) improving the ActorEnv interface (e.g. by allowing a more fine grained read/write control on shared data and by providing a more complex pattern-matching schema for neighbourhood exploration) specializing the approach so as to exploit the potential of modern multi-core hardware generalizing territory management (e.g. toward hexagonal space cells, continuous spaces, diffusive spaces and n- dimensional spaces) 21