Chris Rouse CSS 497 - Cooperative Education Faculty Research Internship Winter / Spring 2014.

Slides:



Advertisements
Similar presentations
Multiple Processor Systems
Advertisements

Computer Science 320 Clumping in Parallel Java. Sequential vs Parallel Program Initial setup Execute the computation Clean up Initial setup Create a parallel.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts Amherst Operating Systems CMPSCI 377 Lecture.
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
Distributed systems Programming with threads. Reviews on OS concepts Each process occupies a single address space.
Distributed systems Programming with threads. Reviews on OS concepts Each process occupies a single address space.
Threads 1 CS502 Spring 2006 Threads CS-502 Spring 2006.
Based on Silberschatz, Galvin and Gagne  2009 Threads Definition and motivation Multithreading Models Threading Issues Examples.
Efficient Parallelization for AMR MHD Multiphysics Calculations Implementation in AstroBEAR.
Cosc 4755 Phone programming: GUI Concepts & Threads.
Threads? Threads allow us to have multiple tasks active at the same time in one executable –think of a server handling multiple connections Each thread.
Company LOGO Development of Resource/Commander Agents For AgentTeamwork Grid Computing Middleware Funded By Prepared By Enoch Mak Spring 2005.
Remote Procedure Calls. 2 Client/Server Paradigm Common model for structuring distributed computations A server is a program (or collection of programs)
AstroBEAR Parallelization Options. Areas With Room For Improvement Ghost Zone Resolution MPI Load-Balancing Re-Gridding Algorithm Upgrading MPI Library.
Fundamentals of Python: From First Programs Through Data Structures
C++ Agents Implementation Chris Rouse CSS 497. Outline  Finish Agent Implementation  Involves changes to the following classes:  Agents_base.h/.cpp.
Processes Part I Processes & Threads* *Referred to slides by Dr. Sanjeev Setia at George Mason University Chapter 3.
Distributed Multi-Agent Management in a parallel-programming simulation and analysis environment: diffusion, guarded migration, merger and termination.
CSS Cooperative Education Faculty Research Internship Spring / Summer 2013 Richard Romanus 08/23/2013 Developing and Extending the MASS Library (Java)
Jpeg Analyzer Ben Applegate CSS497 Advisor: Dr. Munehiro Fukuda.
Understanding the CORBA Model. What is CORBA?  The Common Object Request Broker Architecture (CORBA) allows distributed applications to interoperate.
Multithreading Allows application to split itself into multiple “threads” of execution (“threads of execution”). OS support for creating threads, terminating.
Introduction to Threads CS240 Programming in C. Introduction to Threads A thread is a path execution By default, a C/C++ program has one thread called.
Multi-Threaded Application CSNB534 Asma Shakil. Overview Software applications employ a strategy called multi- threaded programming to split tasks into.
Chapter 2 Parallel Architecture. Moore’s Law The number of transistors on a chip doubles every years. – Has been valid for over 40 years – Can’t.
1 Multiprocessor and Real-Time Scheduling Chapter 10 Real-Time scheduling will be covered in SYSC3303.
Locating Mobile Agents in Distributed Computing Environment.
1 CMSC421: Principles of Operating Systems Nilanjan Banerjee Principles of Operating Systems Acknowledgments: Some of the slides are adapted from Prof.
April 23, 2013Research in Progress Seminar MASS: A Multi-Agent Spatial Simulation Library Munehiro Fukuda, Ph.D. School of Science, Technology, Engineering,
Mehmet Can Kurt, The Ohio State University Gagan Agrawal, The Ohio State University DISC: A Domain-Interaction Based Programming Model With Support for.
The Alternative Larry Moore. 5 Nodes and Variant Input File Sizes Hadoop Alternative.
CSS 700: MASS CUDA Parallel‐Computing Library for Multi‐Agent Spatial Simulation Fall Quarter 2014 Nathaniel Hart UW Bothell Computing & Software Systems.
Distributed mega-scale Agent Management in MASS: diffusion, guarded migration, merger and termination Cherie Wasous CSS_700 Thesis – Winter 2014 (Feb.
CS307 Operating Systems Threads Fan Wu Department of Computer Science and Engineering Shanghai Jiao Tong University Spring 2011.
Group Mission and Approach To enhance Performance and Productivity in programming complex parallel applications –Performance: scalable to thousands of.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 4: Threads.
Introduction to Performance Testing Performance testing is the process of determining the speed or effectiveness of a computer, network, software program.
CSE 434: Computer Networks Project Single vs. Per Connection vs. Pooling Threading Techniques Dominic Hilsbos, Dorothy Johnson, Chris Volpe, Andy Wong,
CSS497 Undergraduate Research Performance Comparison Among Agent Teamwork, Globus and Condor By Timothy Chuang Advisor: Professor Munehiro Fukuda.
Internet Computing Module II. Syllabus Creating & Using classes in Java – Methods and Classes – Inheritance – Super Class – Method Overriding – Packages.
Distributed mega-scale Agent Management in MASS: diffusion, guarded migration, merger and termination Cherie Wasous CSS_700 Thesis – Winter 2014 (Jan.
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.
Chapter 4: Threads Modified by Dr. Neerja Mhaskar for CS 3SH3.
Introduction to threads
A New Distributed Processing Framework
MASS Java Documentation, Verification, and Testing
Chapter 4: Threads.
Processes and threads.
Thank you, chairman for the kind introduction. And hello, everyone.
March 2, 2016 UWB Shizuoka Univ. Workshop
Chapter 2 Processes and Threads Today 2.1 Processes 2.2 Threads
Java Software Structures: John Lewis & Joseph Chase
Chapter 4: Threads.
Chapter 4: Threads.
Android Topics UI Thread and Limited processing resources
Threads and Concurrency
CHAPTER 4:THreads Bashair Al-harthi OPERATING SYSTEM
Threads Chapter 5 2/17/2019 B.Ramamurthy.
Threads Chapter 5 2/23/2019 B.Ramamurthy.
Remote Procedure Call Hank Levy 1.
Chapter 4: Threads & Concurrency
Chapter 4: Threads.
Remote Procedure Call Hank Levy 1.
CSS430 Deadlocks Textbook Ch8
Agent-Based Computing CSS599 Winter 2018
Distributed Dynamic Channel Allocation in Wireless Network
Lecture 20 Parallel Programming CSE /27/2019.
Remote Procedure Call Hank Levy 1.
Presentation transcript:

Chris Rouse CSS Cooperative Education Faculty Research Internship Winter / Spring 2014

 MASS (Multi-Agent Spatial Simulation) is a library that aids in parallelization of programs  Allows users to distribute workload across multiple computers and/or CPU cores  Computers can be connected remotely or locally

 How does MASS help simulations?  MASS has the potential to: ◦ Lower resource usage ◦ Increase available resources ◦ Speed up large simulations ◦ Hide technical details of distributed setups ◦ Easier programming for non-programmers

 Two primary ways for MASS usage: ◦ As a static grid of Place objects ◦ As a static grid of Place objects with mobile Agents

 Simulates effects of heat over time

 Simulates an area with sugar stacks  Ants (Agents) move around area looking for sugar

 Two versions: ◦ Java ◦ C++  Java: ◦ More robust ◦ More thoroughly tested  C++ ◦ Less overhead

December 4 IEEE CSE 2013, Sydney8 Public static void main( String[ ] args ) { MASS.init( args ); Places space = new Places( handle, “MySpace”, params, xSize, ySize); Agents agents = new Agents( handle, “MyAgents”, params, space, population ); space.callAll( MySpace.func1, params ); space.exchangeAll( MySpace.func2, neighbors ); agents.exchangeAll( MyAgents.func3 ); agents.manageAll( ); MASS.finish( ); } func2( ) func1( ) …… func3( )

 CallAll is responsible for calling the specified method across all Agent/Place objects  Will send to remote nodes to execute in parallel  Each node will launch as many Agents as there are threads available to launch them

 ExchangeAll is used for Places to exchange data with neighbors  Update data of itself and/or neighbors  Done in parallel among nodes

 ManageAll is used when the user program wants Agents to update themselves based off flags  Agents can do up to two of the following: ◦ Each Agent can be toggled to spawn new Agents ◦ Each Agent can be toggled to kill itself ◦ Each Agent can be toggled to migrate to a new Place

 Why only two of the three?  Kill and Migrate are mutually exclusive ◦ You do not want to waste resources migrating an Agent only to kill it ◦ Once an Agent has been killed, there is no longer any Agent to migrate

 Once a ManageAll finishes checking its flags, it needs to handle migration requests ◦ Agent Message Packing and sending ◦ Upon finishing sending, or if none to send, must check for incoming Agent messages ◦ Incoming messages are unpacked and their Agent will be placed in the destination location

 Additional, more in-depth testing is currently taking place ◦ CSS 534 is test running the code in a homework assignment  Another student is working on performance comparisons

 With the C++ MASS library in place, there are many opportunities for future students: ◦ Many of the Java MASS methods have yet to be adopted ◦ Further testing and debugging of the library ◦ Automated unit testing

 From this project, I was able to work with technology I was unfamiliar with, in an environment I was new to  This allowed for me to gain experience similar to a new work environment  I was shown many new techniques and ways of thinking while working with professor Fukuda