180 likes | 437 Views
Parallel Computing at a Glance. History Parallel Computing. What is Parallel Processing ?. Processing of multiple tasks simultaneously on multiple Processors is called parallel processing. D1. D2. D3. P1. P2. P3. Pm. R. Why Parallel Processing ?.
E N D
What is Parallel Processing ? Processing of multiple tasks simultaneously on multiple Processors is called parallel processing. D1 D2 D3 P1 P2 P3 Pm R
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.
Hardware Architecture for Parallel Processing ? • Single instruction single data (SISD) • Single instruction multiple data (SIMD) • Multiple instruction and single data (MISD) • Multiple instruction and multiple data (MIMD)
Single instruction single data (SISD) Sequential computer : PC, Macintosh, Workstation
Single instruction multiple data (SIMD) Vector machines CRAY, Thinking Machines
Multiple instruction and multiple data (MIMD) work asynchronously
Shared Memory MIMD Machine Tightly-couple multiprocessor Silicon Graphics machines Sun’s SMP address shared memory single address space real address vs. virtual address thread NUMA v.s UMA Message passing v.s shared memory
Distributed Shared Memory MIMD Machine Loosely-coupled multiprocessor C-DAC’s PARAM IBM’s SP/2 Intel’s Paragaon
Comparison between Shared Memory MIMD and Distributed Shared MIMD
Approaches to Parallel Programming .Data Parallelism (SIMD) .Process Parallelism .Farmer and Worker Models (Master and Slaves)
PARAS Operating Environment It is a complete parallel programming environment. • OS kernel • Host servers • Compliers • Run-time environment • Parallel file system • On-line debugger and profiling tool • Graphics and visualization support • Networking interface • Off-line parallel processing tools • Program restructures • libraries Program development environment Program run-time environment Utilities
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