the big project
play

The Big Project Aws Albarghouthi Calvin Smith University of - PowerPoint PPT Presentation

The Big Project Aws Albarghouthi Calvin Smith University of Wisconsin-Madison input data map shu ffl e reduce output data m(i 1 ) i 1 reduce i 2 m(i 2 ) reduce output i 3 reduce m(i 3 ) Big : Analyses from Examples [PLDI16]


  1. The Big λ Project Aws Albarghouthi Calvin Smith University of Wisconsin-Madison

  2. input data map shu ffl e reduce output data m(i 1 ) i 1 reduce i 2 m(i 2 ) reduce output i 3 reduce m(i 3 ) …

  3. Big λ : Analyses from Examples [PLDI16] Example: Output: { { i 1 o i 2 , Synthesize data-parallel programs from input/output examples

  4. Challenges generate proven-deterministic Non-determinism solutions Variety of domains parameterize by extensible APIs syntactically restrict to data- Sparse search space parallel programs

  5. Higher-order sketches Bias search heavily towards data-parallel programs Big λ uses 8 templates, gathered from reference implementations

  6. Higher-order sketches Bias search heavily towards data-parallel programs map x . reduce x { e.g. flatmap x . reduce x . apply x map x . reduceByKey x . filter x Big λ uses 8 templates, gathered from reference implementations

  7. Who uses the most #hashtags ? @Alice : “Hello AAIP #aaip #germany ” @Bob : “Co ff ee machine refilled yet? #caffeine #java #4thcup #zzz ” @Claire : “Torn between wine cellar and seminar #wine #seminar #zzz ”

  8. Who uses the most #hashtags? { { @Alice : “Hello AAIP #aaip #germany ” @Bob : “Co ff ee machine refilled yet? @Bob #caffeine #java #4thcup #zzz ” @Claire : “Torn between wine cellar , and seminar #wine #seminar #zzz ” 2, 4, 3…must be @Bob !

  9. @Alice : “Hello AAIP #aaip #germany ” @Bob : “Co ff ee machine refilled yet? #caffeine #java #4thcup #zzz ” @Claire : “Torn between wine cellar and seminar #wine #seminar #zzz ” let p = map m . reduce r . apply f

  10. {2, @Alice } @Alice : “Hello AAIP #aaip #germany ” @Bob : “Co ff ee machine refilled yet? {4, @Bob } #caffeine #java #4thcup #zzz ” @Claire : “Torn between wine cellar {3, @Claire } and seminar #wine #seminar #zzz ” let p = map m . reduce r . apply f where m = λ t. (len(filter(is_hashtag, t)), author(t))

  11. {2, @Alice } @Alice : “Hello AAIP #aaip #germany ” @Bob : “Co ff ee machine refilled yet? {4, @Bob } #caffeine #java #4thcup #zzz ” @Claire : “Torn between wine cellar {3, @Claire } and seminar #wine #seminar #zzz ” let p = map m . reduce r . apply f where m = λ t. (len(filter(is_hashtag, t)), author(t))

  12. {2, @Alice } { {4, @Bob } { {4, @Bob } {4, @Bob } {3, @Claire } let p = map m . reduce r . apply f where m = λ t. (len(filter(is_hashtag, t)), author(t)) r = λ x,y. max(x, y)

  13. {2, @Alice } { {4, @Bob } { {4, @Bob } {4, @Bob } {3, @Claire } let p = map m . reduce r . apply f where m = λ t. (len(filter(is_hashtag, t)), author(t)) r = λ x,y. max(x, y)

  14. {4, @Bob } { {4, @Bob } { {2, @Alice } {4, @Bob } {3, @Claire } let p = map m . reduce r . apply f where m = λ t. (len(filter(is_hashtag, t)), author(t)) r = λ x,y. max(x, y)

  15. {3, @Claire } { {3, @Claire } { {2, @Alice } {4, @Bob } {4, @Bob } let p = map m . reduce r . apply f where m = λ t. (len(filter(is_hashtag, t)), author(t)) r = λ x,y. max(x, y)

  16. {3, @Claire } { {3, @Claire } { {2, @Alice } {4, @Bob } {4, @Bob } let p = map m . reduce r . apply f where m = λ t. (len(filter(is_hashtag, t)), author(t)) r = λ x,y. max(x, y)

  17. @Bob {4, @Bob } let p = map m . reduce r . apply f where m = λ t. (len(filter(is_hashtag, t)), author(t)) r = λ x,y. max(x, y) f = λ p. snd(p)

  18. Synthesis modulo differential privacy? [ in progress ]

  19. map m . reduce r

  20. map m . reduce r compute sensitivity charge price

  21. map m . reduce r compute sensitivity add noise charge price

  22. Key Idea Linear type system induce cheapest program

  23. How can we automatically learn relational specifications? [FSE17, best paper award ]

  24. add ( x , y ) = z ⇐ ⇒ add ( y , x ) = z

  25. add i 1 i 2 r 1 2 3 3 4 7 add ( x , y ) = z ⇐ ⇒ add ( y , x ) = z 5 6 11 4 3 7 . . . . . . . . .

  26. add i 1 i 2 r 1 2 3 3 4 7 add ( x , y ) = z ⇐ ⇒ add ( y , x ) = z 5 6 11 4 3 7 . . . . . . . . . learn constraints consistent with Unsupervised learning observations

  27. Exploratory evaluation Applied technique to learn specifications of Python APIs Used ~1000 randomly sampled inputs per function Strings concat ( y , reverse ( y )) = x ⇒ reverse ( x ) = x Z3 valid ( x ) = p ∧ valid ( y ) = p ⇒ valid ( and ( x , y )) = p Trig x = y − π /2 ⇒ ( sin ( x ) = z ⇐ ⇒ cos ( y ) = z )

  28. Other directions Synthesis of Datalog programs—graph analytics Synthesis of fair decision-making programs Active-learning-based user interaction Proofs as programs …

Recommend


More recommend