Parallel Programming Fundamentals

Slides:



Advertisements
Similar presentations
Automatic Data Movement and Computation Mapping for Multi-level Parallel Architectures with Explicitly Managed Memories Muthu Baskaran 1 Uday Bondhugula.
Advertisements

Desktop, Mobile & Web Based GIS/ Collaborative GIS
2 pt 3 pt 4 pt 5pt 1 pt 2 pt 3 pt 4 pt 5 pt 1 pt 2pt 3 pt 4pt 5 pt 1 pt 2 pt 3 pt 4pt 5 pt 1pt Basic Computer WORD SPREAD- SHEETS TELECOM- MUNICATIONS.
“FENDER” AUTOMATIC MEMORY FENCE INFERENCE Presented by Michael Kuperstein, Technion Joint work with Martin Vechev and Eran Yahav, IBM Research 1.
Matching Memory Access Patterns and Data Placement for NUMA Systems Zoltán Majó Thomas R. Gross Computer Science Department ETH Zurich, Switzerland.
Raster Based GIS Analysis
GIS: The Grand Unifying Technology. Introduction to GIS  What is GIS?  Why GIS?  Contributing Disciplines  Applications of GIS  GIS functions  Information.
Reference: Message Passing Fundamentals.
Page 1 CS Department Parallel Design of JPEG2000 Image Compression Xiuzhen Huang CS Department UC Santa Barbara April 30th, 2003.
GUS: 0265 Fundamentals of GIS Lecture Presentation 4: Raster Data Model and Operations Jeremy Mennis Department of Geography and Urban Studies Temple University.
Mission Geography Linking to the Curriculum. What is Mission Geography? How can Mission Geography help anchor ISSEarthKAM to the curriculum? What are.
Chapter 13 Finite Difference Methods: Outline Solving ordinary and partial differential equations Finite difference methods (FDM) vs Finite Element Methods.
Introduction to the course January 9, Points to Cover  What is GIS?  GIS and Geographic Information Science  Components of GIS Spatial data.
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING Automatic Posing of a Meshed Human Model Using Point Clouds Lei Wang Joint work with Tamal K. Dey, Huamin.
A Bridge to Your First Computer Science Course Prof. H.E. Dunsmore Concurrent Programming Threads Synchronization.
1 Babak Behzad, Yan Liu 1,2,4, Eric Shook 1,2, Michael P. Finn 5, David M. Mattli 5 and Shaowen Wang 1,2,3,4 Babak Behzad 1,3, Yan Liu 1,2,4, Eric Shook.
Towards a Contract-based Fault-tolerant Scheduling Framework for Distributed Real-time Systems Abhilash Thekkilakattil, Huseyin Aysan and Sasikumar Punnekkat.
Definitions. Cell: Cell: Space in the intersection of a column (vertical division) and a row (horizontal division). Row: Row: A row runs horizontally.
Small-Scale Raster Map Projection Transformation Using a Virtual System to Interactively Share Computing Resources and Data U.S. Department of the Interior.
Intro to Raster GIS GTECH361 Lecture 11. CELL ROW COLUMN.
1 Kalev Leetaru, Eric Shook, and Shaowen Wang CyberInfrastructure and Geospatial Information Laboratory (CIGI) Department of Geography and Geographic Information.
Data Storage & Editing GEOG370 Instructor: Christine Erlien.
Department of Computer Science, Johns Hopkins University Lecture 7 Finding Concurrency EN /420 Instructor: Randal Burns 26 February 2014.
Multi-Grid Esteban Pauli 4/25/06. Overview Problem Description Problem Description Implementation Implementation –Shared Memory –Distributed Memory –Other.
Black and White Introduction to Cyberinfrastructure Eric Shook Department of Geography Kent State University.
Parallel Programming Models EECC 756 David D. McGann 18 May, 1999.
Arduino Programming Part 7: Flow charts and Top-down design ME 121 Gerald Recktenwald Portland State University
Application of Design Patterns to Geometric Decompositions V. Balaji, Thomas L. Clune, Robert W. Numrich and Brice T. Womack.
A Basic Computer System
Lab 08: SR Flip Flop Fundamentals:
Geographical Information Systems
User-Written Functions
High Altitude Low Opening?
Optimizing Parallel Algorithms for All Pairs Similarity Search
Eric Shook Department of Geography Kent State University
Remote Sensing ET Online Tool Ted W. Sammis1, Junming Wang1, Vince P
Parallel Programming By J. H. Wang May 2, 2017.
Parallel Programming Patterns
CS 584 Lecture 3 How is the assignment going?.
ECE 353 Lab 3 Pipeline Simulator
Implementing Simplified Molecular Dynamics Simulation in Different Parallel Paradigms Chao Mei April 27th, 2006 CS498LVK.
Model Functions Input x 6 = Output Input x 3 = Output
PipeDream: Pipeline Parallelism for DNN Training
Variables and Arithmetic Operations
Algorithm Design.
Lecture 6: Advanced Pipelines
P A R A L L E L C O M P U T I N G L A B O R A T O R Y
Enterprise Architecture Patterns
Midterm FAQs You will be given an image of an Excel workbook and an associated problem set You will then answer the questions based on the problem set.
Chapter 5: Computer Systems Organization
CS 584 Lecture7 Assignment -- Due Now! Paper Review is due next week.

