What is Parallel and Distributed computing?

Slides:



Advertisements
Similar presentations
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Parallel Programming in C with MPI and OpenMP Michael J. Quinn.
Advertisements

Lecture 4: CPU Performance
Multiprocessors— Large vs. Small Scale Multiprocessors— Large vs. Small Scale.
Lecture 6: Multicore Systems
Parallel Programming in C with MPI and OpenMP Michael J. Quinn.
Parallel Programming Yang Xianchun Department of Computer Science and Technology Nanjing University Introduction.
ICS 556 Parallel Algorithms Ebrahim Malalla Office: Bldg 22, Room
Taxanomy of parallel machines. Taxonomy of parallel machines Memory – Shared mem. – Distributed mem. Control – SIMD – MIMD.
Types of Parallel Computers
CSCI 8150 Advanced Computer Architecture Hwang, Chapter 1 Parallel Computer Models 1.2 Multiprocessors and Multicomputers.
History of Distributed Systems Joseph Cordina
11/14/05ELEC Fall Multi-processor SoCs Yijing Chen.
RISC By Don Nichols. Contents Introduction History Problems with CISC RISC Philosophy Early RISC Modern RISC.
CPE 731 Advanced Computer Architecture Multiprocessor Introduction
Fall 2008Introduction to Parallel Processing1 Introduction to Parallel Processing.
1b.1 Types of Parallel Computers Two principal approaches: Shared memory multiprocessor Distributed memory multicomputer ITCS 4/5145 Parallel Programming,
Reference: / Parallel Programming Paradigm Yeni Herdiyeni Dept of Computer Science, IPB.
C.S. Choy95 COMPUTER ORGANIZATION Logic Design Skill to design digital components JAVA Language Skill to program a computer Computer Organization Skill.
KUAS.EE Parallel Computing at a Glance. KUAS.EE History Parallel Computing.
Lappeenranta University of Technology / JP CT30A7001 Concurrent and Parallel Computing Introduction to concurrent and parallel computing.
1b.1 Types of Parallel Computers Two principal approaches: Shared memory multiprocessor Distributed memory multicomputer ITCS 4/5145 Parallel Programming,
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Parallel Programming in C with MPI and OpenMP Michael J. Quinn.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides Courtesy Michael J. Quinn Parallel Programming in C.
Parallel Processing - introduction  Traditionally, the computer has been viewed as a sequential machine. This view of the computer has never been entirely.
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.
Parallel Programming in C with MPI and OpenMP Michael J. Quinn.
Parallel Computing.
Pipelining and Parallelism Mark Staveley
By Chi-Chang Chen.  Cluster computing is a technique of linking two or more computers into a network (usually through a local area network) in order.
Outline Why this subject? What is High Performance Computing?
Lecture 3: Computer Architectures
3/12/2013Computer Engg, IIT(BHU)1 PARALLEL COMPUTERS- 2.
3/12/2013Computer Engg, IIT(BHU)1 INTRODUCTION-1.
3/12/2013Computer Engg, IIT(BHU)1 INTRODUCTION-2.
3/12/2013Computer Engg, IIT(BHU)1 PARALLEL COMPUTERS- 3.
CPS 258 Announcements –Lecture calendar with slides –Pointers to related material.
Background Computer System Architectures Computer System Software.
Computer Science and Engineering Parallel and Distributed Processing CSE 8380 April 28, 2005 Session 29.
Chapter 11 System Performance Enhancement. Basic Operation of a Computer l Program is loaded into memory l Instruction is fetched from memory l Operands.
Introduction Goal: connecting multiple computers to get higher performance – Multiprocessors – Scalability, availability, power efficiency Job-level (process-level)
Constructing a system with multiple computers or processors 1 ITCS 4/5145 Parallel Programming, UNC-Charlotte, B. Wilkinson. Jan 13, 2016.
Why Parallel/Distributed Computing Sushil K. Prasad
These slides are based on the book:
Introduction to Parallel Computing: MPI, OpenMP and Hybrid Programming
Computer Organization
Lecture 1 – Parallel Programming Primer
Distributed Processors
Parallel Computers Definition: “A parallel computer is a collection of processing elements that cooperate and communicate to solve large problems fast.”
Parallel Processing - introduction
Course Outline Introduction in algorithms and applications
Performance of Single-cycle Design
Assembly Language for Intel-Based Computers, 5th Edition
The University of Adelaide, School of Computer Science
Constructing a system with multiple computers or processors
Scalable Processor Design
Multi-Processing in High Performance Computer Architecture:
Pipelining and Vector Processing
BIC 10503: COMPUTER ARCHITECTURE
CSC 3210 Computer Organization and Programming
Parallel Processing Architectures
Constructing a system with multiple computers or processors
Constructing a system with multiple computers or processors
Overview Parallel Processing Pipelining
Constructing a system with multiple computers or processors
Chapter 1 Introduction.
By Brandon, Ben, and Lee Parallel Computing.
Computer Evolution and Performance
Chapter 4 Multiprocessors
COMPUTER ARCHITECTURES FOR PARALLEL ROCESSING
Types of Parallel Computers
Presentation transcript:

