290 likes | 439 Vues
This document outlines the significance of parallel algorithms in overcoming the limitations of sequential computers. It emphasizes how these algorithms, inspired by natural processes, can effectively tackle complex problems, from weather forecasting to scientific simulations. Sparking interest in parallel computing education, it discusses various courses available, including parallel architecture and programming. Understanding different models and design techniques is crucial for optimizing computational tasks in systems with multiple processors, ensuring efficient and timely problem resolution in real-world applications.
E N D
ICS 556Parallel Algorithms Ebrahim Malalla malalla@kfupm.edu.sa Office: Bldg 22, Room 124-8
Sequential Computers "…sequential computers are approaching a fundamental physical limit on their potential power. Such a limit is the speed of light…"
``o'' are uniprocessors, ``+''denotes modestly parallel computers with 4--16 processors, ``x'' denotes massively parallel computers with 100s or 1000s of processors
Parallelism • Is and can be done easily in real life (nature) • E.g., ants and pees colony. • So why not use it to solve human’s problems!
Parallel Computers Supercomputers (high performance computers) are needed to • Speedup sequential algorithms • Solve large complex problems that are almost not practically solvable.
Applications of Parallelism • Weather forecasting • Simulations (DNA, biomedical, flight control) • Scientific Computations • Fourier transform, wavelets • Applied linear algebra, matrix factorization and multiplication • Image and signal processing • Numerical analysis • PDEs • Huge Databases • Real-time systems with large live stream inputs
Unfortunately .. • Not every algorithm can be parallelized “One woman can have a child in 9 months But 9 women can’t have a child in 1 month!”
Courses in Parallelism • Parallel Architecture • Parallel Programming • Parallel Algorithms • Parallel Algorithms for scientific computations • Concurrent Programming • Distributed systems • Distributed Algorithms • Cluster Computing
Parallel Architecture • Focuses on the design of hardwares • E.g., processors, memory, communications and interconnections, ...etc
Parallel Programming • Code parallel programs using parallel programming languages, e.g., PVM (Parallel Virtual Machine), MPI (Massage Passing Interface), OpenMP • Study: Parallel machine and programming models, Programming techniques (partitioning, pipelined computations, synchronous computations, load balancing and termination detection) • Textbooks: • Parallel Computing, by Grama, Gupta, Karypis, Kumar, Addison-Wesley, 2003. • Parallel Programming, by Wilkinson and Allen, Pearson-Prentice Hall • Fundamentals of Parallel Processing by Jordan and Alaghband, Prentice Hall
Parallel Algorithms • Focuses on the design and analysis of parallel algorithms • Given a problem • partition it into sub-problems, • Distribute these sub-problems to the processors • Solve the communication problem • Combine the solution
Parallel Computation Models • Parallel algorithms are designed to run on a specific parallel computer • But there many different practical models of them (unlike the sequential computer)
Interconnection Network Model Network structure could be array, tree, hypercube, or mesh based design
Other options • Synchronous or asynchronous computation • SIMD MIDM • ....
Top 10 Supercomputers (2007) Google Map of TOP 100 HPCs
Intel Promised Teraflops chip Intel has introduced a prototype for A supercomputer Chip capable of teraflops Performance While consuming Very little power. It has 80 cores and consumes only 62 watts.
Approaches for studying Parallel Algorithms • Model Approach: divide the subject according to the parallel computation models and for each study different parallel algorithms design techniques and consider different application problems
Approaches for studying Parallel Algorithms • Problem Approach: Divide the subject according to the type of problems that can be solved by parallel algorithms like • Sorting and searching • Scientific computation • Graph problems • Computational geometry • Simulations, graphics and vision • Biomedical modeling For each type we study design techniques for models of computations that are best suited.
Approaches for studying Parallel Algorithms • Models and Methods Approach: mix of the above two approaches. • Models: Combinatorial circuits, interconnected networks, shared memory • Design Methods: prefix computation, list ranking, divide and conquer, split and plan, .... etc
Textbook • Parallel Computation By Selim Akl • Supplementary Lecture notes, current research papers
Assessment • 4-5 assignments • 2 exams • Presentation and report based on research papers