1 / 13

Understanding Parallel and Distributed Computing: Concepts and Applications

Parallel and distributed computing harnesses multiple CPUs to solve complex problems more efficiently, such as matrix multiplication. In parallel computing, CPUs share memory, while distributed computing utilizes local memory on each CPU. Applications range from weather forecasting to drug discovery, emphasizing solutions to grand challenge problems. As technology evolves, VLSI and multicore processors enhance computational capabilities. Harnessing frameworks like MPI for message passing and OpenMP for shared memory programming facilitates the development of efficient parallel applications, paving the way for innovative solutions in science and industry.

melanson
Télécharger la présentation

Understanding Parallel and Distributed Computing: Concepts and Applications

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. 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!

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

  5. 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

  6. 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

  7. Instruction Cycle • Instruction cycle broken into 4 stages: Instruction fetchFetch & decode instruction, obtain any operands, update PC ExecuteExecute arithmetic instruction, compute branch target address, compute memory address Memory accessAccess memory for load or store instruction; fetch instruction at target of branch instruction Store resultsWrite instruction results back to register file

  8. 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

  9. 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

  10. 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 • Reduce design time • Gain competitive advantage • Exploit commodity multi-core and GPU chips

  11. 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

  12. 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

More Related