What is Parallel and Distributed computing? Solving a single problem faster using multiple CPUs E.g. Matrix Multiplication C = A X B Parallel = Shared Memory among all CPUs Distributed = Local Memory/CPU Common Issues: Partition, Synchronization, Dependencies, load balancing

Why Parallel and Distributed Computing? Grand Challenge Problems Weather Forecasting; Global Warming Materials Design – Superconducting material at room temperature; nano-devices; spaceships. Organ Modeling; Drug Discovery

Why Parallel and Distributed Computing? Physical Limitations of Circuits Heat and light effect Superconducting material to counter heat effect Speed of light effect – no solution!

Microprocessor Revolution Micros Speed (log scale) Time Supercomputers Moore's Law Mainframes Minis

Why Parallel and Distributed Computing? VLSI – Effect of Integration 1 M transistor enough for full functionality - Dec’s Alpha (90’s) Rest must go into multiple CPUs/chip Cost – Multitudes of average CPUs gave better FLPOS/$ compared to traditional supercomputers

Modern Parallel Computers Caltech’s Cosmic Cube (Seitz and Fox) Commercial copy-cats nCUBE Corporation (512 CPUs) Intel’s Supercomputer Systems iPSC1, iPSC2, Intel Paragon (512 CPUs) Lots more Thinking Machines Corporation CM2 (65K 4-bit CPUs) – 12-dimensional hypercube - SIMD CM5 – fat-tree interconnect - MIMD Roadrunner - Los Alamos NL 116,640 cores 12K IBM cell; Japan’s K-1; China’s Tianhe I-A

Instruction Cycle Instruction cycle broken into 4 stages: Instruction fetch Fetch & decode instruction, obtain any operands, update PC Execute Execute arithmetic instruction, compute branch target address, compute memory address Memory access Access memory for load or store instruction; fetch instruction at target of branch instruction Store results Write instruction results back to register file

Pipelining SPARC is a RISC machine – want to complete one instruction per cycle Overlap stages of different instructions to achieve parallel execution Can obtain a speedup by a factor of 4 Hardware does not have to run 4 times faster – break h/w into 4 parts to run concurrently

Pipelining Sequential: each h/w stage idle 75% of the time. timeex = 4 * i Parallel: each h/w stage working after filling the pipeline. timeex = 3 + i

Why Parallel and Distributed Computing? Everyday Reasons Available local networked workstations and Grid resources should be utilized Solve compute-intensive problems faster Make infeasible problems feasible Reduce design time Leverage of large combined memory Solve larger problems in same amount of time Improve answer’s precision Gain competitive advantage Exploit commodity multi-core and GPU chips

Why MPI/PVM? MPI = “Message Passing Interface” PVM = “Parallel Virtual Machine” Standard specification for message-passing libraries Libraries available on virtually all parallel computers Free libraries also available for networks of workstations, commodity clusters, Linux, Unix, and Windows platforms Can program in C, C++, and Fortran

Why Shared Memory programming? Easier conceptual environment Programmers typically familiar with concurrent threads and processes sharing address space CPUs within multi-core chips share memory OpenMP an application programming interface (API) for shared-memory systems Supports higher performance parallel programming of symmetrical multiprocessors