Parallelization: Conway’s Game of Life. Cellular automata: Important for science Biology – Mapping brain tumor growth Ecology – Interactions of species.

Slides:



Advertisements
Similar presentations
Parallel Processing with OpenMP
Advertisements

Distributed Systems CS
Program Analysis and Tuning The German High Performance Computing Centre for Climate and Earth System Research Panagiotis Adamidis.
Class CS 775/875, Spring 2011 Amit H. Kumar, OCCS Old Dominion University.
A Dynamic World, what can Grids do for Multi-Core computing? Daniel Goodman, Anne Trefethen and Douglas Creager
Thoughts on Shared Caches Jeff Odom University of Maryland.
1 Chapter 1 Why Parallel Computing? An Introduction to Parallel Programming Peter Pacheco.
Cellular Automata (Reading: Chapter 10, Complexity: A Guided Tour)
Parallel Computing Overview CS 524 – High-Performance Computing.
CELLULAR AUTOMATA Derek Karssenberg, Utrecht University, the Netherlands LIFE (Conway)
Introduction to Scientific Computing on Linux Clusters Doug Sondak Linux Clusters and Tiled Display Walls July 30 – August 1, 2002.
Arquitectura de Sistemas Paralelos e Distribuídos Paulo Marques Dep. Eng. Informática – Universidade de Coimbra Ago/ Machine.
CS305j Introduction to Computing Two Dimensional Arrays 1 Topic 22 Two Dimensional Arrays "Computer Science is a science of abstraction -creating the right.
Cellular Automata Orit Moskovich
Mapping Techniques for Load Balancing
The hybird approach to programming clusters of multi-core architetures.
Cellular Automata Avi Swartz 2015 UNC Awards Ceremony.
Nawaf M Albadia Introduction. Components. Behavior & Characteristics. Classes & Rules. Grid Dimensions. Evolving Cellular Automata using Genetic.
General Purpose 3D Cellular Automata Modeller. A Regular Lattice of Cells, each obeying the same set of rules Simple rules for individual cells can produce.
Introduction Computational Challenges Serial Solutions Distributed Memory Solution Shared Memory Solution Parallel Analysis Conclusion Introduction: 
Introduction to Symmetric Multiprocessors Süha TUNA Bilişim Enstitüsü UHeM Yaz Çalıştayı
Jawwad A Shamsi Nouman Durrani Nadeem Kafi Systems Research Laboratories, FAST National University of Computer and Emerging Sciences, Karachi Novelties.
Reference: / Parallel Programming Paradigm Yeni Herdiyeni Dept of Computer Science, IPB.
Parallel Processing LAB NO 1.
Chapter 14: Artificial Intelligence Invitation to Computer Science, C++ Version, Third Edition.
LIGO-G Z 8 June 2001L.S.Finn/LDAS Camp1 How to think about parallel programming.
Multiscale Modelling Mateusz Sitko
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
Parallel Programming Models Jihad El-Sana These slides are based on the book: Introduction to Parallel Computing, Blaise Barney, Lawrence Livermore National.
Lecture 8 – Stencil Pattern Stencil Pattern Parallel Computing CIS 410/510 Department of Computer and Information Science.
Lappeenranta University of Technology / JP CT30A7001 Concurrent and Parallel Computing Introduction to concurrent and parallel computing.
Lukasz Grzegorz Maciak Micheal Alexis
Governor’s School for the Sciences Mathematics Day 13.
CS 484 – Artificial Intelligence1 Announcements Lab 4 due today, November 8 Homework 8 due Tuesday, November 13 ½ to 1 page description of final project.
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.
Parallelization: Area Under a Curve. AUC: An important task in science Neuroscience – Endocrine levels in the body over time Economics – Discounting:
Introduction, background, jargon Jakub Yaghob. Literature T.G.Mattson, B.A.Sanders, B.L.Massingill: Patterns for Parallel Programming, Addison- Wesley,
The Game of Life A simulation of "life". From simple rules, complex behavior arises Rules –A cell that is alive and has fewer than two live neighbors dies.
Introduction to Lattice Simulations. Cellular Automata What are Cellular Automata or CA? A cellular automata is a discrete model used to study a range.
Playing God: The Engineering of Functional Designs in the Game of Life Liban Mohamed Computer Systems Research Lab
Cellular Automata Spatio-Temporal Information for Society Münster, 2014.
CELLULAR AUTOMATA A Presentation By CSC. OUTLINE History One Dimension CA Two Dimension CA Totalistic CA & Conway’s Game of Life Classification of CA.
Trust Propagation using Cellular Automata for UbiComp 28 th May 2004 —————— Dr. David Llewellyn-Jones, Prof. Madjid Merabti, Dr. Qi Shi, Dr. Bob Askwith.
The Game of Life Erik Amelia Amy. What is the “Game of Life?” The “Game of Life” (often referred to as Life) is not your typical game. There are no actual.
A Variation on Conway’s Game of Life Winston Lee EPS 109.
ATmospheric, Meteorological, and Environmental Technologies RAMS Parallel Processing Techniques.
Cellular Automata Introduction  Cellular Automata originally devised in the late 1940s by Stan Ulam (a mathematician) and John von Neumann.  Originally.
Slide-1 Multicore Theory MIT Lincoln Laboratory Theory of Multicore Algorithms Jeremy Kepner and Nadya Bliss MIT Lincoln Laboratory HPEC 2008 This work.
Intro to Life32. 1)Zoom to 10 That will allow you to see the grid and individual cells.
A Pattern Language for Parallel Programming Beverly Sanders University of Florida.
Scaling Conway’s Game of Life. Why do parallelism? Speedup – solve a problem faster. Accuracy – solve a problem better. Scaling – solve a bigger problem.
HParC language. Background Shared memory level –Multiple separated shared memory spaces Message passing level-1 –Fast level of k separate message passing.
1/50 University of Turkish Aeronautical Association Computer Engineering Department Ceng 541 Introduction to Parallel Computing Dr. Tansel Dökeroğlu
Computer Science and Engineering Parallel and Distributed Processing CSE 8380 April 28, 2005 Session 29.
INTRODUCTION TO HIGH PERFORMANCE COMPUTING AND TERMINOLOGY.
Introduction to Parallel Computing: MPI, OpenMP and Hybrid Programming
Chaotic Behavior - Cellular automata
The University of Adelaide, School of Computer Science
Illustrations of Simple Cellular Automata
NGS computation services: APIs and Parallel Jobs
Team 1 Aakanksha Gupta, Solomon Walker, Guanghong Wang
CMAQ PARALLEL PERFORMANCE WITH MPI AND OpenMP George Delic, Ph
Artificial Intelligence
Alexei Fedorov January, 2011
Cellular Automata.
Spatio-temporal information in society: cellular automata
Hybrid Programming with OpenMP and MPI
Dr. Tansel Dökeroğlu University of Turkish Aeronautical Association Computer Engineering Department Ceng 442 Introduction to Parallel.
Excursions into Logic Based Computation using Conway’s Game of Life
The Engineering of Functional Designs in the Game of Life
Presentation transcript:

