Abstract
This paper addresses the problem of universal synchronization primitives that can support scalable thread synchronization for large-scale manycore architectures. The universal synchronization primitives that have been deployed widely in conventional architectures, are the compare-and-swap (CAS) and load-linked/store-conditional (LL/SC) primitives. However, such synchronization primitives are expected to reach their scalability limits in the evolution to manycore architectures with thousands of cores.
We introduce a non-blocking full/empty bit primitive, or NB-FEB for short, as a promising synchronization primitive for parallel programming on manycore architectures. We show that the NB-FEB primitive is universal, scalable, feasible and easy to use. NB-FEB, together with registers, can solve the consensus problem for an arbitrary number of processes (universality). NB-FEB is combinable, namely its memory requests to the same memory location can be combined into only one memory request, which consequently makes NB-FEB scalable (scalability). Since NB-FEB is a variant of the original full/empty bit that always returns a value instead of waiting for a conditional flag, it is as feasible as the original full/empty bit, which has been implemented in many computer systems (feasibility). We construct, on top of NB-FEB, a non-blocking software transactional memory system called NBFEB-STM, which can be used as an abstraction to handle concurrent threads easily. NBFEB-STM is space efficient: the space complexity of each object updated by N concurrent threads/transactions is \({\it \Theta}(N)\), which is optimal.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Afek, Y., Attiya, H., Dolev, D., Gafni, E., Merritt, M., Shavit, N.: Atomic snapshots of shared memory. J. ACM 40(4), 873–890 (1993)
Asanovic, K., et al.: The landscape of parallel computing research: A view from Berkeley. TR No. UCB/EECS-2006-183, Univ. of California, Berkeley (2006)
Blelloch, G.E., Gibbons, P.B., Vardhan, S.H.: Combinable memory-block transactions. In: Proc. of the ACM Symp. on Parallel Algorithms and Architectures (SPAA), pp. 23–34 (2008)
Gottlieb, A., et al.: The NYU Ultracomputer—designing a MIMD, shared-memory parallel machine (extended abstract). In: Proc. of the Intl. Symp. on Computer Architecture (ISCA), pp. 27–42 (1982)
Guerraoui, R., Herlihy, M.P., Pochon, B.: Polymorphic contention management. In: Fraigniaud, P. (ed.) DISC 2005. LNCS, vol. 3724, pp. 303–323. Springer, Heidelberg (2005)
Guerraoui, R., Kapalka, M.: On the correctness of transactional memory. In: Proc. of the ACM Symp. on Principles and Practice of Parallel Programming (PPoPP), pp. 175–184 (2008)
Ha, P.H., Tsigas, P., Anshus, O.J.: Nb-feb: An easy-to-use and scalable universal synchronization primitive for parallel programming. TR No. CS-2008-69, Univ. of Tromsø, Norway (2008), http://www.cs.uit.no/~phuong/nbfeb_tr.pdf
Harris, T., Fraser, K.: Language support for lightweight transactions. In: Proc. of the ACM Conf. on Object-oriented Programing, Systems, Languages, and Applications (OOPSLA), pp. 388–402 (2003)
Herlihy, M.: Wait-free synchronization. ACM Transaction on Programming and Systems 11(1), 124–149 (1991)
Herlihy, M., Luchangco, V., Moir, M., Scherer III, W.N.: Software transactional memory for dynamic-sized data structures. In: Proc. of Symp. on Principles of Distributed Computing (PODC), pp. 92–101 (2003)
Kruskal, C.P., et al.: Efficient synchronization of multiprocessors with shared memory. ACM Trans. Program. Lang. Syst. 10(4), 579–601 (1988)
Marathe, V.J., Scherer III, W.N., Scott, M.L.: Adaptive software transactional memory. In: Fraigniaud, P. (ed.) DISC 2005. LNCS, vol. 3724, pp. 354–368. Springer, Heidelberg (2005)
NVIDIA. NVIDIA CUDA Compute Unified Device Architecture, Programming Guide, version 1.1. NVIDIA Corporation (2007)
Pfister, G.F., et al.: The IBM research parallel processor prototype (RP3): Introduction and architecture. In: ICPP, pp. 764–771 (1985)
Plotkin, S.A.: Sticky bits and universality of consensus. In: Proc. of Symp. on Principles of Distributed Computing (PODC), pp. 159–175 (1989)
Rangan, R., Vachharajani, N., Vachharajani, M., August, D.: Decoupled software pipelining with the synchronization array. In: Proc. of the Intl. Conf. on Parallel Architecture and Compilation Techniques (PACT), pp. 177–188 (2004)
Riegel, T., Felber, P., Fetzer, C.: A lazy snapshot algorithm with eager validation. In: Dolev, S. (ed.) DISC 2006. LNCS, vol. 4167, pp. 284–298. Springer, Heidelberg (2006)
Scherer III, W.N., Scott, M.L.: Advanced contention management for dynamic software transactional memory. In: Proc. of Symp. on Principles of Distributed Computing (PODC), pp. 240–248 (2005)
Sridharan, S., Rodrigues, A., Kogge, P.: Evaluating synchronization techniques for light-weight multithreaded/multicore architectures. In: Proc. of the ACM Symp. on Parallel Algorithms and Architectures (SPAA), pp. 57–58 (2007)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Ha, P.H., Tsigas, P., Anshus, O.J. (2009). NB-FEB: A Universal Scalable Easy-to-Use Synchronization Primitive for Manycore Architectures. In: Abdelzaher, T., Raynal, M., Santoro, N. (eds) Principles of Distributed Systems. OPODIS 2009. Lecture Notes in Computer Science, vol 5923. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-10877-8_16
Download citation
DOI: https://doi.org/10.1007/978-3-642-10877-8_16
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-10876-1
Online ISBN: 978-3-642-10877-8
eBook Packages: Computer ScienceComputer Science (R0)