Summary Background Introduction in algorithms and applications

Slides:



Advertisements
Similar presentations
Distributed Systems CS
Advertisements

SLA-Oriented Resource Provisioning for Cloud Computing
Master/Slave Architecture Pattern Source: Pattern-Oriented Software Architecture, Vol. 1, Buschmann, et al.
Course Outline Introduction in algorithms and applications Parallel machines and architectures Overview of parallel machines, trends in top-500 Cluster.
Summary Background –Why do we need parallel processing? Applications Introduction in algorithms and applications –Methodology to develop efficient parallel.
Parallel Programming Henri Bal Rob van Nieuwpoort Vrije Universiteit Amsterdam Faculty of Sciences.
Parallel Programming Henri Bal Vrije Universiteit Faculty of Sciences Amsterdam.
Multiprocessors CSE 471 Aut 011 Multiprocessors - Flynn’s Taxonomy (1966) Single Instruction stream, Single Data stream (SISD) –Conventional uniprocessor.
High Performance Fortran (HPF) Source: Chapter 7 of "Designing and building parallel programs“ (Ian Foster, 1995)
Diffusion scheduling in multiagent computing system MotivationArchitectureAlgorithmsExamplesDynamics Robert Schaefer, AGH University of Science and Technology,
OPL: Our Pattern Language. Background Design Patterns: Elements of Reusable Object-Oriented Software o Introduced patterns o Very influential book Pattern.
Parallel Programming Henri Bal Vrije Universiteit Amsterdam Faculty of Sciences.
A Framework for Collective Personalized Communication Laxmikant V. Kale, Sameer Kumar, Krishnan Varadarajan.
Word Wide Cache Distributed Caching for the Distributed Enterprise.
Lecture 29 Fall 2006 Lecture 29: Parallel Programming Overview.
Lecture 4: Parallel Programming Models. Parallel Programming Models Parallel Programming Models: Data parallelism / Task parallelism Explicit parallelism.
Course Outline Introduction in software and applications. Parallel machines and architectures –Overview of parallel machines –Cluster computers (Myrinet)
 What is an operating system? What is an operating system?  Where does the OS fit in? Where does the OS fit in?  Services provided by an OS Services.
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
Designing and Evaluating Parallel Programs Anda Iamnitchi Federated Distributed Systems Fall 2006 Textbook (on line): Designing and Building Parallel Programs.
Course Outline Introduction in algorithms and applications Parallel machines and architectures Overview of parallel machines, trends in top-500, clusters,
STRATEGIC NAMING: MULTI-THREADED ALGORITHM (Ch 27, Cormen et al.) Parallelization Four types of computing: –Instruction (single, multiple) per clock cycle.
Uncovering the Multicore Processor Bottlenecks Server Design Summit Shay Gal-On Director of Technology, EEMBC.
Sogang University Advanced Computing System Chap 1. Computer Architecture Hyuk-Jun Lee, PhD Dept. of Computer Science and Engineering Sogang University.
Introduction, background, jargon Jakub Yaghob. Literature T.G.Mattson, B.A.Sanders, B.L.Massingill: Patterns for Parallel Programming, Addison- Wesley,
Performance Model & Tools Summary Hung-Hsun Su UPC Group, HCS lab 2/5/2004.
Multiprocessing. Going Multi-core Helps Energy Efficiency William Holt, HOT Chips 2005 Adapted from UC Berkeley "The Beauty and Joy of Computing"
Parallel Processing Steve Terpe CS 147. Overview What is Parallel Processing What is Parallel Processing Parallel Processing in Nature Parallel Processing.
High Performance Fortran (HPF) Source: Chapter 7 of "Designing and building parallel programs“ (Ian Foster, 1995)
Summary Background –Why do we need parallel processing? Moore’s law. Applications. Introduction in algorithms and applications –Methodology to develop.
CS- 492 : Distributed system & Parallel Processing Lecture 7: Sun: 15/5/1435 Foundations of designing parallel algorithms and shared memory models Lecturer/
3/12/2013Computer Engg, IIT(BHU)1 INTRODUCTION-1.
Computer Science and Engineering Parallel and Distributed Processing CSE 8380 April 28, 2005 Session 29.
INTRODUCTION TO HIGH PERFORMANCE COMPUTING AND TERMINOLOGY.
Parallel programs Inf-2202 Concurrent and Data-intensive Programming Fall 2016 Lars Ailo Bongo
These slides are based on the book:
CS203 – Advanced Computer Architecture
Auburn University COMP8330/7330/7336 Advanced Parallel and Distributed Computing Parallel Hardware Dr. Xiao Qin Auburn.
CSCI206 - Computer Organization & Programming
Lecture 2: Performance Evaluation
Introduction to Parallel Computing: MPI, OpenMP and Hybrid Programming
Big Data A Quick Review on Analytical Tools
GdX - Grid eXplorer parXXL: A Fine Grained Development Environment on Coarse Grained Architectures PARA 2006 – UMEǺ Jens Gustedt - Stéphane Vialle - Amelia.
Course Outline Introduction in algorithms and applications
Parallel Programming By J. H. Wang May 2, 2017.
Parallel Algorithm Design
Introduction to Parallelism.
University of Technology
Performance Evaluation of Adaptive MPI
Implementing Simplified Molecular Dynamics Simulation in Different Parallel Paradigms Chao Mei April 27th, 2006 CS498LVK.
Chapter 16: Distributed System Structures
EE 193: Parallel Computing
Multi-Processing in High Performance Computer Architecture:
CMAQ PARALLEL PERFORMANCE WITH MPI AND OpenMP George Delic, Ph
Algorithm Design.
Lecture 7: Introduction to Distributed Computing.
CSCI206 - Computer Organization & Programming
Guoliang Chen Parallel Computing Guoliang Chen
Data Structures and Algorithms in Parallel Computing
Course Outline Introduction in algorithms and applications
Distributed Systems CS
Hybrid Programming with OpenMP and MPI
COMP60621 Fundamentals of Parallel and Distributed Systems
MPJ: A Java-based Parallel Computing System
Chapter 4 Multiprocessors
Introduction, background, jargon
Vrije Universiteit Amsterdam
Parallel Programming in C with MPI and OpenMP
COMP60611 Fundamentals of Parallel and Distributed Systems
Support for Adaptivity in ARMCI Using Migratable Objects
Presentation transcript:

