CSS 497 - Cooperative Education Faculty Research Internship Spring / Summer 2013 Richard Romanus 08/23/2013 Developing and Extending the MASS Library (Java)

Slides:



Advertisements
Similar presentations
Dynamic Load Balancing for VORPAL Viktor Przebinda Center for Integrated Plasma Studies.
Advertisements

Chap 4 Multithreaded Programming. Thread A thread is a basic unit of CPU utilization It comprises a thread ID, a program counter, a register set and a.
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
Haiyun Luo, Fan Ye, Jerry Cheng, Songwu Lu, Lixia Zhang
Threads Clients Servers Code Migration Software Agents Summary
Proof System HY-566. Proof layer Next layer of SW is logic and proof layers. – allow the user to state any logical principles, – computer can to infer.
Scripting Languages For Virtual Worlds. Outline Necessary Features Classes, Prototypes, and Mixins Static vs. Dynamic Typing Concurrency Versioning Distribution.
Effective Agent Participation in Rescue Operations Brent Dutson CS7100 Fall 2009.
Introduction What is this ? What is this ? This project is a part of a scientific research in machine learning, whose objective is to develop a system,
Company LOGO Development of Resource/Commander Agents For AgentTeamwork Grid Computing Middleware Funded By Prepared By Enoch Mak Spring 2005.
Chris Rouse CSS Cooperative Education Faculty Research Internship Winter / Spring 2014.
Inter-cluster Job Deployment by AgentTeamwork Sentinel Agents Emory Horvath CSS497 Spring 2006 Advisor: Dr. Munehiro Fukuda.
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
A Smart B2C e-Commerce System Based on ACP Approach Chen Lyu, Lefei Li, and Tao Pan, Tsinghua University Intelligent Systems, IEEE, vol. 29, issue. 4,
The hybird approach to programming clusters of multi-core architetures.
Parallelization: Conway’s Game of Life. Cellular automata: Important for science Biology – Mapping brain tumor growth Ecology – Interactions of species.
C++ Agents Implementation Chris Rouse CSS 497. Outline  Finish Agent Implementation  Involves changes to the following classes:  Agents_base.h/.cpp.
Parallel NetCDF Library Development Formerly “Sensor Cloud Integration” Kelsey Weingartner.
Distributed Multi-Agent Management in a parallel-programming simulation and analysis environment: diffusion, guarded migration, merger and termination.
High Performance Computation --- A Practical Introduction Chunlin Tian NAOC Beijing 2011.
Interpreting the data: Parallel analysis with Sawzall LIN Wenbin 25 Mar 2014.
Parallel Programming Models Jihad El-Sana These slides are based on the book: Introduction to Parallel Computing, Blaise Barney, Lawrence Livermore National.
Lukasz Grzegorz Maciak Micheal Alexis
Sugarscape Andy Menke. Agent Based Modeling Simple agents = complex behavior Boids.
UNIT - 1Topic - 2 C OMPUTING E NVIRONMENTS. What is Computing Environment? Computing Environment explains how a collection of computers will process and.
EXPOSE GOOGLE APP ENGINE AS TASKTRACKER NODES AND DATA NODES.
AN EXTENDED OPENMP TARGETING ON THE HYBRID ARCHITECTURE OF SMP-CLUSTER Author : Y. Zhao 、 C. Hu 、 S. Wang 、 S. Zhang Source : Proceedings of the 2nd IASTED.
Parallel Programming Dr Andy Evans. Parallel programming Various options, but a popular one is the Message Passing Interface (MPI). This is a standard.
+ CUDA Antonyus Pyetro do Amaral Ferreira. + The problem The advent of multicore CPUs and manycore GPUs means that mainstream processor chips are now.
A performance evaluation approach openModeller: A Framework for species distribution Modelling.
MACCE and Real-Time Schedulers Steve Roberts EEL 6897.
Jack DeWeese Computer Systems Research Lab. Purpose  Originally intended to create my own simulation with easily modified variables  Halfway through.
Geosimulation Geosimulation models are developed to represent phenomena that occur in urban systems in highly realistic manner In particular, Cellular.
Review Questions on Chapter IV—IPC COSC 4330/6310 Summer 2013.
Design Issues. How to parallelize  Task decomposition  Data decomposition  Dataflow decomposition Jaruloj Chongstitvatana 2 Parallel Programming: Parallelization.
COMPSCI 230 S2C 2013 Software Design and Construction Deadlock, Performance, Programming Guidelines Lecture 6 of Theme C.
Mobile Agent Migration Problem Yingyue Xu. Energy efficiency requirement of sensor networks Mobile agent computing paradigm Data fusion, distributed processing.
Chapter 12 Review Chad Hagstrom CS 310 Spring 2008.
A Software Framework for Distributed Services Michael M. McKerns and Michael A.G. Aivazis California Institute of Technology, Pasadena, CA Introduction.
Distributed mega-scale Agent Management in MASS: diffusion, guarded migration, merger and termination Cherie Wasous CSS_700 Thesis – Winter 2014 (Feb.
CUDA Basics. Overview What is CUDA? Data Parallelism Host-Device model Thread execution Matrix-multiplication.
Spring 2009 Programming Fundamentals I Java Programming XuanTung Hoang Lecture No. 8.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2000 OS 1.
1 Καστοριά Μάρτιος 13, 2009 Efficient Service Task Assignment in Grid Computing Environments Dr Angelos Michalas Technological Educational Institute of.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 4: Threads.
SensorBaysianGlobal Alfredo Garcia Enrique Campos-Nanez Matt Spear.
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
Distributed mega-scale Agent Management in MASS: diffusion, guarded migration, merger and termination Cherie Wasous CSS_700 Thesis – Winter 2014 (Jan.
Real-Time Systems Laboratory Seolyoung, Jeong JADE (Java Agent DEvelopment framework )
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
Hongbin Li 11/13/2014 A Debugger of Parallel Mutli- Agent Spatial Simulation.
MASS C++ Updates JENNIFER KOWALSKY, What is MASS? Multi-Agent Spatial Simulation A library for parallelizing simulations and data analysis Uses.
A Web Based Job Submission System for a Physics Computing Cluster David Jones IOP Particle Physics 2004 Birmingham 1.
Advance Computer Programming Market for Java ME The Java ME Platform – Java 2 Micro Edition (J2ME) combines a resource- constrained JVM and a set of Java.
Application of Design Patterns to Geometric Decompositions V. Balaji, Thomas L. Clune, Robert W. Numrich and Brice T. Womack.
Introduction to threads
MASS Java Documentation, Verification, and Testing
Chapter 4: Threads.
Duncan MacMichael & Galen Deal CSS 534 – Autumn 2016
Thank you, chairman for the kind introduction. And hello, everyone.
Async or Parallel? No they aren’t the same thing!
Enterprise Computing Collaboration System Example
Chapter 4: Threads.
Parallel NetCDF + MASS Development
MASS CUDA Performance Analysis and Improvement
Chapter 4: Threads.
Modified by H. Schulzrinne 02/15/10 Chapter 4: Threads.
Android Topics UI Thread and Limited processing resources
Chapter 4: Threads.
Presentation transcript:

CSS Cooperative Education Faculty Research Internship Spring / Summer 2013 Richard Romanus 08/23/2013 Developing and Extending the MASS Library (Java) Places.exchangeBoundary( )

MASS Basic Description MASS (Multi-Agent Spatial Simulation ) is a parallel computing software library Simplifies the task of creating and running parallel applications across multiple computers and CPU cores.

MASS Basic Description Two primary types of simulations: 1. A Stand-alone Grid of Stationary Locations Example: A map and it’s grid of sub-locations 2. A Grid of Stationary Locations with Mobile Units Example: A map, it’s grid of sub-locations and mobile units

MASS Library Stand-alone Grid of Stationary Locations Composed of: The Grid of Locations referred to as Places in MASS contains the grid of stationary locations Single Stationary Location referred to as a Place object in MASS contains basic information about the local place Example: local Temperature

Wave2D - 2D Wave Simulation A 2-dimensional simulation using Schrödinger wave diffusion equation. Each Place location gathers wave height information from it’s neighbors Use gathered data to re-calculate new wave height

Grid of Stationary Locations with Mobile Units Composed of: Collection of Mobile Units referred to as “Bag of” Agents in MASS each Place location has a “Bag of” Agents contains the mobile units for the Place location Mobile Unit referred to as Agent in MASS contains basic information about the mobile unit Example: Amount of sugar an ant (agent) has consumed

Places Maintain & Manages the Place locations Manages exchange between the Place locations Place Maintains Place location data (inc. “Bag of” Agents) Provides a user software interface Agents Maintains & Manages the Agent units Manages the exchange and migration of Agent units Agent Maintains the Agent data Provides a user software interface The Overall MASS Framework callAll( ) exchangeAll( ) exchangeBoundary( ) callMethod( ) {User created functions} callAll( ) exchangeAll( ) manageAll( ) callMethod( ) {User created functions}

SugarScape - Simulation An Agent-based social simulation Uses both: stationary Land locations (place) mobile Ant units (agent) Each Land location (place) maintains: a number of agents a level of sugar

SugarScape - Simulation The Ant units (agent) also maintain a certain level of sugar During each iteration of time, each ant will do one of the following: Consume sugar Move to new location or Die (if out of sugar) Moving costs the ant a certain amount sugar

My SugarScape Simulation using MASS My Simulation: Each ant has a random visual distance (between 1 – 3), in all directions Each location starts with a random amount of sugar (0-5) Each location can have zero or more ants at any time Ants calculate best location by subtracting number of agents from the amount of sugar a location has. Example:4 sugar - 2 agents = +2 move index

My SugarScape Simulation using MASS Different ants can have different visual ranges An ant with a larger visual range has an advantage

My SugarScape Simulation using MASS My Simulation:

My SugarScape Simulation using MASS My Simulation:

Places.exchangeBoundary( ) Ants on the grid of places The sugar levels for each place are shown The grid is divided up across different computers The Boundaries between computers is shadowed on the other machine

Places.exchangeBoundary( ) The Shadowed boundaries provide, all units on a computer with quick access to information on the other computer

Places.Places( int handle, String className, Object argument, int boundaryWidth, boolean wrapEdge, int... size ) Creates a matrix of place locations that represent the matrix space. Creates a shadow boundary space on one or both of it’s first dimensional boundaries with the neighboring computers. The width of the boundaries is determined by the user provided boundaryWidth variable. Furthermore, the user may select (wrapEdge = true) whether or not to allow the first dimensional edges to wrap around Places.exchangeBounday( ) First runs notifies all of the other nodes and other threads to run exchangeBoundary() Then runs the eb_exchangeBoundary() function which creates request messages sends them to the other nodes. It then processes the messages it receives from the other nodes and sends back a reply with the requested data. Finally, the function updates all of the inMessages array on all of the local places Places.exchangeBoundary() API functions

Test Results size =500 (500x500 = places) numAgents =5000 maxTime =300 collectInterval =5 numProc =2 numThrd =2 exchangeBoundary() 1) *** Total Time (ms) : *** Execution Time (ms): ) *** Total Time (ms) : *** Execution Time (ms): ) *** Total Time (ms) : *** Execution Time (ms): exchangeAll() 1) *** Total Time (ms) : *** Execution Time (ms): ) *** Total Time (ms) : *** Execution Time (ms): ) *** Total Time (ms) : *** Execution Time (ms): size =500 (500x500 = places) numAgents =5000 maxTime =300 collectInterval =5 numProc =4 numThrd =2 exchangeBoundary() 1) *** Total Time (ms) : *** Execution Time (ms): ) *** Total Time (ms) : *** Execution Time (ms): ) *** Total Time (ms) : *** Execution Time (ms):