High Performance Computing
Parallelism and Amdahl's Law
Deadlock Detection for Distributed Process Networks
Work out (if you can, simplify your answer) 8 6.
Interrelations among scientific fields and their relative influences
Department of Computer Science, University of Tennessee, Knoxville
A connectionist model in action
Cartographic Modeling
Summary Inf-2202 Concurrent and Data-Intensive Programming Fall 2016
Canonical Computation without Canonical Data Structure
Be able to expand brackets and simplify the expressions that arise
Documenting Accounting Information Systems
COMPUTER ORGANIZATION AND ARCHITECTURE
Design.
Be able to expand brackets and simplify the expressions that arise
Recursive Implementation of Anisotropic Filtering
Parallel Exact Stochastic Simulation in Biochemical Systems
Spatial Analysis with Raster Datasets-1
Presentation transcript:

Parallel Programming Fundamentals Eric Shook Department of Geography Kent State University

Our Parallel Programming Focus Shared Memory with Data Parallelism Processing Core Processing Core 1 Processing Core Processing Core 1 Task A Task A Data (Half) [40.742, -74.245] Data (Half) Task B Task B Memory space is shared between processing core 0 and 1 Data (Half) Data (Half)

Local Operations: Starting off Easy LocalSum Input Layers + Decomposition Subdomains Processing Core Processing Core 1 Parallel Processing + + Output Layer

Non-Local Operations: FocalMean Example Input Layer 1 2 2 Decomposition = 2 2 3 2 3 2 1 Subdomains Processing Core Processing Core 1 Parallel Processing

+ Edge Cases = 2 FocalMean Edge case (literally) causes a problem The bottom row of cells on the left (core 0) and the top row of cells on the right (core 1) do not have all the data they need for processing (missing data). FocalMean Input Layer Input Layers + 1 2 2 Decomposition Decomposition = 2 2 3 2 3 2 1 Subdomains Subdomains Processing Core Processing Core 1 Processing Core Missing Processing Core 1 Missing Parallel Processing

Ghost Zones "Ghost zones surround a local computing environment as proxies for communicating with remote processors and, thus, simplify the handling of inter-processor communication" (Shook, et al. 2013) Local Copy 1 2 2 = 2 2 3 2 3 2 1 Local Copy Ghost zones can be expanded to handle zonal and global operations too Shook, E., Wang, S., & Tang, W. (2013). A communication-aware framework for parallel spatially explicit agent-based models. International Journal of Geographical Information Science, 27(11), 2160-2181.

Data Dependencies How much water accumulates at the bottom of the hill? Answering this question depends on: What is up hill (spatial dependency) How long it has been raining (temporal dependency) Ghost zones help to resolve spatial dependencies in parallel programs Procedures in cartographic modeling help to resolve temporal dependencies

Data Hazards Data dependencies may lead to data hazards Read After Write (RAW) Write After Read (WAR) Write After Write (WAW) Core 0 X = 2 + 2 X = X + 2 X = X + 4 10 (Correct) Core 0 Core1 X = 2 + 2 X = X + 2 X = X + 4 RAW error Core 0 Core1 X = 2 + 2 X = X + 4 X = X + 2 X = 8 (WAR) Core 0 Core1 X = 2 + 2 X = X + 4 X = X + 2 X = 6 (WAW) Not defined

PCML – Automatic Parallelization PCML supports automatic parallelization so developers do not have to worry about all the details of parallelism Each location in a layer is decomposed and assigned to a single subdomain. So as long as developers: Only write to the location that is being processed, then they will avoid data hazards Properly define ghost zones, then all spatial dependencies will be satisfied Properly create procedures and operations, then all temporal dependencies will be satisfied