Summary Background Introduction in algorithms and applications Why do we need parallel processing? Moore’s law. Applications. Introduction in algorithms and applications Methodology to develop efficient parallel (distributed-memory) algorithms  Understand various forms of overhead (communication, load imbalance, search overhead, synchronization) Understand various distributions (blockwise, cyclic) Understand various load balancing strategies (static, dynamic master/worker model) Understand correctness problems (e.g. message ordering)

Summary Parallel machines and architectures Processor organizations, topologies, criteria Types of parallel machines arrays/vectors, shared-memory, distributed memory Routing Flynn’s taxonomy What are cluster computers? What networks do real machines (like the Blue Gene) use? Speedup, efficiency (+ their implications), Amdahl’s law

Summary Programming methods, languages, and environments Different forms of message passing naming, explicit/implicit receive, synchronous/asynchronous sending Select statement SR primitives (not syntax) MPI: message passing primitives, collective communication   Java parallel programming model and primitives HPF: problems with automatic parallelization; division of work between programmer and HPF compiler; alignment/distribution primitives; performance implications

Summary Applications Grid computing N-body problems: load balancing and communication (locality) optimizations, costzones, performance comparison Search algorithm (TDS): use asynchronous communication + clever (transposition-driven) scheduling Grid computing What are grids? Why do we need them? Application-level tools for grid programming and execution Why is parallel computing on grids feasible? Ibis: goals, applications, design, programming vs. deployment, communication primitives, divide&conquer parallelism, performance behavior on a grid

Summary Multimedia content analysis on Grids What is Multimedia Content Analysis (MMCA) ? Imaging applications, feature vectors, low-level patterns Why parallel computing in MMCA - and how? Need for speed and transparency Software Platform: Parallel-Horus. Task/data parallelism, Separable Recursive Filtering, Lazy Parallelization Example – Parallel Image Processing on Clusters Grids and their specific problems. Promise and problems of the grid Towards a Software Platform for MMCA on Grids. Problems with wide- area servers Large-scale MMCA applications on Grids (TRECVID, object recognition)

Summary Multi/many-cores processors Variety of platforms (core types & counts, memory architecture & sizes, parallelism layers & types, scheduling) Performance evaluation (arithmetic intensity, Roofline model) Programming models for multi/many-cores Deal with performance, portability, programmability The correlator application Programming models for Cell, GPUs, Generic models