Agent-Based Computing CSS599 Winter 2018 Munehiro Fukuda, Ph.D. Computing & Software Systems University of Washington Bothell January 24, 2017 CSS599 Talk
Outline Software agents Research Topic 1 Research Topic 2 Agent-Based Models Research Topic 2 Agent-Based Big Data Analysis Student Projects Past students achievements Current student projects Expected activities January 24, 2017 CSS599 Talk
Software Agents Cognitive Agents Reactive Agents Our focus coarse-grain execution entities that achieve network-administrative and computation-intensive task, based on their behavioral intelligence fine-grain entities, each reacting to its environment with simple rules. Our focus January 24, 2017 CSS599 Talk
Topic 1 Agent-Based Simulation January 24, 2017 CSS599 Talk
Macro- versus Micro-Simulation Top-down versus Bottom-up Approach Macroscopic/Top-down Microscopic/Bottom-up Mathematical models Schroedinger eq. (for wave) Euler eq. (for fluid dynamics) Easy verification Mathematical verification Easy access to public data (e.g. traffic flow) Inaccurate enough No support of object-interaction Difficulty in parallelization Space partition/mapping etc. Focus on an emergent, collective group behavior of many objects Molecular level Pedestrian/vehicle level Difficulty verification Calibration required Fewer real data available to the public (e.g. congestion at a traffic light) Scalable computation required Easy parallelization No partition required (yet object-CPU mapping needed) January 24, 2017 CSS599 Talk
Molecular Dynamics Conventional Top-down Approach for ( int i = 0; i < N; i++ ) for ( int j = 0; j < I; j++ ) if ( sqrt( pow( x[i] – x[j], 2.0 ) + pow( y[i] – y[j], 2.0 ) ) < forceCutoff ) { ax[i] += fOver2 * ( x[i] – x[j] ); ax[j] -= fOver2 * ( x[i] – x[j] ); ay[i] += fOver2 * ( y[i] – y[j] ); ay[i] += fOver2 * ( y[i] – y[j] ); } i = molecular_range_begin[rank]; i < molecular_range_end[rank]; i++ ) MPI_Allreduce( ax, tmp_ax, N, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); MPI_Allreduce( ay, tmp_ay, N, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); computer 0 computer 1 Computer 2 January 24, 2017 CSS599 Talk
Molecular Dynamics Agent-based bottom-up Approach Each agent: compute( int t ) { for ( Agent neighbor : place.agents ){ my_ax += fOver2 * ( my.x – neighbor.x ); my_ay += fOver2 * ( my.y – neighbor.y ); } Agent-Based Computing Middleware computer 0 computer 1 Computer 2 January 24, 2017 CSS599 Talk
Multi-Agent Spatial Simulation January 24, 2017 CSS599 Talk
MASS Specification January 24, 2017 CSS599 Talk 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( ); } func1( ) … func2( ) func3( ) January 24, 2017 CSS599 Talk
Implementation Status The latest status is given at: http://depts.washington.edu/dslab/MASS/index.html MASS Java Intended for agent-based big data. MASS C++ Intended for agent-based models. MASS GPU In progress Debugger Available for MASS Java and C++ versions Availability Pilot used in CSS534 summer 2012, winter 2015, and autumn 2016 Java and C++ versions arealdy released to publicly https://bitbucket.org/mass_library_developers/ https://bitbucket.org/mass_application_developers/ January 24, 2017 CSS599 Talk
Agent-Based Models in Other Desciplines Biology/Ecology Immune system simulation Epidemic simulation Neural network simulation City Planning Transport simulation Electrical grid Social, Behavioral, and Economic Sciences Ambient intelligence Social network Economic crisis simulation start goal 45 minutes January 24, 2017 CSS599 Talk
Agent-Based Transport Simulation Parallelized by Zach Ma and presented at WSC2015 Road network converted to an adjacency list Programmability LoC Files Original MatSim 5,144 46 Code addition/modification by MASS 585 8 % 11.3% 17.4% Execution performance Vehicle drives converted to agent migration January 24, 2017 CSS599 Talk
Collision-Free Agent Migration Presented at FedCSIS/JAWS 2017 Sequential migration Upper-left agents have a higher priority than lower-right agents. Parallel migration All agents can migrate at once. We need some prioritization. MATSim Traffic simulation Greedy parallel migration Location-ordered migration Direction-ordered migration Sequential migration collision another direction Distributed termination detection required 5 ordered migrations 4 ordered migration direction January 24, 2017 CSS599 Talk
Our Future Goals Investigating what parallel-programming features attract scientists who are not necessarily computing specialists: Parallelizing ABM applications of our collaborators. Developing benchmark testsets that cover various agent behaviors. January 24, 2017 CSS599 Talk
Topic 2 Agent-Based Data Analysis January 24, 2017 CSS599 Talk
Topic 2: Agent-Based Big Data How different from conventional approach when counting triangles in a graph for example MapReduce, Spark, and Storm Agent-based Big Data Analytics stay passive to receive data. All data must be examined. Data must be flattend to feed. Analytics actively move over data. Only necessary portion of data can be examined. Data can maintain its structure. Code is written from the driver’s viewpoint. (1,2), (2,1), (2,3), (3,2), (2,4), (4,2), (2,5), (5,2), (3,4), (4,3), (4,5), (5,4) (1, [2]), (2, [1,3,4,5]), (3, [2,4]), (4, [2,3,5]), (5, [2,4]) 1 [(1,2), -], [(1,3), 2], [(2,3), -], [(2,3), 4], [(2,4), -], [(2,4),3], [(2,4), 5], [(2,5), 4], … 2 5 (2,3) [-,4] (2,3,4), (2,4) [-,3,5] -> (2,4,3), (2,4,5)… (2,3,4), (2,3,4), (2,3,4), (2,4,5), (2,4,5).. (2,3,4), (2,4,5) 3 4 January 24, 2017 CSS599 Talk
Our Target Applications Injecting a group of agents into big data Scientific Computing Climate analysis Prof. Kim’s biological network motif search Data Sciences / Machine Learning K-means clustering K-nearest neighbors GIS/Spatial Data Analysis (represeted by graph problems) Shortest path Chinese postman problem Triangle counting page ranking n1(0.1) n4(0.2) n5(0.383) n3(0.183) n2(0.133) January 24, 2017 CSS599 Talk
Climate Analysis parallelized by Jason Woodring and presented at ICDCS 2017 Detect time of emergence The biggest overhead is reading files into a cluster system January 24, 2017 CSS599 Talk
Biological Network Motif Search with Prof Biological Network Motif Search with Prof. Wooyoung Kim and Presented at HCPP 2015 and BDCloud 2016 A A A R agent spawn request Agent explosion 400,000-node network with motif size 5 5.5 million agents Needs to address Memory allocation overheads Agent management overheads Controlling agent population Don’t spawn too many agents. In Java, Size of each agent = 1M Size of serialized agent = 300B R A R R R R January 24, 2017 CSS599 Talk
Agent-based Clustering Single Clustering Algorithm Batch Clustering Algorithm K-means K-means + Biologically-Inspired Algorithms X X X A Space of Potential Cluster Centroid Sets C1 X X X agent [c1, c2, c3] X X X X X X X X X X swarm X X X X C2 X X X X X X X X C3 X X X X X January 24, 2017 CSS599 Talk
Agent-based K-Nearest Neighbors milliseconds X X X # data items / place (size * size) Sequential MASS Java 100,000 / 1,000 * 1,000 84 92 160,000 / 4,000 * 4,000 138 282 490,000 / 7,000 * 7,000 236 589 X X X T=5 K = 7 X T=4 X X X X X T=3 X X X X T=2 ? X X X T=1 X X X MASS Places size: 100 * 100 400 * 400 700 * 700 So that each place may have 1 or 2 data items. X X X X X X X X X X X Problem: An agent must be spawned by another agent but not any place. This in turn means that we need to populate an agent at each place at the beginning, which is a big overhead. January 24, 2017 CSS599 Talk
Past Student Research Outcome (gradudate students in red and undergraduate students in blue, listed below) Christopher Bowzer, Benjamin Phan, Kasey Cohen, Munehrio Fukuda, Collision-Free Agent Migration in Spatial Simulation, In Proc. of the Joint Agent-oriented Workshops in Synergy JAWS, Prague, Czech Republic, September 3-6, 2017 Jason Woodring, Matthew Sell, Munehiro Fukuda, Hazeline Asuncion, Eric Salathe, A Multi-Agent Parallel Approach to Analyzing Large Climate Data Sets, The 37th IEEE International Conference on Distributed Computing Systems, pages 1639-1648, Atlanta, GA, June 5-8, 2017 Andrew Andersen, Wooyoung Kim, and Munehiro Fukuda, MASS-based NemoProfile Construction for an Efficient Network Motif Search, 2016 Big Data and Cloud Computing – BDCloud’16, October 8-10, 2016 Zhiyuan Ma, Munehiro Fukuda, A Multi-Agent Spatial Simulation Library for Parallelizing Transport Simulation, the 2015 Winter Simulation Conference - WSC 2015, Newport Beach, December 6-9, 2015 Bhargav Mistry, Munehiro Fukuda, Dynamic Load Balancing in Multi-Agent Spatial Simulation, submitted to 2015 IEEE Pacific Rim Conference on Communications, Computers and Signal Processing - PACRIM’15, Victoria, BC, Canada, August 24-26, 2015 – Best Paper Award Matthew Kipps, Wooyoung Kim, Munehiro Fukuda, Agent and Spatial Based Parallelization of Biological Network Motif Search, submitted to 17th IEEE Int’l Conference on High Performance and Communication, New York, August 24-26, 2015 Brett Yasutake, Niko Simonson, Jason Woodring, Nathan Duncan, William Pfeffer, Hazeline Asuncion, Munehiro Fukuda, Eric Salathe, Supporting Provenance in Climate Science Research, In Proc. of 7th International Conference on Information, Process, and Knowledge Management, eKnow 2015, Lisbon, Portugal, February 22-27, 2015 – Best Paper Award Timothy Chuang, Munehiro Fukuda, A Parallel Multi-Agent Spatial Simulation Environment for Cluster Systems, In Proc. of the 16th IEEE International Conference on Computational Science and Engineering - CSE 2013, pages 143-150, Sydney, Australia, December 3-5, 2013 Somu Jabayalan, Munehiro Fukuda, Field-Based Job Dispatch and Migration, In Proc. of 2013 IEEE Pacific Rim Conference on Communications, Computers and Signal Processing - PACRIM'13, pages 52-57, Victoria, BC, Canada, August 27-29, 2013 January 24, 2017 CSS599 Talk
Thesis/Capstone Projects Multi-Agent Simulations Agent-Based Data Analysis Applications Benchmarking MASS-C++ benchmarking (Craig Shih) MASS-GPU benchmarking Clustering, KNN, Graph Algorithms (Collin Gordon) System Design Implementation MASS-GPU version (Lisa Kosiachenko) CPU/GPU Hybrid Architecture Parallel I/O Parallel I/O (Jas Shih) Agent Management Programmability/Usability Auto-description of agent behavior (using Agent-derived classes) GUI to code generation and result visualization from simulation viewpoint Auto-description of agent behavior (using Java annotation) (Matt Sell) GUI to code generation and result visualization from data science viewpoint Future projects in blue January 24, 2017 CSS599 Talk
Agent-Based Clustering: Collin Gordon Use MASS to perform clustering on data points Variant 1 Single Clustering: Uses Agents and Places to compute one set of clusters for a given data set. Example: Call the Ball Algorithm (in progress) Variant 2 Batch Clustering: Uses Agents and Places to compute multiple sets of clusters for a given data set. Example: Best Tool Algorithm (completed) Currently targeting PAAMS, MAS&S, and IEEE for paper submissions. Questions? Email me at colntrev@gmail.com! January 24, 2017 Collin Gordon
Code and Execution January 24, 2017 Collin Gordon
MASS CUDA Lisa Kosiachenko GPU programming model Single Instruction Multiple Thread (SIMT) parallel programming model GPU has many more arithmetic logical units than CPU (on NVIDIA GeForce GTX TITAN Black – 2880 cores in total) January 24, 2017 Lisa Kosiachenko
MASS Current Development Optimization of speed Implementing new features (dynamic agents) January 24, 2017 Lisa Kosiachenko
MASS CUDA Optimization: Utilizing GPU Memory Architecture Fast (visible to a block of threads) Very fast (visible to 1 thread) Slow Slow Fast (read-only) Fast (read-only) January 24, 2017 Lisa Kosiachenko
Expected Activities Research Group Meetings Weekly status report to your lab mates Quarterly research presentation Optional Individual Meetings Weekly progress discussions, code reviews, etc. with the professor, (i.e., me). Programming/Installation We are a product-oriented group. You need to code something or install something useful to manage our projects Publications I recommend you to coauthor conference/journal papers. January 24, 2017 CSS599 Talk
Questions? Please check: http://depts.washington.edu/dslab/ January 24, 2017 CSS599 Talk