Download presentation
Presentation is loading. Please wait.
Published byJulianna Ward Modified over 9 years ago
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.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.