Skip to main content

NB-FEB: A Universal Scalable Easy-to-Use Synchronization Primitive for Manycore Architectures

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 5923))

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.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Afek, Y., Attiya, H., Dolev, D., Gafni, E., Merritt, M., Shavit, N.: Atomic snapshots of shared memory. J. ACM 40(4), 873–890 (1993)

    Article  MATH  Google Scholar 

  2. 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)

    Google Scholar 

  3. 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)

    Google Scholar 

  4. 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)

    Google Scholar 

  5. 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)

    Chapter  Google Scholar 

  6. 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)

    Google Scholar 

  7. 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

  8. 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)

    Google Scholar 

  9. Herlihy, M.: Wait-free synchronization. ACM Transaction on Programming and Systems 11(1), 124–149 (1991)

    Article  Google Scholar 

  10. 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)

    Google Scholar 

  11. Kruskal, C.P., et al.: Efficient synchronization of multiprocessors with shared memory. ACM Trans. Program. Lang. Syst. 10(4), 579–601 (1988)

    Article  MATH  Google Scholar 

  12. 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)

    Chapter  Google Scholar 

  13. NVIDIA. NVIDIA CUDA Compute Unified Device Architecture, Programming Guide, version 1.1. NVIDIA Corporation (2007)

    Google Scholar 

  14. Pfister, G.F., et al.: The IBM research parallel processor prototype (RP3): Introduction and architecture. In: ICPP, pp. 764–771 (1985)

    Google Scholar 

  15. Plotkin, S.A.: Sticky bits and universality of consensus. In: Proc. of Symp. on Principles of Distributed Computing (PODC), pp. 159–175 (1989)

    Google Scholar 

  16. 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)

    Google Scholar 

  17. 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)

    Chapter  Google Scholar 

  18. 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)

    Google Scholar 

  19. 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)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics