Presentation is loading. Please wait.

Presentation is loading. Please wait.

Synchronization Methods for Multicore Programming Brendan Lynch.

Similar presentations


Presentation on theme: "Synchronization Methods for Multicore Programming Brendan Lynch."— Presentation transcript:

1 Synchronization Methods for Multicore Programming Brendan Lynch

2 Introduction Synchronization techniques – locks, barriers, non-blocking approaches, atomic primitives Concurrent memory paradigms – shared memory, distributed memory Safety concerns and guarantees – Mutual exclusion, deadlock, livelock, starvation, race conditions, priority inversion

3 Synchronization in the Cloud Granularity of synchronization plays a major roll in parallel performance. Modeling the concurrency of a program allows the user to decide on correct granularity. Cloud computing relies on a classic distributed memory paradigm. – Memory updates in the cloud are very expensive

4 Synchronization in the Cloud Local parallel code should always be optimized for concurrency. Coarse grain locks provide necessary data synchronization – Design emphasis on reliability and not performance

5 Chubby Locks Relies on a locking file system as well as paxos algorithm master election. – These combined give users the illusion of sequential programming System scales well with development – ‘Young’ systems do not plan for consensus protocol Maintaining a small file system allows for local small read/write. – Commonly used for synchronizing events with high polling.

6 Zookeeper Used by Amazon Simple Queue Service – Claims wait free synchronization through operation linearizability – Coordination kernel allows users to program their own primitive operations. This is important for application specific synchronization requirements. Zookeeper has two basic ordering guarantees – Linearizable writes and FIFO client order

7 Zookeeper Linearizable writes: all requests that update the state of ZooKeeper are serializable and respect precedence FIFO client ordering: all requests from a given client are executed in the order that they were sent by the client. Locks and other primitives can be easily built in to the system. Blocking primitives will down-grade offered guarantees; except for the two mentioned above.

8 Zookeeper Zab uses by default simple majority quorums to decide on a proposal, so Zab and thus ZooKeeper can only work if a majority of servers are correct (i.e., with 2f + 1 server we can tolerate f failures).

9 Art of Multiprocessor Programming 9 Read/Write Register Example time write(0) write(1) write(2) time read(1) write(1) write(2) linearizable (4)

10 Art of Multiprocessor Programming 10 Read/Write Register Example time read(1)write(0) write(1) write(2) time read(2) write(1)write(2) Not linearizable (2)

11 References Mike Burrows, The Chubby lock service for loosely-coupled distributed systems, Proceedings of the 7th symposium on Operating systems design and implementation, November 06- 08, 2006, Seattle, Washington Maurice Herlihy and Nir Shavit. The Art of Multiprocessor Programming. Morgan Kaufmann, March 2008. P. Hunt, M. Konar, F. P. Junqueira, and B. Reed, "ZooKeeper: wait-free coordination for internet-scale systems," in USENIXATC'10: Proceedings of the 2010 USENIX conference on USENIX annual technical conference. Berkeley, CA, USA: USENIX Association, 2010, pp. 11-11.


Download ppt "Synchronization Methods for Multicore Programming Brendan Lynch."

Similar presentations


Ads by Google