tree regular analysis of parallel programs with dynamic
play

Tree-Regular Analysis of Parallel Programs with Dynamic Thread - PowerPoint PPT Presentation

Westflische Wilhelms-Universitt Mnster Tree-Regular Analysis of Parallel Programs with Dynamic Thread Creation and Locks Benedikt Nordhoff Fachbereich Mathematik und Informatik Arbeitsgruppe Softwareentwicklung und Verifikation 3.


  1. Westfälische Wilhelms-Universität Münster Tree-Regular Analysis of Parallel Programs with Dynamic Thread Creation and Locks Benedikt Nordhoff Fachbereich Mathematik und Informatik Arbeitsgruppe Softwareentwicklung und Verifikation 3. November 2012 Benedikt Nordhoff Tree-Regular Analysis of Parallel Programs 1

  2. What I am working on ◮ Static reachability analysis of recursive parallel programs. ◮ Utilizing DPNs (this talk) ◮ Implementation for real programming languages (Java) ◮ Applications to information flow control ◮ Static data flow analyses for sequential programs with applications to information flow control. ◮ Utilizing/combining PDGs, path conditions and abstract interpretation ◮ ... Benedikt Nordhoff Tree-Regular Analysis of Parallel Programs 2

  3. What is a Monitor-DPN? ◮ A DPN is a bunch of push down systems (PDS) which can dynamically spawn new PDS as a side effect of their transitions. ◮ The PDS in a Monitor-DPN may additionally synchronize via a finite set of reentrant locks which are bound to the stack. ◮ Allows to precisely model effects of: ◮ Recursive procedures. ◮ Dynamic thread creation. ◮ Synchronization via a finite set of well nested locks. ◮ Allows for a finite abstraction of: ◮ Method local state. ◮ Thread local state. ◮ Abstracts from shared state. Benedikt Nordhoff Tree-Regular Analysis of Parallel Programs 3

  4. What is a Monitor-DPN? ◮ Each process in a Monitor-DPN has a control state and a stack which contains stack symbols and possibly locks. ◮ There are five kinds of transitions each depends on the control state of the process and the topmost stack symbol: Base Modifies the control state and top of stack. Return Modifies the control state and removes the top of stack with a possibly underlying lock. Call Modifies the control state, top of stack, and adds an additional stack symbol. Spawn Like base but create a new process with a given control state and stack (without locks) . Use Like call but puts a lock under the new stack symbol. Can only be executed if the lock is not currently on the stack of any other process. Benedikt Nordhoff Tree-Regular Analysis of Parallel Programs 4

  5. From Executions to Execution Trees ◮ Executions/traces interleave actions from different threads. ◮ Action Trees branch executions at spawns, this yields a tree with context free paths. ◮ Execution Trees additionally branch at procedure calls. ◮ The set of reachable execution trees is tree regular. Benedikt Nordhoff Tree-Regular Analysis of Parallel Programs 5

  6. Trace of two proceses a and b spawn η 3 base η 0 call η 1 base η 2 base η 4 call η 5 c 0 − − − − → a c 1 − − − → a c 2 − − − − → a c 3 − − − − − → a c 4 − − − − → b c 5 − − − → b c 6 base η 6 ret η 7 base η 8 base η 9 − − − − → a c 7 − − − → a c 8 − − − − → a c 9 − − − − → b c 10 Benedikt Nordhoff Tree-Regular Analysis of Parallel Programs 6

  7. Trace of two proceses a and b spawn η 3 base η 0 call η 1 base η 2 base η 4 call η 5 c 0 − − − − → a c 1 − − − → a c 2 − − − − → a c 3 − − − − − → a c 4 − − − − → b c 5 − − − → b c 6 base η 6 ret η 7 base η 8 base η 9 − − − − → a c 7 − − − → a c 8 − − − − → a c 9 − − − − → b c 10 Action tree spawn η 3 base η 0 call η 1 base η 2 base η 6 ret η 7 base η 8 base η 4 call η 5 base η 9 Benedikt Nordhoff Tree-Regular Analysis of Parallel Programs 6

  8. Trace of two proceses a and b spawn η 3 base η 0 call η 1 base η 2 base η 4 call η 5 c 0 − − − − → a c 1 − − − → a c 2 − − − − → a c 3 − − − − − → a c 4 − − − − → b c 5 − − − → b c 6 base η 6 ret η 7 base η 8 base η 9 − − − − → a c 7 − − − → a c 8 − − − − → a c 9 − − − − → b c 10 Action tree spawn η 3 base η 0 call η 1 base η 2 base η 6 ret η 7 base η 8 base η 4 call η 5 base η 9 Execution tree NIL p 8 ,γ 8 BASE η 0 RCALL η 1 BASE η 8 BASE η 2 SPAWN η 3 BASE η 6 RET η 7 NIL p 9 ,γ 9 BASE η 4 NCALL η 5 BASE η 9 Benedikt Nordhoff Tree-Regular Analysis of Parallel Programs 6

  9. Analysis of DPNs with Execution Trees ◮ Use tree-regularity to decide reachability of configurations with tree regular properties. 1. Build a tree automaton accepting all reachable configurations. 2. Build a tree automaton accepting configurations with property of interest. 3. Check intersection for emptiness. ◮ Can also check for reachability from those reachable configurations. ◮ Allows to check for arbitrary gen/kill properties e.g. def/use dependencies between two threads over a shared variable. Benedikt Nordhoff Tree-Regular Analysis of Parallel Programs 7

  10. Not lock-sensitively schedulable execution trees ACQ x , ⊥ ACQ y , ⊥ SPAWN NIL ACQ y , ⊥ BASE NIL Benedikt Nordhoff Tree-Regular Analysis of Parallel Programs 8

  11. Not lock-sensitively schedulable execution trees ACQ x , ⊥ ACQ y , ⊥ SPAWN NIL two final acquisitions of y in different threads ACQ y , ⊥ BASE NIL Benedikt Nordhoff Tree-Regular Analysis of Parallel Programs 8

  12. Not lock-sensitively schedulable execution trees ACQ x , ⊥ ACQ y , ⊥ SPAWN NIL two final acquisitions of y in different threads ACQ y , ⊥ BASE NIL ACQ x , ⊥ USE y , ⊥ SPAWN NIL RET ACQ y , ⊥ USE x , ⊥ BASE NIL RET Benedikt Nordhoff Tree-Regular Analysis of Parallel Programs 8

  13. Not lock-sensitively schedulable execution trees ACQ x , ⊥ ACQ y , ⊥ SPAWN NIL two final acquisitions of y in different threads ACQ y , ⊥ BASE NIL x → y y needs to be used after ACQ x , ⊥ USE y , ⊥ SPAWN NIL x has been finally acquired RET ACQ y , ⊥ USE x , ⊥ BASE NIL RET Benedikt Nordhoff Tree-Regular Analysis of Parallel Programs 8

  14. Not lock-sensitively schedulable execution trees ACQ x , ⊥ ACQ y , ⊥ SPAWN NIL two final acquisitions of y in different threads ACQ y , ⊥ BASE NIL x → y y needs to be used after ACQ x , ⊥ USE y , ⊥ SPAWN NIL x has been finally acquired RET y → x x needs to be used after ACQ y , ⊥ USE x , ⊥ BASE NIL y has been finally acquired RET Benedikt Nordhoff Tree-Regular Analysis of Parallel Programs 8

  15. Not lock-sensitively schedulable execution trees ACQ x , ⊥ ACQ y , ⊥ SPAWN NIL two final acquisitions of y in different threads ACQ y , ⊥ BASE NIL x → y y needs to be used after ACQ x , ⊥ USE y , ⊥ SPAWN NIL x has been finally acquired RET y → x x needs to be used after ACQ y , ⊥ USE x , ⊥ BASE NIL y has been finally acquired RET ◮ These properties are neccessary, sufficient and tree-regular. Benedikt Nordhoff Tree-Regular Analysis of Parallel Programs 8

  16. Tree Automata for Acquisition Histories Lock sensitive schedulable execution trees. Using a generalized version of Kahlon and Gupta’s acquisition histories. ◮ State space: { ( A , U , G ) | A ⊆ U ⊆ X , G ⊆ X × X } ◮ Accepting states: { ( A , U , G ) ∈ Q | G is acyclic } Interpretation: All operations only non reentrant. A Locks finally acquired within the tree. U Locks used or finally acquired within the tree. G Acquisition graph, x → x ′ ∈ G ⇔ x ′ is used or finally acquired after x has been finally acquired. (Order constrain) Benedikt Nordhoff Tree-Regular Analysis of Parallel Programs 9

  17. Tree Automata for Acquisition Histories Transitions: NIL → ( ∅ , ∅ , ∅ ) RET → ( ∅ , ∅ , ∅ ) BASE α → α NCALL α → α ACQ x , ⊤ α → α A ∩ A ′ = ∅ f ( A , U , G ) ( A ′ , U ′ , G ′ ) ( A ∪ A ′ , U ∪ U ′ , G ∪ G ′ ) → f ∈ { RCALL , USE x , ⊤ , SPAWN } ( A ∪ A ′ , U ∪ U ′ ∪ { x } , G ∪ G ′ ) A ∩ A ′ = ∅ USE x , ⊥ ( A , U , G ) ( A ′ , U ′ , G ′ ) → ACQ x , ⊥ ( A , U , G ) → ( A ∪ { x } , U ∪ { x } , G ∪ { ( x , u ) | u ∈ U } ) x / ∈ U The product automaton of these three automatons accepts all lock sensitive execution trees of the DPN. Benedikt Nordhoff Tree-Regular Analysis of Parallel Programs 10

  18. A Simple Example: Conflict reachability ( T R , W CFL ) Let R , W be two sets of stack symbols. E.g. reads and writes of some variable. ◮ State space: 2 { r , w } ◮ Accepting states: {{ r , w }} NIL γ → { r } γ ∈ R NIL γ → { w } γ ∈ W NIL γ → ∅ γ / ∈ ( R ∪ W ) RET → ∅ { ACQ , BASE , NCALL } α → α { RCALL , SPAWN , USE } α β → α ∪ β ◮ This tree automaton accepts all trees in which both sets are reached simultaneously. E.g. there exists a datarace. ◮ L ( T M ) ∩ L ( T ah ) ∩ L ( T R , W CFL ) = ∅ iff there exists no conflict. Benedikt Nordhoff Tree-Regular Analysis of Parallel Programs 11

  19. Iterable Reachablility ◮ Have characterized (in some sense) post ∗ M ( { NIL p 0 γ 0 } ) ◮ For tree-regular A ⊆ post ∗ M ( { NIL p 0 γ 0 } ) can characterize post ∗ M ( A ) ˆ ◮ A tree transducer marks an intermediate configuration from A in the execution trees. ◮ Release structures ensure the locks held at the intermediate configuration can be released before they are needed. ˆ M can be a restriction of the DPN M . ◮ Benedikt Nordhoff Tree-Regular Analysis of Parallel Programs 12

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