detecting and using critical paths at runtime in message
play

Detecting and Using Critical Paths at Runtime in Message Driven - PowerPoint PPT Presentation

Detecting and Using Critical Paths at Runtime in Message Driven Parallel Programs Isaac Dooley, Laxmikant V. Kale Department of Computer Science University of Illinois idooley2@illinois.edu kale@illinois.edu 12th Workshop on Advances in


  1. Detecting and Using Critical Paths at Runtime in Message Driven Parallel Programs Isaac Dooley, Laxmikant V. Kale Department of Computer Science University of Illinois idooley2@illinois.edu kale@illinois.edu 12th Workshop on Advances in Parallel and Distributed Computational Models IPDPS April 19, 2010 1

  2. Motivation • Critical paths historically have been used important in post-mortem (offline) parallel performance analysis. • Can they be computed online in message driven parallel languages? • Is critical path information useful in running parallel HPC programs? 2

  3. Critical Paths in Parallel Programs • Existing algorithms for recording critical paths in a hybrid online/offline manner: • J Hollingsworth. An online computation of critical path profiling. In SPDT ʼ 96: Proceedings of the SIG- METRICS symposium on Parallel and distributed tools, pages 11–20, New York, NY, USA, 1996 • J Hollingsworth. Critical path profiling of message passing and shared-memory programs . Parallel and Distributed Systems, IEEE Transactions on, 9(10):1029– 1040, Oct 1998 • C Yang, B P Miller. Path Analysis for the Execution of Parallel and Distributed Programs. IEEE Transactions on Parallel and Distributed Systems, pages 1029 - 1040, Oct 1998 • M Schulz. Extracting critical path graphs from MPI applications . Cluster Computing, 2005, pages 1 – 10, Sep 2005 • For guiding expert post-mortem performance analysis • For visualizing parallel program execution to gain understanding 3

  4. Critical Paths in Message Driven Parallel Programs • Message Driven Execution (as implemented in Charm++): • Tasks invoke methods asynchronously • An asynchronous method invocation results in: • New local task in queue, or • Message sent to remote processor, resulting in new task 4

  5. Example Program Activity Graph Processor 1 A Legend Processor 2 B Message Task (Prefix) Processor 3 C Program Order Dependency Processor 4 Time • Critical path profiles represent a path through the Program Activity Graph (PAG) composed of computation and messages. 5

  6. Program Activity Graph Processor 1 A Legend Processor 2 B Message Task (Prefix) Processor 3 C Program Order Dependency Processor 4 • The PAG can be recorded as a Time program runs in a distributed graph Processor 1 Processor 2 In-Edge In-Edge Task Prefix Task Prefix (processor, (processor, Index Index Index) Index) 1 initial 1 (1,1) A B 2 (2,2) 2 (1,1) 3 (1,1) Processor 3 • Path weights include In-Edge Task Prefix Processor 4 (processor, Index computation time, but not Index) In-Edge Task Prefix 1 (2,1) (processor, Index message send time Index) 2 (2,3) 1 (1,1) (1,2) or 3 (3,2) or (3,1) or C 2 (4,2) (4,1) 6

  7. Finding Critical Paths • Record PAG as program runs • Augment each message with: • an identifier • path length • Record maximal incoming path for each task in a table • Requires compiler support or code modifications • Retrieve Critical Path for any task with a backwards traversal 7

  8. Implementation • Implemented in the Charm++ runtime system. • Supports multiple languages: • Charm++ • Structured Dagger • Charisma • Trickiness is in how multiple incoming dependencies are captured. • Reductions • User maintains knowledge of dependencies satisfied by earlier tasks • Language specific dependency mechanisms 8

  9. Costs of Recording Critical Paths • Cost of extra 8 bytes in message • Cost of adding table entries for each task execution 6 Overhead of Recording PAG (Percentage) 4-Neighbor (4pe) 5 Ring 4 • Microbenchmarks: 3 2 1 0 1000 10000 Tasks Per Second • Cost of backwards traversal retrieval: Application Dependent 9

  10. Use: Automatic Task Priorities • Automatically Tuning Task Priorities: • OpenAtom Application • Record critical path for 20 iterations, then switch to new priorities based on observed critical path. • 10.2% speedup when prioritizing critical path task types 10

  11. Uses: Phase Detection • Critical path is retrieved • Frequently repeated subpaths are extracted • Cheap! a b b b b b b c d e f g g g g g h i j b b b b b k l m n o p o p q r b b b b s t i u v w b b b b x x y v w b b b b b A A x y v w b b b b x x x y v w b b b b b x x x y v w b b b b b x x x a b b b b b b c d e f g g g g g h i j b b b b b b k l m n o p o p q r b b b b s t i u v w b b b b b A A x y v w b b b b b A A x y v w b b b b b A A x y v w b b b b b x x x y v w b b b b b x x x a b b b b b b c d e f g g g g g h i j b b b b b k l m n o p o p q r b b b b s t i u v w b b b b x x y v w b b b A A x y v w b b b b x x x y v w b b b b A x x y w b b b A A x a b b b b b b c d e f g g g h i j b b b k l m n o p o p q r b b b b s t i u v w b b b b b A x x y v w b b b b b A x x y v w b b b b b x x x y v w b b b b x x x y w b b b b x x A a b b b b b b c d e f g g g g g h i j b b b b b k l m n o p o p q r b b b b s t i u v w b b b b x x y v w b b b b x x x y v w b b b b x x x y v w b b b b x x x y v w b b b b b x x x a b b b b b b c d e f g g g g g h i j b b b b b k l m n o p o p q r b b b b s t i u v w b b b b 11

  12. Uses: Performance Analysis • Visualization: 12

  13. Uses: Filter Performance Data • Reducing volume of performance analysis data • Filter out processors not on critical path • Performance analyst only needs to manipulate & view fewer files 13

  14. Conclusion • Our Contribution: Critical paths can be recorded and used in message driven parallel programs at runtime for tuning message priorities. 14

  15. Thanks & Questions Detecting and Using Critical Paths at Runtime in Message Driven Parallel Programs Isaac Dooley , Laxmikant V. Kale Department of Computer Science University of Illinois 12th Workshop on Advances in Parallel and Distributed Computational Models April 19, 2010 15

  16. Handling Multiple Input Dependencies (Source Processor, Source Index, Cummulative Path Duration) (1,17,7.3) Processor 1 Processor 2 (2,12,10.5) Processor 3 ) maximum duration 1 . 9 , 9 1 incoming dependency Processor 4 , 4 ( = (2,12,10.5) 16

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend