140 likes | 279 Views
Using Visualization Tools to Understand Concurrency. written by Zernik, Dror, Marc Snir, and Alia Malki Kim, Byung-Chul. Why Visualization Tool?. Parallelism makes program execution much more complex and difficult to understand Visualization Tool gives a clearer picture of concurrency
E N D
Using Visualization Tools to Understand Concurrency written by Zernik, Dror, Marc Snir, and Alia Malki Kim, Byung-Chul
Why Visualization Tool? • Parallelism • makes program execution much more complex and difficult to understand • Visualization Tool • gives a clearer picture of concurrency • helps the users grasp aspects of parallel execution more immediately and more accurately than a text interface BCKim
Nodes Fork Join Message send Message receive Barrier synchronization User-defined Processing Arcs Control Message Causality Graph Start Fork Fork Barrier Sync. Send Receive Join Join Terminate BCKim
Trace • logs each interprocess-communication and each user-defined event during execution • Time, type, processor number, process ID, and type-dependent information • logs the information into a local buffer, which is periodically copied onto disk(s). BCKim
a total ordering of the nodes (u => v) ordered or concurrent Serialization Order Start Fork Fork Barrier Sync. Send Receive Join Join Terminate BCKim
Present(u) The set of all nodes v in G that are concurrent to u including u painted red Past(u) The set of all nodes v such that v => u painted gray Future(u) The set of all nodes such that u => v painted yellow Partitioning the Graph Start Fork Fork Barrier Sync. Send u Receive Join Join Terminate BCKim
Initialization pick a node v and set Past, Present, and Future Incremental update Activate u Terminate u Undo u Single Stepping Forward Backward Manipulation of Graph BCKim
Abstraction Start Fork Fork Barrier Sync. Super node Send Receive Join Join Terminate BCKim
Start Fork Fork Barrier Sync. Send Receive Join Join Terminate BCKim
Abstraction Algorithm A directed acyclic graph and the previously selected node Abstraction Algorithm An abstraction graph by a single node BCKim
Branch(u) u u BCKim
Branch(u) u u Local Communication node BCKim
u BCKim