An Efficient and
Parallel Abstract
Interpreter
in Scala
—
3×3 Parallel
Implementations
The problematic
Sequential
algorithm
Parallel
algorithms
Results
Todo
Other strategy: ParAAM-C-S-state
main thread Sender N = p − 1 Eval actors
w o r k l i s t = empty l i s t
v i s i t e d = empty s e t
shared data
send s t a r t
wait send i n i t i a l s t a t e
ÓÖ
( state , a c t o r )
from c u r r e n t w o r k l i s t
and a v a i l a b l e Eval a c t o r s
send s t a t e to a c t o r
w o r k l i s t i s empty
and a l l Eval a c t o r s a v a i l a b l e
send f i n i s h e d
e v a l u a t e s t a t e
update (with synchronization)
send a v a i l a b l e
to Eval n◦ 0
Eval n◦ i available
I name this implementation
ParAAM-C-S-state, for ParAAM – Concurrent – Sender – state.
And these similar improvements:
ParAAM-C-S-set, for ParAAM – Concurrent – Sender – set and
ParAAM-C-S-part, for ParAAM – Concurrent – Sender – part.
An Efficient and Parallel Abstract Interpreter in Scala — 3×3 Parallel Implementations 14 / 22