18
KUAS.EE Parallel Computing at a Glance

KUAS.EE Parallel Computing at a Glance. KUAS.EE History Parallel Computing

Embed Size (px)

Citation preview

Page 1: KUAS.EE Parallel Computing at a Glance. KUAS.EE History Parallel Computing

KUAS.EE

Parallel Computing at a Glance

Page 2: KUAS.EE Parallel Computing at a Glance. KUAS.EE History Parallel Computing

KUAS.EE

History Parallel Computing

Page 3: KUAS.EE Parallel Computing at a Glance. KUAS.EE History Parallel Computing

KUAS.EE

What is Parallel Processing ?

Processing of multiple tasks simultaneously on multipleProcessors is called parallel processing.

D1 D2 D3

P1 P2 P3

R

Pm

Page 4: KUAS.EE Parallel Computing at a Glance. KUAS.EE History Parallel Computing

KUAS.EE

Why Parallel Processing ?

. Computational requirements are ever increasing, both in the area of scientific and business. grand challenge problems. Sequential architecture reaches physical limitation.

. Hardware improvements in pipelining, superscalar are non-scalable and requires sophisticated complier technology.

. Vector processing works well for certain of problems.

. The technology of parallel processing is mature.

. Significant development in networking technology is paving a way for heterogeneous computing.

Page 5: KUAS.EE Parallel Computing at a Glance. KUAS.EE History Parallel Computing

KUAS.EE

Hardware Architecture for Parallel Processing ?

1. Single instruction single data (SISD)2. Single instruction multiple data (SIMD)3. Multiple instruction and single data (MISD)4. Multiple instruction and multiple data (MIMD)

Page 6: KUAS.EE Parallel Computing at a Glance. KUAS.EE History Parallel Computing

KUAS.EE

Single instruction single data (SISD)

Sequential computer : PC, Macintosh, Workstation

Page 7: KUAS.EE Parallel Computing at a Glance. KUAS.EE History Parallel Computing

KUAS.EE

Single instruction multiple data (SIMD)

Vector machines CRAY, Thinking Machines

Page 8: KUAS.EE Parallel Computing at a Glance. KUAS.EE History Parallel Computing

KUAS.EE

Multiple instruction and single data (MISD)

Page 9: KUAS.EE Parallel Computing at a Glance. KUAS.EE History Parallel Computing

KUAS.EE

Multiple instruction and multiple data (MIMD)

work asynchronously

Page 10: KUAS.EE Parallel Computing at a Glance. KUAS.EE History Parallel Computing

KUAS.EE

Shared Memory MIMD Machine

Tightly-couple multiprocessor

Silicon Graphics machinesSun’s SMP

addressshared memorysingle address spacereal address vs. virtual addressthreadNUMA v.s UMAMessage passing v.s shared memory

Page 11: KUAS.EE Parallel Computing at a Glance. KUAS.EE History Parallel Computing

KUAS.EE

Distributed Shared Memory MIMD Machine

Loosely-coupled multiprocessor

C-DAC’s PARAMIBM’s SP/2Intel’s Paragaon

Page 12: KUAS.EE Parallel Computing at a Glance. KUAS.EE History Parallel Computing

KUAS.EE

Comparison between Shared Memory MIMDand Distributed Shared MIMD

Shared MemoryMIMD

Distributed Memory

MIMD (MPP)

Manufacturability Easy Easy

Programmability Easy Slightly difficult

Reliability Poor Good

ExtensibilityScalability

Difficult Easy

Page 13: KUAS.EE Parallel Computing at a Glance. KUAS.EE History Parallel Computing

KUAS.EE

Approaches to Parallel Programming

.Data Parallelism (SIMD)

.Process Parallelism

.Farmer and Worker Models (Master and Slaves)

Page 14: KUAS.EE Parallel Computing at a Glance. KUAS.EE History Parallel Computing

KUAS.EE

PARAM Supercomputers

Page 15: KUAS.EE Parallel Computing at a Glance. KUAS.EE History Parallel Computing

KUAS.EE

PARAS Operating Environment

It is a complete parallel programming environment.

1. OS kernel2. Host servers3. Compliers4. Run-time environment5. Parallel file system6. On-line debugger and profiling tool7. Graphics and visualization support8. Networking interface9. Off-line parallel processing tools10. Program restructures11. libraries

Program development environmentProgram run-time environmentUtilities

Page 16: KUAS.EE Parallel Computing at a Glance. KUAS.EE History Parallel Computing

KUAS.EE

PARAS Programming Model

. PARAS Microkernel

. CONcurrent threads Environment(CORE)

. POSIX threads interface

. Popular Message Passing interface such as . MPI . PVM. Parallelizing Compliers. Tools and debuggers for parallel programming . Load balancing and distribution tools

Page 17: KUAS.EE Parallel Computing at a Glance. KUAS.EE History Parallel Computing

KUAS.EE

Levels of Parallelism

Page 18: KUAS.EE Parallel Computing at a Glance. KUAS.EE History Parallel Computing

KUAS.EE

Levels of Parallelism