1 / 16

CS 584 Lecture 6

CS 584 Lecture 6. Assignment?. Review. Partition Communication Agglomeration Combine tasks to execute efficiently on some parallel computer. Reduce communication by having fewer tasks sending less messages (batching). Mapping. Specify where each task is to operate.

ljustin
Download Presentation

CS 584 Lecture 6

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. CS 584 Lecture 6 • Assignment?

  2. Review • Partition • Communication • Agglomeration • Combine tasks to execute efficiently on some parallel computer. • Reduce communication by • having fewer tasks • sending less messages (batching)

  3. Mapping • Specify where each task is to operate. • Mapping may need to change depending on the target architecture. • Mapping is NP-complete.

  4. Mapping • Goal: Reduce Execution Time • Concurrent tasks ---> Different processors • High communication ---> Same processor • Mapping is a game of trade-offs.

  5. Mapping • Many domain-decomposition problems make mapping easy. • Grids • Arrays • etc.

  6. Mapping • Unstructured or complex domain decomposition based algorithms are difficult to map.

  7. Other Mapping Problems • Variable amounts of work per task • Unstructured communication • Heterogeneous processors • different speeds • different architectures • Solution: LOAD BALANCING

  8. Load Balancing • Static • Determined a priori • Based on work, processor speed, etc. • Probabilistic • Random • Dynamic • Restructure load during execution • Task Scheduling (functional decomp.)

  9. Static Load Balancing • Based on a priori knowledge. • Goal: Equal WORK on all processors • Algorithms: • Basic • Recursive Bisection

  10. Basic • Divide up the work based on • Work required • Processor speed æ ö ç ÷ p = i r R ç ÷ å i p ç ÷ è ø i

  11. Recursive Bisection • Divide work in half recursively. • Based on physical coordinates.

  12. Dynamic Algorithms • Adjust load when an imbalance is detected. • Local or Global

  13. Task Scheduling • Many tasks with weak locality requirements. • Manager-Worker model.

  14. Task Scheduling • Manager-Worker • Hierarchical Manager-Worker • Uses submanagers • Decentralized • No central manager • Task pool on each processor • Less bottleneck

  15. Termination Detection • Centralized • Manager controlled • Decentralized • Messages in transit • No main control • No global knowledge

  16. Mapping Checklist • Is the load balanced? • Are there communication bottlenecks? • Is it necessary to adjust the load dynamically? • Can you adjust the load if necessary? • Have you evaluated the costs?

More Related