The Synchronization Power of Coalesced Memory Accesses

  • Phuong Hoai Ha
  • Philippas Tsigas
  • Otto J. Anshus
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5218)


Multicore processor architectures have established themselves as the new generation of processor architectures. As part of the one core to many cores evolution, memory access mechanisms have advanced rapidly. Several new memory access mechanisms have been implemented in many modern commodity multicore processors. Memory access mechanisms, by devising how processing cores access the shared memory, directly influence the synchronization capabilities of the multicore processors. Therefore, it is crucial to investigate the synchronization power of these new memory access mechanisms.

This paper investigates the synchronization power of coalesced memory accesses, a family of memory access mechanisms introduced in recent large multicore architectures like the CUDA graphics processors. We first design three memory access models to capture the fundamental features of the new memory access mechanisms. Subsequently, we prove the exact synchronization power of these models in terms of their consensus numbers. These tight results show that the coalesced memory access mechanisms can facilitate strong synchronization between the threads of multicore processors, without the need of synchronization primitives other than reads and writes. In the case of the contemporary CUDA processors, our results imply that the coalesced memory access mechanisms have consensus numbers up to sixteen.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Cell Broadband Engine Architecture, version 1.01. IBM, Sony and Toshiba Corporations (2006)Google Scholar
  2. 2.
    NVIDIA CUDA Compute Unified Device Architecture, Programming Guide, version 1.1. NVIDIA Corporation (2007)Google Scholar
  3. 3.
    Adve, S.V., Gharachorloo, K.: Shared memory consistency models: A tutorial. Computer 29(12), 66–76 (1996)CrossRefGoogle Scholar
  4. 4.
    Afek, Y., Merritt, M., Taubenfeld, G.: The power of multi-objects (extended abstract). In: PODC 1996: Proceedings of the fifteenth annual ACM symposium on Principles of distributed computing, pp. 213–222 (1996)Google Scholar
  5. 5.
    Attiya, H., Welch, J.: Distributed Computing: Fundamentals, Simulations, and Advanced Topics. John Wiley and Sons, Inc., Chichester (2004)Google Scholar
  6. 6.
    Buhrman, H., Panconesi, A., Silvestri, R., Vitanyi, P.: On the importance of having an identity or, is consensus really universal? Distrib. Comput. 18(3), 167–176 (2006)CrossRefGoogle Scholar
  7. 7.
    Castano, I., Micikevicius, P.: Personal communication. NVIDIA (2008)Google Scholar
  8. 8.
    Fischer, M.J., Lynch, N.A., Paterson, M.S.: Impossibility of distributed consensus with one faulty process. J. ACM 32(2), 374–382 (1985)zbMATHCrossRefMathSciNetGoogle Scholar
  9. 9.
    Ha, P.H., Tsigas, P., Anshus, O.J.: The synchronization power of coalesced memory accesses. Technical report CS:2008-68, University of Tromsø, Norway (2008)Google Scholar
  10. 10.
    Herlihy, M.: Wait-free synchronization. ACM Transaction on Programming and Systems 11(1), 124–149 (1991)CrossRefGoogle Scholar
  11. 11.
    Jayanti, P., Khanna, S.: On the power of multi-objects. In: Mavronicolas, M. (ed.) WDAG 1997. LNCS, vol. 1320, pp. 320–332. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  12. 12.
    Lamport, L.: How to make a multiprocessor computer that correctly executes multiprocess progranm. IEEE Trans. Comput. 28(9), 690–691 (1979)zbMATHCrossRefGoogle Scholar
  13. 13.
    Owens, J.D., Luebke, D., Govindaraju, N., Harris, M., Krüger, J., Lefohn, A.E., Purcell, T.J.: A survey of general-purpose computation on graphics hardware. Computer Graphics Forum 26(1), 80–113 (2007)CrossRefGoogle Scholar
  14. 14.
    Ramamurthy, S., Moir, M., Anderson, J.H.: Real-time object sharing with minimal system support. In: Proc. of Symp. on Principles of Distributed Computing (PODC), pp. 233–242 (1996)Google Scholar
  15. 15.
    Ruppert, E.: Determining consensus numbers. In: Proc. of Symp. on Principles of Distributed Computing (PODC), pp. 93–99 (1997)Google Scholar
  16. 16.
    Ruppert, E.: Consensus numbers of multi-objects. In: Proc. of Symp. on Principles of Distributed Computing (PODC), pp. 211–217 (1998)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

  • Phuong Hoai Ha
    • 1
  • Philippas Tsigas
    • 2
  • Otto J. Anshus
    • 1
  1. 1.Department of Computer Science, Faculty of ScienceUniversity of TromsøTromsøNorway
  2. 2.Department of Computer Science and EngineeringChalmers University of TechnologyGöteborgSweden

Personalised recommendations