COORDINATION
Professor Ken Birman CS4414 Lecture 17
CORNELL CS4414 - FALL 2020. 1
COORDINATION CS4414 Lecture 17 CORNELL CS4414 - FALL 2020. 1 IDEA - - PowerPoint PPT Presentation
Professor Ken Birman COORDINATION CS4414 Lecture 17 CORNELL CS4414 - FALL 2020. 1 IDEA MAP FOR TODAY The monitor pattern in C++ Reminder: Thread Concept Problems monitors solve (and problems they dont solve) Lightweight vs. Heavyweight
Professor Ken Birman CS4414 Lecture 17
CORNELL CS4414 - FALL 2020. 1
CORNELL CS4414 - FALL 2020. 2
Lightweight vs. Heavyweight Thread “context” C++ mutex objects. Atomic data types. Reminder: Thread Concept Deadlocks and Livelocks The monitor pattern in C++ Problems monitors solve (and problems they don’t solve) Additional Coordination Patterns
CORNELL CS4414 - FALL 2020. 3
CORNELL CS4414 - FALL 2020. 4
Producers Bounded buffer Consumers
CORNELL CS4414 - FALL 2020. 5
Producer thread(s) Consumer thread(s) Bounded Buffer
CORNELL CS4414 - FALL 2020. 6
CORNELL CS4414 - FALL 2020. 7
CORNELL CS4414 - FALL 2020. 8
Main thread File opener Word-count workers
CORNELL CS4414 - FALL 2020. 9
CORNELL CS4414 - FALL 2020. 10
CORNELL CS4414 - FALL 2020. 11
CORNELL CS4414 - FALL 2020. 12
CORNELL CS4414 - FALL 2020. 13
CORNELL CS4414 - FALL 2020. 14
CORNELL CS4414 - FALL 2020. 15
CORNELL CS4414 - FALL 2020. 16
CORNELL CS4414 - FALL 2020. 17
CORNELL CS4414 - FALL 2020. 18
CORNELL CS4414 - FALL 2020. 19
CORNELL CS4414 - FALL 2020. 20
CORNELL CS4414 - FALL 2020. 21
CORNELL CS4414 - FALL 2020. 22
CORNELL CS4414 - FALL 2020. 23
CORNELL CS4414 - FALL 2020. 24
CORNELL CS4414 - FALL 2020. 25
CORNELL CS4414 - FALL 2020. 26
CORNELL CS4414 - FALL 2020. 27
CORNELL CS4414 - FALL 2020. 28
Leader thread Worker threads Tasks to be performed (“peel these potatoes”)
CORNELL CS4414 - FALL 2020. 29
Leader thread Worker threads Tasks to be performed (“peel these potatoes”)
CORNELL CS4414 - FALL 2020. 30
Leader thread Worker threads Bag is empty? Workers terminate (threads exit)
CORNELL CS4414 - FALL 2020. 31
Word-to-do queue
CORNELL CS4414 - FALL 2020. 32
A std::list!
CORNELL CS4414 - FALL 2020. 33
CORNELL CS4414 - FALL 2020. 34
CORNELL CS4414 - FALL 2020. 35
CORNELL CS4414 - FALL 2020. 36
CORNELL CS4414 - FALL 2020. 37
Worker threads Time Phase one
CORNELL CS4414 - FALL 2020. 38
Worker threads Time Phase one Barrier 1 Done 3 Done 2 Done All are done! Phase two can start
CORNELL CS4414 - FALL 2020. 39
Worker threads Time Phase one Barrier Phase two
CORNELL CS4414 - FALL 2020. 40
CORNELL CS4414 - FALL 2020. 41
Sender thread(s) Worker threads Event A
CORNELL CS4414 - FALL 2020. 42
Sender thread(s) Worker threads Event A Event B Race condition: Danger is that
A, but others see A before B.
CORNELL CS4414 - FALL 2020. 43
Sender thread(s) Worker threads Event A Event B Race condition: Danger is that
A, but others see A before B.
CORNELL CS4414 - FALL 2020. 44
Sender thread(s) Worker threads Event A Event B
CORNELL CS4414 - FALL 2020. 45
CORNELL CS4414 - FALL 2020. 46
Sender thread(s) Worker threads Event A Event B
CORNELL CS4414 - FALL 2020. 47
CORNELL CS4414 - FALL 2020. 48
Leader Worker threads Shard A Shard B Shard C
CORNELL CS4414 - FALL 2020. 49
CORNELL CS4414 - FALL 2020. 50
Leader Worker threads Shard A Shard B Shard C
CORNELL CS4414 - FALL 2020. 51
Leader Worker threads Shard A Shard B Shard C Result A Result B Result C
CORNELL CS4414 - FALL 2020. 52
CORNELL CS4414 - FALL 2020. 53
Leader Worker threads Shard A Shard B Shard C
CORNELL CS4414 - FALL 2020. 54
Leader Worker threads Shard A Shard B Shard C Result A Result B Result C
CORNELL CS4414 - FALL 2020. 55
Leader Worker threads Shard A Shard B Shard C Result A Result B Result C Subset 3 Subset 2 Subset 1
CORNELL CS4414 - FALL 2020. 56
Leader Worker threads Shard A Shard B Shard C Result A Result B Result C Subset 3 Subset 2 Subset 1 Subset 3 Subset 2 Subset 1 Subset 3 Subset 2 Subset 1
CORNELL CS4414 - FALL 2020. 57
Leader Worker threads Shard A Shard B Shard C Result A Result B Result C Subset 3 Subset 2 Subset 1 Subset 3 Subset 2 Subset 1 Subset 3 Subset 2 Subset 1
Not shown: There are messages being sent from A to B and C, from B to A and C, and from C to A and B. These “shuffle” the data
CORNELL CS4414 - FALL 2020. 58
CORNELL CS4414 - FALL 2020. 59
Leader Worker threads Shard A Shard B Shard C Result A Result B Result C Subset 3 Subset 2 Subset 1
CORNELL CS4414 - FALL 2020. 60
Leader Worker threads Shard A Shard B Shard C Result A Result B Result C Subset 3 Subset 2 Subset 1 Subset 3 Subset 2 Subset 1 Subset 3 Subset 2 Subset 1
CORNELL CS4414 - FALL 2020. 61
Leader Worker threads Shard A Shard B Shard C Result A Result B Result C Subset 3 Subset 2 Subset 1 Subset 3 Subset 2 Subset 1 Subset 3 Subset 2 Subset 1
CORNELL CS4414 - FALL 2020. 62
Leader Worker threads Shard A Shard B Shard C Result A Result B Result C Reduced results A Reduced results B Reduced results C
CORNELL CS4414 - FALL 2020. 63
CORNELL CS4414 - FALL 2020. 64
CORNELL CS4414 - FALL 2020. 65
CORNELL CS4414 - FALL 2020. 66
CORNELL CS4414 - FALL 2020. 67
CORNELL CS4414 - FALL 2020. 68
CORNELL CS4414 - FALL 2020. 69
CORNELL CS4414 - FALL 2020. 70