Lecture 30
Midterm 2
return exam
go over answers and grading of each problem
Plan for the Rest of Today
review of class
overview of Sections 9.4 to 9.6 so you have an idea what they cover
course evaluations and "lottery" for demo sign-ups
Class Summary
application types shared memory distributed memory
"systems" atomic actions (2) messages (7)
multithreaded critical sections (3) RPC and rendezvous (8)
semaphores (4) clients/servers (7, 8, 9.7)
monitors (5)
"parallel" spin locks (3) messages/peers (7)
barriers (3) manager/worker (9.1)
recursive/ heartbeat (9.2)
iterative (1, 3) pipleline (9.3)
data parallel (3)
bag of tasks (3)
other topics:
implementations (10)
scientific computing (11)
parallel tools (12)
decentralized computing (9.4-9.6)
Probes and Echoes -- Section 9.4
used to disseminate and/or gather information
probes: disseminate info or request
echoes: gather information
applications: network topology problem; Web "crawlers"
Broadcast Algorithms -- Section 9.5
used to disseminate information or to make decentralized decisions
(broadcast also used in parallel computing)
logical clocks and timestamps; ordering of events -- see below for details
application: Isis toolkit (used on Wall Street!)
Token Passing Algorithms -- Section 9.6
used to convey permission: e.g., token ring or replicated files
or to detect termination: e.g., of SR programs
Logical Clocks and Event Ordering
goal: total ordering of events
needs: software clocks and tiebreaker
logical clocks -- count communication events
use timestamps (ts) in messages
send -- ts = lc; lc++
receive -- lc = max(lc, ts+1); lc++
making decisions
broadcast a message
wait until have a later message from EVERY OTHER process
now know you won't ever see an earlier message; hence if your
broadcast is the oldest, you can act upon it
use logical clocks for order
use something like process ids to break ties