Parallelization: Conway’s Game of Life

Cellular automata: Important for science Biology – Mapping brain tumor growth Ecology – Interactions of species competing for resources Cognitive science, hydrodynamics, dermatology, chemistry, environmental science, agriculture, operational research, and many others

Cellular automaton Has a grid of cells Performs functions automatically Exhibits chaotic behavior – initial set of conditions produces random result after certain number of time steps

Neighborhoods Von Neumann Moore

Toroidal grid

Conway’s Game of Life 2 cell states: ALIVE and DEAD 4 rules: – If a cell has fewer than 2 ALIVE neighbors, it will be DEAD in the next time step – If an ALIVE cell has 2 or 3 ALIVE neighbors, it will be ALIVE in the next time step – If a cell has more than 3 ALIVE neighbors, it will be DEAD in the next time step – If a DEAD cell has 3 ALIVE neighbors, it will be ALIVE in the next time step

How do we simulate? Small board: with pencil and paper Beyond a small board: single computer Even bigger: parallel processing Bigger and bigger: cluster computer

Parallelism Concurrency (doing things at the same time) Multiple flows of execution (virtual entities that perform computations) working on the same problem Distributed Memory Shared Memory Hybrid

Flows of execution Processes – Distributed memory – Must communicate (message passing) Threads – Shared memory Processes with threads – Hybrid

Parallel hardware Multiple cores on a single compute node – Shared memory Multiple compute nodes sharing a network – Distributed memory Multiple compute nodes with multiple cores sharing a network – Hybrid

What are some standards? Message Passing Interface (MPI) – distributed memory/message passing OpenMP – shared memory MPI/OpenMP - hybrid

How to approach the parallel algorithm State clearly the goal of the algorithm Use the goal to determine the algorithm’s data structures Identify the data that will be contained within the data structures and parallelized Determine load balancing Determine the parallel tasks that are performed on the data – draw pictures and write descriptions Determine message passing Create a written representation of values needed for the parallel tasks Develop pseudo-code for the algorithm

Considerations Assume hybrid parallelism – Distributed memory, shared memory, or serial can be refined from hybrid Hybrid on 1 thread per process is just distributed memory Hybrid on 1 process is just shared memory Hybrid on 1 thread and 1 process is just serial The entire code is executed by each process Threads only execute code for which they are spawned

What is the goal of the algorithm? A grid of cells is updated at each time step for some number of time steps based on the rules of Conway’s Game of Life.

What are the algorithm’s data structures? A grid of cells is updated at each time step for some number of time steps based on the rules of Conway’s Game of Life.

What are the algorithm’s data structures?

What data is parallelized? Each process receives a certain number of rows Each thread receives a certain number of columns

How is the load balanced?

What are the parallel tasks?

What message passing occurs?

What values are needed for the parallel tasks?

MPI functions

OpenMP construct