skip to main content
Skip header Section
The Art of Multiprocessor ProgrammingMarch 2008
Publisher:
  • Morgan Kaufmann Publishers Inc.
  • 340 Pine Street, Sixth Floor
  • San Francisco
  • CA
  • United States
ISBN:978-0-12-370591-4
Published:14 March 2008
Pages:
528
Skip Bibliometrics Section
Bibliometrics
Skip Abstract Section
Abstract

This book is the first comprehensive presentation of the principles and tools available for programming multiprocessor machines. It is of immediate use to programmers working with the new architectures. For example, the next generation of computer game consoles will all be multiprocessor-based, and the game industry is currently struggling to understand how to address the programming challenges presented by these machines.This change in the industry is so fundamental that it is certain to require a significant response by universities, and courses on multicore programming will become a staple of computer science curriculums.The authors are well known and respected in this community and both teach and conduct research in this area. Prof. Maurice Herlihy is on the faculty of Brown University. He is the recipient of the 2003 Dijkstra Prize in distributed computing. Prof. Nir Shavit is on the faculty of Tel-Aviv University and a member of the technical staff at Sun Microsystems Laboratories. In 2004 they shared the Gdel Prize, the highest award in theoretical computer science. * THE book on multicore programming, the new paradigm of computer science* Written by the world's most revered experts in multiprocessor programming and performance* Includes examples, models, exercises, PowerPoint slides, and sample Java programs

Cited By

  1. Li Z and Feng X (2024). A program logic for obstruction-freedom, Frontiers of Computer Science: Selected Publications from Chinese Universities, 18:6, Online publication date: 1-Dec-2024.
  2. ACM
    Enea C and Koskinen E (2024). Scenario-Based Proofs for Concurrent Objects, Proceedings of the ACM on Programming Languages, 8:OOPSLA1, (1294-1323), Online publication date: 29-Apr-2024.
  3. Castañeda A and Piña M (2024). Read/write fence-free work-stealing with multiplicity, Journal of Parallel and Distributed Computing, 186:C, Online publication date: 1-Apr-2024.
  4. ACM
    Marotta R, Ianni M, Pellegrini A and Quaglia F (2024). A Conflict-Resilient Lock-Free Linearizable Calendar Queue, ACM Transactions on Parallel Computing, 11:1, (1-32), Online publication date: 31-Mar-2024.
  5. ACM
    Ramos J, Du Bois A and Cavalheiro G Obstruction-Free Distributed Transactional Memory Proceedings of the XXVII Brazilian Symposium on Programming Languages, (33-40)
  6. Aksenov V, Alistarh D, Drozdova A and Mohtashami A (2023). The splay-list: a distribution-adaptive concurrent skip-list, Distributed Computing, 36:3, (395-418), Online publication date: 1-Sep-2023.
  7. Castañeda A, Hurault A, Quéinnec P and Roy M (2023). Tasks in modular proofs of concurrent algorithms, Information and Computation, 292:C, Online publication date: 1-Jun-2023.
  8. ACM
    Narayanan V, Detweiler D, Huang T and Burtsev A DRAMHiT: A Hash Table Architected for the Speed of DRAM Proceedings of the Eighteenth European Conference on Computer Systems, (817-834)
  9. ACM
    Costea A, Tiwari A, Chianasta S, R K, Roychoudhury A and Sergey I (2023). Hippodrome: Data Race Repair Using Static Analysis Summaries, ACM Transactions on Software Engineering and Methodology, 32:2, (1-33), Online publication date: 30-Apr-2023.
  10. Diep T, Ha P and Fürlinger K (2023). A general approach for supporting nonblocking data structures on distributed-memory systems, Journal of Parallel and Distributed Computing, 173:C, (48-60), Online publication date: 1-Mar-2023.
  11. ACM
    Castañeda A, Rajsbaum S and Raynal M (2022). A Linearizability-based Hierarchy for Concurrent Specifications, Communications of the ACM, 66:1, (86-97), Online publication date: 1-Jan-2023.
  12. ACM
    Honorio B, De Carvalho J, Morales C, Baldassin A and Araujo G (2022). Using Barrier Elision to Improve Transactional Code Generation, ACM Transactions on Architecture and Code Optimization, 19:3, (1-23), Online publication date: 30-Sep-2022.
  13. Thomas S, Hayne R, Pulaj J and Mendes H (2022). Using skip graphs for increased NUMA locality, Journal of Parallel and Distributed Computing, 167:C, (31-49), Online publication date: 1-Sep-2022.
  14. Li Y, Zeng L, Chen G, Gu C, Luo F, Ding W, Shi Z and Fuentes J (2022). A Multi-hashing Index for hybrid DRAM-NVM memory systems, Journal of Systems Architecture: the EUROMICRO Journal, 128:C, Online publication date: 1-Jul-2022.
  15. ACM
    Anderson D, Blelloch G and Wei Y Turning manual concurrent memory reclamation into automatic reference counting Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation, (61-75)
  16. Raynal M and Taubenfeld G (2022). A visit to mutual exclusion in seven dates, Theoretical Computer Science, 919:C, (47-65), Online publication date: 5-Jun-2022.
  17. Horrocks I, Olivares J, Cocchi V, Motik B and Roy D The Dow Jones Knowledge Graph The Semantic Web, (427-443)
  18. Attiya H, Castañeda A, Hendler D and Perrin M (2022). Separating lock-freedom from wait-freedom at every level of the consensus hierarchy, Journal of Parallel and Distributed Computing, 163:C, (181-197), Online publication date: 1-May-2022.
  19. Chen R, Wang Z, Su H, Xie S and Wang Z (2022). Parallel XPath query based on cost optimization, The Journal of Supercomputing, 78:4, (5420-5449), Online publication date: 1-Mar-2022.
  20. Atienza D, Bielza C and Larrañaga P (2022). Semiparametric Bayesian networks, Information Sciences: an International Journal, 584:C, (564-582), Online publication date: 1-Jan-2022.
  21. ACM
    D’Osualdo E, Sutherland J, Farzan A and Gardner P (2021). TaDA Live: Compositional Reasoning for Termination of Fine-grained Concurrent Programs, ACM Transactions on Programming Languages and Systems, 43:4, (1-134), Online publication date: 31-Dec-2022.
  22. Jayanti S and Tarjan R (2021). Concurrent disjoint set union, Distributed Computing, 34:6, (413-436), Online publication date: 1-Dec-2021.
  23. ACM
    Gómez-Hernández E, Cebrian J, Titos-Gil R, Kaxiras S and Ros A Efficient, Distributed, and Non-Speculative Multi-Address Atomic Operations MICRO-54: 54th Annual IEEE/ACM International Symposium on Microarchitecture, (337-349)
  24. Imbs D, Mostéfaoui A, Perrin M and Raynal M (2022). Set-constrained delivery broadcast, Theoretical Computer Science, 886:C, (49-68), Online publication date: 13-Sep-2021.
  25. Rukundo A and Tsigas P TSLQueue: An Efficient Lock-Free Design for Priority Queues Euro-Par 2021: Parallel Processing, (385-401)
  26. ACM
    yi z, yao y and Chen K A Universal Construction to implement Concurrent Data Structure for NUMA-muticore Proceedings of the 50th International Conference on Parallel Processing, (1-11)
  27. Pani T, Weissenbacher G and Zuleger F (2021). Rely-guarantee bound analysis of parameterized concurrent shared-memory programs, Formal Methods in System Design, 57:2, (270-302), Online publication date: 1-Aug-2021.
  28. ACM
    Chowdhury S and Golab W A Scalable Recoverable Skip List for Persistent Memory Proceedings of the 33rd ACM Symposium on Parallelism in Algorithms and Architectures, (426-428)
  29. ACM
    Nikolaev R and Ravindran B Snapshot-free, transparent, and robust memory reclamation for lock-free data structures Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation, (987-1002)
  30. ACM
    Anderson D, Blelloch G and Wei Y Concurrent deferred reference counting with constant-time overhead Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation, (526-541)
  31. ACM
    Raynal M (2021). Distributed Computability, ACM SIGACT News, 52:2, (92-110), Online publication date: 14-Jun-2021.
  32. ACM
    Gavrielatos V, Nagarajan V and Fatourou P Towards the Synthesis of Coherence/Replication Protocols from Consistency Models via Real-Time Orderings Proceedings of the 8th Workshop on Principles and Practice of Consistency for Distributed Data, (1-10)
  33. ACM
    Gavrielatos V, Katsarakis A and Nagarajan V Odyssey Proceedings of the Sixteenth European Conference on Computer Systems, (245-260)
  34. Singh M, Groves L and Potanin A A Relaxed Balanced Lock-Free Binary Search Tree Parallel and Distributed Computing, Applications and Technologies, (304-317)
  35. Gugnani S, Kashyap A and Lu X (2021). Understanding the idiosyncrasies of real persistent memory, Proceedings of the VLDB Endowment, 14:4, (626-639), Online publication date: 1-Dec-2020.
  36. ACM
    Feldman Y, Khyzha A, Enea C, Morrison A, Nanevski A, Rinetzky N and Shoham S (2020). Proving highly-concurrent traversals correct, Proceedings of the ACM on Programming Languages, 4:OOPSLA, (1-29), Online publication date: 13-Nov-2020.
  37. Conchon S, Declerck D and Zaïdi F (2020). Parameterized Model Checking on the TSO Weak Memory Model, Journal of Automated Reasoning, 64:7, (1307-1330), Online publication date: 1-Oct-2020.
  38. ACM
    Basin D, Bortnikov E, Braginsky A, Golan-Gueta G, Hillel E, Keidar I and Sulamy M (2020). KiWi, ACM Transactions on Parallel Computing, 7:3, (1-28), Online publication date: 5-Aug-2020.
  39. Çirisci B, Enea C, Farzan A and Mutluergil S Root Causing Linearizability Violations Computer Aided Verification, (350-375)
  40. Nagar K, Mukherjee P and Jagannathan S Semantics, Specification, and Bounded Verification of Concurrent Libraries in Replicated Systems Computer Aided Verification, (251-274)
  41. ACM
    Siakavaras D, Billis P, Nikas K, Goumas G and Koziris N Efficient Concurrent Range Queries in B+-trees using RCU-HTM Proceedings of the 32nd ACM Symposium on Parallelism in Algorithms and Architectures, (571-573)
  42. ACM
    Alistarh D, Brown T and Singhal N Memory Tagging: Minimalist Synchronization for Scalable Concurrent Data Structures Proceedings of the 32nd ACM Symposium on Parallelism in Algorithms and Architectures, (37-49)
  43. ACM
    Haensel D, Morgenstern L, Beckmann A, Kabadshow I and Dachsel H Eventify Proceedings of the Platform for Advanced Scientific Computing Conference, (1-10)
  44. ACM
    Heidarshenas A, Gangwani T, Yesil S, Morrison A and Torrellas J Snug Proceedings of the 34th ACM International Conference on Supercomputing, (1-13)
  45. ACM
    Kang J and Jung J A marriage of pointer- and epoch-based reclamation Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation, (314-328)
  46. ACM
    Kim J, Cho H, Kim K, Yu J, Kang S and Jung H Long-lived Transactions Made Less Harmful Proceedings of the 2020 ACM SIGMOD International Conference on Management of Data, (495-510)
  47. Lu B, Hao X, Wang T and Lo E (2020). Dash, Proceedings of the VLDB Endowment, 13:8, (1147-1161), Online publication date: 1-Apr-2020.
  48. ACM
    Katsarakis A, Gavrielatos V, Katebzadeh M, Joshi A, Dragojevic A, Grot B and Nagarajan V Hermes: A Fast, Fault-Tolerant and Linearizable Replication Protocol Proceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems, (201-217)
  49. ACM
    Dananjaya M, Gavrielatos V, Joshi A and Nagarajan V Lazy Release Persistency Proceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems, (1173-1186)
  50. Ramos G, Boratto L and Caleiro C (2020). On the negative impact of social influence in recommender systems, Information Processing and Management: an International Journal, 57:2, Online publication date: 1-Mar-2020.
  51. Alapati P, Mutyam M and Saranam S (2019). Concurrent Treaps and Impact of Locking Objects, New Generation Computing, 38:1, (187-212), Online publication date: 1-Mar-2020.
  52. ACM
    Nikolaev R and Ravindran B Universal wait-free memory reclamation Proceedings of the 25th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, (130-143)
  53. ACM
    Meir H, Basin D, Bortnikov E, Braginsky A, Gottesman Y, Keidar I, Meir E, Sheffi G and Zuriel Y Oak Proceedings of the 25th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, (17-31)
  54. ACM
    Gavrielatos V, Katsarakis A, Nagarajan V, Grot B and Joshi A Kite Proceedings of the 25th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, (1-16)
  55. Smith G, Winter K and Colvin R (2019). Linearizability on hardware weak memory models, Formal Aspects of Computing, 32:1, (1-32), Online publication date: 1-Feb-2020.
  56. Masyagin S, Nurgalieva M and Succi G Kent Beck or Pablo Picasso? Speculations of the Relationships Between Artists in Software and Painting Software Technology: Methods and Tools, (3-9)
  57. ACM
    Zuriel Y, Friedman M, Sheffi G, Cohen N and Petrank E (2019). Efficient lock-free durable sets, Proceedings of the ACM on Programming Languages, 3:OOPSLA, (1-26), Online publication date: 10-Oct-2019.
  58. Smith G and Groves L Weakening Correctness and Linearizability for Concurrent Objects on Multicore Processors Formal Methods. FM 2019 International Workshops, (342-357)
  59. Winter K, Smith G and Derrick J (2019). Modelling concurrent objects running on the TSO and ARMv8 memory models, Science of Computer Programming, 184:C, Online publication date: 1-Oct-2019.
  60. ACM
    Gu R, Shao Z, Chen H, Kim J, Koenig J, Wu X, Sjöberg V and Costanzo D (2019). Building certified concurrent OS kernels, Communications of the ACM, 62:10, (89-99), Online publication date: 24-Sep-2019.
  61. Campagner A and Ciucci D (2019). Orthopartitions and soft clustering, Knowledge-Based Systems, 180:C, (51-61), Online publication date: 15-Sep-2019.
  62. Manjiyani Z, Iatrou C, Graube M and Urbas L Open Cognitive Control System Architecture 2019 24th IEEE International Conference on Emerging Technologies and Factory Automation (ETFA), (1673-1677)
  63. ACM
    Popovic M, Popovic M, Ghilezan S and Kordic B Formal Verification of Python Software Transactional Memory Serializability Based on the Push/Pull Semantic Model Proceedings of the 6th Conference on the Engineering of Computer Based Systems, (1-8)
  64. ACM
    Prasaad G, Ramalingam G and Rajan K Scaling Ordered Stream Processing on Shared-Memory Multicores Proceedings of Real-Time Business Intelligence and Analytics, (1-10)
  65. ACM
    Zhou T, Michael M and Spear M A Practical, Scalable, Relaxed Priority Queue Proceedings of the 48th International Conference on Parallel Processing, (1-10)
  66. ACM
    Hoseini F, Atalar A and Tsigas P Modeling the Performance of Atomic Primitives on Modern Architectures Proceedings of the 48th International Conference on Parallel Processing, (1-11)
  67. ACM
    Thomas S and Mendes H Layering Data Structures over Skip Graphs for Increased NUMA Locality Proceedings of the 2019 ACM Symposium on Principles of Distributed Computing, (422-424)
  68. Ma W, Zhu Y, Li C, Guo M and Bao Y (2019). BiloKey : A Scalable Bi-Index Locality-Aware In-Memory Key-Value Store, IEEE Transactions on Parallel and Distributed Systems, 30:7, (1528-1540), Online publication date: 1-Jul-2019.
  69. ACM
    Amer A, Archer C, Blocksome M, Cao C, Chuvelev M, Fujita H, Garzaran M, Guo Y, Hammond J, Iwasaki S, Raffenetti K, Shiryaev M, Si M, Taura K, Thapaliya S and Balaji P Software combining to mitigate multithreaded MPI contention Proceedings of the ACM International Conference on Supercomputing, (367-379)
  70. Delporte-Gallet C, Fauconnier H, Jurski Y, Laroussinie F and Sangnier A Towards Synthesis of Distributed Algorithms with SMT Solvers Networked Systems, (200-216)
  71. ACM
    Ben-David N, Blelloch G, Sun Y and Wei Y Multiversion Concurrency with Bounded Delay and Precise Garbage Collection The 31st ACM Symposium on Parallelism in Algorithms and Architectures, (241-252)
  72. ACM
    Jiang H, Liang H, Xiao S, Zha J and Feng X Towards certified separate compilation for concurrent programs Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation, (111-125)
  73. Lai L, Qing Z, Yang Z, Jin X, Lai Z, Wang R, Hao K, Lin X, Qin L, Zhang W, Zhang Y, Qian Z and Zhou J (2019). Distributed subgraph matching on timely dataflow, Proceedings of the VLDB Endowment, 12:10, (1099-1112), Online publication date: 1-Jun-2019.
  74. Antonino P, Gibson-Robinson T and Roscoe A (2019). Efficient verification of concurrent systems using local-analysis-based approximations and SAT solving, Formal Aspects of Computing, 31:3, (375-409), Online publication date: 1-Jun-2019.
  75. ACM
    Strati F, Giannoula C, Siakavaras D, Goumas G and Koziris N An adaptive concurrent priority queue for NUMA architectures Proceedings of the 16th ACM International Conference on Computing Frontiers, (135-144)
  76. Duarte R, Du Bois A, Pilla M, Cavalheiro G and Reiser R (2019). Comparing the performance of concurrent hash tables implemented in Haskell, Science of Computer Programming, 173:C, (56-70), Online publication date: 15-Mar-2019.
  77. ACM
    Bättig M and Gross T Encapsulated open nesting for STM Proceedings of the 24th Symposium on Principles and Practice of Parallel Programming, (315-326)
  78. Ianni M, Pellegrini A and Quaglia F (2019). Anonymous Readers Counting, IEEE Transactions on Parallel and Distributed Systems, 30:2, (286-299), Online publication date: 1-Feb-2019.
  79. ACM
    Herlihy M (2019). Blockchains from a distributed computing perspective, Communications of the ACM, 62:2, (78-85), Online publication date: 28-Jan-2019.
  80. ACM
    Gorogiannis N, O'Hearn P and Sergey I (2019). A true positives theorem for a static race detector, Proceedings of the ACM on Programming Languages, 3:POPL, (1-29), Online publication date: 2-Jan-2019.
  81. ACM
    Ugawa T, Ritson C and Jones R (2018). Transactional Sapphire, ACM Transactions on Programming Languages and Systems, 40:4, (1-56), Online publication date: 31-Dec-2019.
  82. ACM
    Gu R, Shao Z, Kim J, Wu X, Koenig J, Sjöberg V, Chen H, Costanzo D and Ramananandro T (2018). Certified concurrent abstraction layers, ACM SIGPLAN Notices, 53:4, (646-661), Online publication date: 2-Dec-2018.
  83. ACM
    Castañeda A, Rajsbaum S and Raynal M (2018). Unifying Concurrent Objects and Distributed Tasks, Journal of the ACM, 65:6, (1-42), Online publication date: 26-Nov-2018.
  84. ACM
    Calciu I, Sen S, Balakrishnan M and Aguilera M (2018). How to implement any concurrent data structure, Communications of the ACM, 61:12, (97-105), Online publication date: 20-Nov-2018.
  85. ACM
    Alistarh D, Leiserson W, Matveev A and Shavit N (2018). ThreadScan, ACM Transactions on Parallel Computing, 4:4, (1-18), Online publication date: 15-Sep-2018.
  86. ACM
    Sung C, Lahiri S, Enea C and Wang C Datalog-based scalable semantic diffing of concurrent programs Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering, (656-666)
  87. Gilad E, Brown T, Oskin M and Etsion Y Snapshot-Based Synchronization: A Fast Replacement for Hand-over-Hand Locking Euro-Par 2018: Parallel Processing, (465-479)
  88. ACM
    Dice D, Herlihy M and Kogan A (2016). Fast non-intrusive memory reclamation for highly-concurrent data structures, ACM SIGPLAN Notices, 51:11, (36-45), Online publication date: 19-Jul-2018.
  89. ACM
    Fatourou P, Kallimanis N and Ropars T An Efficient Wait-free Resizable Hash Table Proceedings of the 30th on Symposium on Parallelism in Algorithms and Architectures, (111-120)
  90. ACM
    Geissmann B and Gianinazzi L Parallel Minimum Cuts in Near-linear Work and Low Depth Proceedings of the 30th on Symposium on Parallelism in Algorithms and Architectures, (1-11)
  91. ACM
    Gu R, Shao Z, Kim J, Wu X, Koenig J, Sjöberg V, Chen H, Costanzo D and Ramananandro T Certified concurrent abstraction layers Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation, (646-661)
  92. Oswald N, Nagarajan V and Sorin D Protogen Proceedings of the 45th Annual International Symposium on Computer Architecture, (247-260)
  93. ACM
    Zakowski Y, Cachera D, Demange D and Pichardie D Verified compilation of linearizable data structures Proceedings of the 33rd Annual ACM Symposium on Applied Computing, (1881-1890)
  94. Bouzid Z, Raynal M and Sutra P (2018). Anonymous obstruction-free (n, k)-set agreement with $$n-k+1$$n-k+1 atomic read/write registers, Distributed Computing, 31:2, (99-117), Online publication date: 1-Apr-2018.
  95. ACM
    Prokopec A (2018). Cache-tries, ACM SIGPLAN Notices, 53:1, (137-151), Online publication date: 23-Mar-2018.
  96. ACM
    Guatto A, Westrick S, Raghunathan R, Acar U and Fluet M (2018). Hierarchical memory management for mutable state, ACM SIGPLAN Notices, 53:1, (81-93), Online publication date: 23-Mar-2018.
  97. ACM
    Arbel-Raviv M and Brown T (2018). Harnessing epoch-based reclamation for efficient range queries, ACM SIGPLAN Notices, 53:1, (14-27), Online publication date: 23-Mar-2018.
  98. Aspnes J, Censor-Hillel K and Yaakobi E (2018). Concurrent use of write-once memory, Journal of Parallel and Distributed Computing, 113:C, (250-260), Online publication date: 1-Mar-2018.
  99. ACM
    Prokopec A Cache-tries Proceedings of the 23rd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, (137-151)
  100. ACM
    Guatto A, Westrick S, Raghunathan R, Acar U and Fluet M Hierarchical memory management for mutable state Proceedings of the 23rd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, (81-93)
  101. ACM
    Arbel-Raviv M and Brown T Harnessing epoch-based reclamation for efficient range queries Proceedings of the 23rd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, (14-27)
  102. ACM
    Attiya H, Gotsman A, Hans S and Rinetzky N (2017). Characterizing Transactional Memory Consistency Conditions Using Observational Refinement, Journal of the ACM, 65:1, (1-44), Online publication date: 24-Jan-2018.
  103. ACM
    Imbs D, Mostéfaoui A, Perrin M and Raynal M Set-Constrained Delivery Broadcast Proceedings of the 19th International Conference on Distributed Computing and Networking, (1-10)
  104. Alberti F, Ghilardi S and Pagani E (2017). Cardinality constraints for arrays (decidability results and applications), Formal Methods in System Design, 51:3, (545-574), Online publication date: 1-Dec-2017.
  105. Smith G and Winter K (2017). Relating trace refinement and linearizability, Formal Aspects of Computing, 29:6, (935-950), Online publication date: 1-Nov-2017.
  106. ACM
    Yates R and Scott M (2017). Improving STM performance with transactional structs, ACM SIGPLAN Notices, 52:10, (186-196), Online publication date: 31-Oct-2017.
  107. ACM
    Basin D, Bortnikov E, Braginsky A, Golan-Gueta G, Hillel E, Keidar I and Sulamy M (2017). KiWi, ACM SIGPLAN Notices, 52:8, (357-369), Online publication date: 26-Oct-2017.
  108. ACM
    Roghanchi S, Eriksson J and Basu N ffwd Proceedings of the 26th Symposium on Operating Systems Principles, (342-358)
  109. Jung H, Han H and Kang S (2017). Scalable database logging for multicores, Proceedings of the VLDB Endowment, 11:2, (135-148), Online publication date: 1-Oct-2017.
  110. ACM
    Gordon C, Ernst M, Grossman D and Parkinson M (2017). Verifying Invariants of Lock-Free Data Structures with Rely-Guarantee and Refinement Types, ACM Transactions on Programming Languages and Systems, 39:3, (1-54), Online publication date: 30-Sep-2017.
  111. ACM
    Calciu I, Sen S, Balakrishnan M and Aguilera M (2017). How to implement any concurrent data structure for modern servers, ACM SIGOPS Operating Systems Review, 51:1, (24-32), Online publication date: 11-Sep-2017.
  112. ACM
    Yates R and Scott M Improving STM performance with transactional structs Proceedings of the 10th ACM SIGPLAN International Symposium on Haskell, (186-196)
  113. ACM
    Goldstein M, Dayan D, Rabin M, Berlowitz D, Berlowitz O and Yehezkael R Design principles of an embedded language (EFL) enabling well defined order-independent execution Proceedings of the Fifth European Conference on the Engineering of Computer-Based Systems, (1-8)
  114. ACM
    Sorensen T, Evrard H and Donaldson A Cooperative kernels: GPU multitasking for blocking algorithms Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering, (431-441)
  115. Sánchez A and Sánchez C (2017). Parametrized verification diagrams, Annals of Mathematics and Artificial Intelligence, 80:3-4, (249-282), Online publication date: 1-Aug-2017.
  116. ACM
    Liu Z, Calciu I, Herlihy M and Mutlu O Concurrent Data Structures for Near-Memory Computing Proceedings of the 29th ACM Symposium on Parallelism in Algorithms and Architectures, (235-245)
  117. ACM
    Alglave J, Kroening D, Nimal V and Poetzl D (2017). Don’t Sit on the Fence, ACM Transactions on Programming Languages and Systems, 39:2, (1-38), Online publication date: 30-Jun-2017.
  118. Laborde P, Feldman S and Dechev D (2017). A Wait-Free Hash Map, International Journal of Parallel Programming, 45:3, (421-448), Online publication date: 1-Jun-2017.
  119. ACM
    Calciu I, Sen S, Balakrishnan M and Aguilera M (2017). Black-box Concurrent Data Structures for NUMA Architectures, ACM SIGPLAN Notices, 52:4, (207-221), Online publication date: 12-May-2017.
  120. ACM
    Calciu I, Sen S, Balakrishnan M and Aguilera M (2017). Black-box Concurrent Data Structures for NUMA Architectures, ACM SIGARCH Computer Architecture News, 45:1, (207-221), Online publication date: 11-May-2017.
  121. ACM
    Alistarh D, Leiserson W, Matveev A and Shavit N Forkscan Proceedings of the Twelfth European Conference on Computer Systems, (483-498)
  122. ACM
    Calciu I, Sen S, Balakrishnan M and Aguilera M Black-box Concurrent Data Structures for NUMA Architectures Proceedings of the Twenty-Second International Conference on Architectural Support for Programming Languages and Operating Systems, (207-221)
  123. Wagner P, Wild T and Herkersdorf A (2017). DiaSys, Journal of Systems Architecture: the EUROMICRO Journal, 75:C, (120-132), Online publication date: 1-Apr-2017.
  124. Felber P, Gramoli V and Guerraoui R (2017). Elastic transactions, Journal of Parallel and Distributed Computing, 100:C, (103-127), Online publication date: 1-Feb-2017.
  125. ACM
    Basin D, Bortnikov E, Braginsky A, Golan-Gueta G, Hillel E, Keidar I and Sulamy M KiWi Proceedings of the 22nd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, (357-369)
  126. Borchert C, Schirmeier H and Spinczyk O (2017). Generic Soft-Error Detection and Correction for Concurrent Data Structures, IEEE Transactions on Dependable and Secure Computing, 14:1, (22-36), Online publication date: 1-Jan-2017.
  127. ACM
    Sorensen T, Donaldson A, Batty M, Gopalakrishnan G and Rakamarić Z (2016). Portable inter-workgroup barrier synchronisation for GPUs, ACM SIGPLAN Notices, 51:10, (39-58), Online publication date: 5-Dec-2016.
  128. ACM
    Sergey I, Nanevski A, Banerjee A and Delbianco G (2016). Hoare-style specifications as correctness conditions for non-linearizable concurrent objects, ACM SIGPLAN Notices, 51:10, (92-110), Online publication date: 5-Dec-2016.
  129. ACM
    Kalikar S and Nasre R (2016). DomLock, ACM SIGPLAN Notices, 51:8, (1-12), Online publication date: 9-Nov-2016.
  130. ACM
    Haider S, Hasenplaugh W and Alistarh D (2016). Lease/release, ACM SIGPLAN Notices, 51:8, (1-12), Online publication date: 9-Nov-2016.
  131. Gu R, Shao Z, Chen H, Wu X, Kim J, Sjöberg V and Costanzo D CertiKOS Proceedings of the 12th USENIX conference on Operating Systems Design and Implementation, (653-669)
  132. Yang B, Kent K, Aubanel E, Ajila T and Lin A A concurrent multiway tree using the lazy locking mechanism Proceedings of the 26th Annual International Conference on Computer Science and Software Engineering, (56-63)
  133. ACM
    Sorensen T, Donaldson A, Batty M, Gopalakrishnan G and Rakamarić Z Portable inter-workgroup barrier synchronisation for GPUs Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, (39-58)
  134. ACM
    Sergey I, Nanevski A, Banerjee A and Delbianco G Hoare-style specifications as correctness conditions for non-linearizable concurrent objects Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, (92-110)
  135. Braun R and Krus P (2016). Multi-threaded distributed system simulations using the transmission line element method, Simulation, 92:10, (921-930), Online publication date: 1-Oct-2016.
  136. ACM
    Carle T, Papagiannopoulou D, Moreshet T, Marongiu A, Herlihy M and Bahar R Thrifty-malloc Proceedings of the International Conference on Compilers, Architectures and Synthesis for Embedded Systems, (1-10)
  137. Tabaei Befrouei M, Wang C and Weissenbacher G (2016). Abstraction and mining of traces to explain concurrency bugs, Formal Methods in System Design, 49:1-2, (1-32), Online publication date: 1-Oct-2016.
  138. Steen M and Tanenbaum A (2016). A brief introduction to distributed systems, Computing, 98:10, (967-1009), Online publication date: 1-Oct-2016.
  139. Shavit N and Taubenfeld G (2016). The computability of relaxed data structures, Distributed Computing, 29:5, (395-407), Online publication date: 1-Oct-2016.
  140. ACM
    Förster K, König M and Wattenhofer R A Concept for an Introduction to Parallelization in Java Proceedings of the 17th Annual Conference on Information Technology Education, (169-169)
  141. Groen M and Gramoli V Multicore vs Manycore Proceedings of the 22nd International Conference on Euro-Par 2016: Parallel Processing - Volume 9833, (545-557)
  142. Braginsky A, Cohen N and Petrank E CBPQ Proceedings of the 22nd International Conference on Euro-Par 2016: Parallel Processing - Volume 9833, (460-474)
  143. ACM
    Spiegelman A, Golan-Gueta G and Keidar I (2016). Transactional data structure libraries, ACM SIGPLAN Notices, 51:6, (682-696), Online publication date: 1-Aug-2016.
  144. Adhikari K, Street J, Wang C, Liu Y and Zhang S (2016). Verifying a quantitative relaxation of linearizability via refinement, International Journal on Software Tools for Technology Transfer (STTT), 18:4, (393-407), Online publication date: 1-Aug-2016.
  145. Sethi D, Talupur M and Malik S (2016). Model checking unbounded concurrent lists, International Journal on Software Tools for Technology Transfer (STTT), 18:4, (375-391), Online publication date: 1-Aug-2016.
  146. ACM
    Gangwani T, Morrison A and Torrellas J (2016). CASPAR, ACM SIGARCH Computer Architecture News, 44:2, (789-804), Online publication date: 29-Jul-2016.
  147. ACM
    Viotti P and Vukolić M (2016). Consistency in Non-Transactional Distributed Storage Systems, ACM Computing Surveys, 49:1, (1-34), Online publication date: 28-Jul-2016.
  148. ACM
    Schaub A and Spear M Towards migrating computation to distributed memory caches Proceedings of the 4th Workshop on Distributed Cloud Computing, (1-6)
  149. ACM
    Spiegelman A, Golan-Gueta G and Keidar I Brief Announcement Proceedings of the 28th ACM Symposium on Parallelism in Algorithms and Architectures, (133-134)
  150. ACM
    Herlihy M and Moir M Blockchains and the Logic of Accountability Proceedings of the 31st Annual ACM/IEEE Symposium on Logic in Computer Science, (27-30)
  151. ACM
    Dongol B and Hierons R Decidability and Complexity for Quiescent Consistency Proceedings of the 31st Annual ACM/IEEE Symposium on Logic in Computer Science, (116-125)
  152. ACM
    Kaler T, Hasenplaugh W, Schardl T and Leiserson C (2016). Executing Dynamic Data-Graph Computations Deterministically Using Chromatic Scheduling, ACM Transactions on Parallel Computing, 3:1, (1-31), Online publication date: 28-Jun-2016.
  153. ACM
    Kim K, Wang T, Johnson R and Pandis I ERMIA Proceedings of the 2016 International Conference on Management of Data, (1675-1687)
  154. ACM
    Dice D, Herlihy M and Kogan A Fast non-intrusive memory reclamation for highly-concurrent data structures Proceedings of the 2016 ACM SIGPLAN International Symposium on Memory Management, (36-45)
  155. ACM
    Gangwani T, Morrison A and Torrellas J (2016). CASPAR, ACM SIGPLAN Notices, 51:4, (789-804), Online publication date: 9-Jun-2016.
  156. Abdulla P, Atig M, Kaxiras S, Leonardsson C, Ros A and Zhu Y Fencing Programs with Self-Invalidation and Self-Downgrade 36th IFIP WG 6.1 International Conference on Formal Techniques for Distributed Objects, Components, and Systems - Volume 9688, (19-35)
  157. ACM
    Spiegelman A, Golan-Gueta G and Keidar I Transactional data structure libraries Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation, (682-696)
  158. Areias M and Rocha R (2016). A Lock-Free Hash Trie Design for Concurrent Tabled Logic Programs, International Journal of Parallel Programming, 44:3, (386-406), Online publication date: 1-Jun-2016.
  159. ACM
    Schmid P, Besta M and Hoefler T High-Performance Distributed RMA Locks Proceedings of the 25th ACM International Symposium on High-Performance Parallel and Distributed Computing, (19-30)
  160. Hamacher K Using Lisp Macro-Facilities for Transferable Statistical Tests Proceedings of the 9th European Lisp Symposium on European Lisp Symposium, (29-37)
  161. ACM
    Herman N, Inala J, Huang Y, Tsai L, Kohler E, Liskov B and Shrira L Type-aware transactions for faster concurrent code Proceedings of the Eleventh European Conference on Computer Systems, (1-16)
  162. ACM
    Liang H and Feng X (2016). A program logic for concurrent objects under fair scheduling, ACM SIGPLAN Notices, 51:1, (385-399), Online publication date: 8-Apr-2016.
  163. ACM
    Long Z and Zhang Y Checking linearizability with fine-grained traces Proceedings of the 31st Annual ACM Symposium on Applied Computing, (1394-1400)
  164. ACM
    Gangwani T, Morrison A and Torrellas J CASPAR Proceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating Systems, (789-804)
  165. ACM
    Petrović D, Ropars T and Schiper A (2016). Leveraging Hardware Message Passing for Efficient Thread Synchronization, ACM Transactions on Parallel Computing, 2:4, (1-26), Online publication date: 15-Mar-2016.
  166. ACM
    Kalikar S and Nasre R DomLock Proceedings of the 21st ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, (1-12)
  167. ACM
    Haider S, Hasenplaugh W and Alistarh D Lease/release Proceedings of the 21st ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, (1-12)
  168. Leis V, Kemper A and Neumann T (2016). Scaling HTM-Supported Database Transactions to Many Cores, IEEE Transactions on Knowledge and Data Engineering, 28:2, (297-310), Online publication date: 1-Feb-2016.
  169. ACM
    Liang H and Feng X A program logic for concurrent objects under fair scheduling Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, (385-399)
  170. ACM
    Lozi J, David F, Thomas G, Lawall J and Muller G (2016). Fast and Portable Locking for Multicore Architectures, ACM Transactions on Computer Systems, 33:4, (1-62), Online publication date: 4-Jan-2016.
  171. ACM
    Aigner M, Kirsch C, Lippautz M and Sokolova A (2015). Fast, multicore-scalable, low-fragmentation memory allocation through large virtual memory and global data structures, ACM SIGPLAN Notices, 50:10, (451-469), Online publication date: 18-Dec-2015.
  172. ACM
    Stucki N, Rompf T, Ureche V and Bagwell P (2015). RRB vector: a practical general purpose immutable sequence, ACM SIGPLAN Notices, 50:9, (342-354), Online publication date: 18-Dec-2015.
  173. ACM
    Alistarh D, Kopinsky J, Li J and Shavit N (2015). The SprayList: a scalable relaxed priority queue, ACM SIGPLAN Notices, 50:8, (11-20), Online publication date: 18-Dec-2015.
  174. ACM
    Chang Y and Garg V (2015). A parallel algorithm for global states enumeration in concurrent systems, ACM SIGPLAN Notices, 50:8, (140-149), Online publication date: 18-Dec-2015.
  175. ACM
    Arbel M and Morrison A (2015). Predicate RCU: an RCU for scalable concurrent updates, ACM SIGPLAN Notices, 50:8, (21-30), Online publication date: 18-Dec-2015.
  176. ACM
    Golan-Gueta G, Ramalingam G, Sagiv M and Yahav E (2015). Automatic scalable atomicity via semantic locking, ACM SIGPLAN Notices, 50:8, (31-41), Online publication date: 18-Dec-2015.
  177. ACM
    Gramoli V (2015). More than you ever wanted to know about synchronization: synchrobench, measuring the impact of the synchronization on concurrent algorithms, ACM SIGPLAN Notices, 50:8, (1-10), Online publication date: 18-Dec-2015.
  178. Zhang L, Chattopadhyay A and Wang C (2015). Round-Up: Runtime Verification of Quasi Linearizability for Concurrent Data Structures, IEEE Transactions on Software Engineering, 41:12, (1202-1216), Online publication date: 1-Dec-2015.
  179. ACM
    Dongol B and Derrick J (2015). Verifying Linearisability, ACM Computing Surveys, 48:2, (1-43), Online publication date: 21-Nov-2015.
  180. ACM
    Challa J, Goyal P, Nikhil S, Balasubramaniam S and Goyal N A concurrent k-NN search algorithm for R-tree Proceedings of the 8th Annual ACM India Conference, (123-128)
  181. ACM
    Aigner M, Kirsch C, Lippautz M and Sokolova A Fast, multicore-scalable, low-fragmentation memory allocation through large virtual memory and global data structures Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, (451-469)
  182. Castañeda A, Rajsbaum S and Raynal M Specifying Concurrent Problems Proceedings of the 29th International Symposium on Distributed Computing - Volume 9363, (420-435)
  183. Afek Y, Matveev A, Moll O and Shavit N Amalgamated Lock-Elision Proceedings of the 29th International Symposium on Distributed Computing - Volume 9363, (309-324)
  184. Gibson J and Gramoli V Why Non-blocking Operations Should be Selfish Proceedings of the 29th International Symposium on Distributed Computing - Volume 9363, (200-214)
  185. ACM
    Matveev A, Shavit N, Felber P and Marlier P Read-log-update Proceedings of the 25th Symposium on Operating Systems Principles, (168-183)
  186. Bandeira R, Bois A, Pilla M, Vizzotto J and Machado M Composable Memory Transactions for Java Using a Monadic Intermediate Language Proceedings of the 19th Brazilian Symposium on Programming Languages - Volume 9325, (128-142)
  187. ACM
    Schwalb D, Dreseler M, Uflacker M and Plattner H NVC-Hashmap Proceedings of the 3rd VLDB Workshop on In-Memory Data Mangement and Analytics, (1-8)
  188. Sokolov A and Barkovsky E The Mathematical Model and the Problem of Optimal Partitioning of Shared Memory for Work-Stealing Deques Proceedings of the 13th International Conference on Parallel Computing Technologies - Volume 9251, (102-106)
  189. ACM
    Stucki N, Rompf T, Ureche V and Bagwell P RRB vector: a practical general purpose immutable sequence Proceedings of the 20th ACM SIGPLAN International Conference on Functional Programming, (342-354)
  190. ACM
    Bailey M Fundamentals seminar ACM SIGGRAPH 2015 Courses, (1-129)
  191. ACM
    Alistarh D, Sauerwald T and Vojnović M Lock-Free Algorithms under Stochastic Schedulers Proceedings of the 2015 ACM Symposium on Principles of Distributed Computing, (251-260)
  192. ACM
    Censor-Hillel K, Petrank E and Timnat S Help! Proceedings of the 2015 ACM Symposium on Principles of Distributed Computing, (241-250)
  193. ACM
    Mandel L, Pasteur C and Pouzet M ReactiveML, ten years later Proceedings of the 17th International Symposium on Principles and Practice of Declarative Programming, (6-17)
  194. Shavit N and Taubenfeld G The Computability of Relaxed Data Structures Post-Proceedings of the 22nd International Colloquium on Structural Information and Communication Complexity - Volume 9439, (414-428)
  195. Raynal M Communication Patterns and Input Patterns in Distributed Computing Post-Proceedings of the 22nd International Colloquium on Structural Information and Communication Complexity - Volume 9439, (1-15)
  196. ACM
    Khoshnood S, Kusano M and Wang C ConcBugAssist: constraint solving for diagnosis and repair of concurrency bugs Proceedings of the 2015 International Symposium on Software Testing and Analysis, (165-176)
  197. ACM
    Gastineau M and Laskar J Parallel sparse multivariate polynomial division Proceedings of the 2015 International Workshop on Parallel Symbolic Computation, (25-33)
  198. Junchao Zhang , Behzad B and Snir M (2015). Design of a Multithreaded Barnes-Hut Algorithm for Multicore Clusters, IEEE Transactions on Parallel and Distributed Systems, 26:7, (1861-1873), Online publication date: 1-Jul-2015.
  199. ACM
    Prokopec A SnapQueue: lock-free queue with constant time snapshots Proceedings of the 6th ACM SIGPLAN Symposium on Scala, (1-12)
  200. ACM
    Alistarh D, Leiserson W, Matveev A and Shavit N ThreadScan Proceedings of the 27th ACM symposium on Parallelism in Algorithms and Architectures, (123-132)
  201. ACM
    Morrison A and Afek Y (2015). Temporally Bounding TSO for Fence-Free Asymmetric Synchronization, ACM SIGARCH Computer Architecture News, 43:1, (45-58), Online publication date: 29-May-2015.
  202. ACM
    Gidra L, Thomas G, Sopena J, Shapiro M and Nguyen N (2015). NumaGiC, ACM SIGARCH Computer Architecture News, 43:1, (661-673), Online publication date: 29-May-2015.
  203. ACM
    Morrison A and Afek Y (2015). Temporally Bounding TSO for Fence-Free Asymmetric Synchronization, ACM SIGPLAN Notices, 50:4, (45-58), Online publication date: 12-May-2015.
  204. ACM
    Gidra L, Thomas G, Sopena J, Shapiro M and Nguyen N (2015). NumaGiC, ACM SIGPLAN Notices, 50:4, (661-673), Online publication date: 12-May-2015.
  205. ACM
    Dodds M, Haas A and Kirsch C (2015). A Scalable, Correct Time-Stamped Stack, ACM SIGPLAN Notices, 50:1, (233-246), Online publication date: 11-May-2015.
  206. ACM
    Golan-Gueta G, Bortnikov E, Hillel E and Keidar I Scaling concurrent log-structured data stores Proceedings of the Tenth European Conference on Computer Systems, (1-14)
  207. Sergey I, Nanevski A and Banerjee A Specifying and Verifying Concurrent Algorithms with Histories and Subjectivity Proceedings of the 24th European Symposium on Programming on Programming Languages and Systems - Volume 9032, (333-358)
  208. ACM
    Morrison A and Afek Y Temporally Bounding TSO for Fence-Free Asymmetric Synchronization Proceedings of the Twentieth International Conference on Architectural Support for Programming Languages and Operating Systems, (45-58)
  209. ACM
    Gidra L, Thomas G, Sopena J, Shapiro M and Nguyen N NumaGiC Proceedings of the Twentieth International Conference on Architectural Support for Programming Languages and Operating Systems, (661-673)
  210. ACM
    Dice D, Marathe V and Shavit N (2015). Lock Cohorting, ACM Transactions on Parallel Computing, 1:2, (1-42), Online publication date: 18-Feb-2015.
  211. ACM
    Alistarh D, Kopinsky J, Li J and Shavit N The SprayList: a scalable relaxed priority queue Proceedings of the 20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, (11-20)
  212. ACM
    Chang Y and Garg V A parallel algorithm for global states enumeration in concurrent systems Proceedings of the 20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, (140-149)
  213. ACM
    Arbel M and Morrison A Predicate RCU: an RCU for scalable concurrent updates Proceedings of the 20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, (21-30)
  214. ACM
    Golan-Gueta G, Ramalingam G, Sagiv M and Yahav E Automatic scalable atomicity via semantic locking Proceedings of the 20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, (31-41)
  215. ACM
    Gramoli V More than you ever wanted to know about synchronization: synchrobench, measuring the impact of the synchronization on concurrent algorithms Proceedings of the 20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, (1-10)
  216. ACM
    Clements A, Kaashoek M, Zeldovich N, Morris R and Kohler E (2015). The Scalable Commutativity Rule, ACM Transactions on Computer Systems, 32:4, (1-47), Online publication date: 20-Jan-2015.
  217. Erel M, Arslan Z, Özçevik Y and Canberk B (2015). Grade of Service (GoS) based adaptive flow management for Software Defined Heterogeneous Networks (SDHetN), Computer Networks: The International Journal of Computer and Telecommunications Networking, 76:C, (317-330), Online publication date: 15-Jan-2015.
  218. ACM
    Dodds M, Haas A and Kirsch C A Scalable, Correct Time-Stamped Stack Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, (233-246)
  219. ACM
    Jia X, Li W and Vafeiadis V Proving Lock-Freedom Easily and Automatically Proceedings of the 2015 Conference on Certified Programs and Proofs, (119-127)
  220. ACM
    Jung H, Han H, Fekete A, Heiser G and Yeom H (2014). A Scalable Lock Manager for Multicores, ACM Transactions on Database Systems, 39:4, (1-29), Online publication date: 30-Dec-2015.
  221. ACM
    Timnat S and Petrank E (2014). A practical wait-free simulation for lock-free data structures, ACM SIGPLAN Notices, 49:8, (357-368), Online publication date: 26-Nov-2014.
  222. Lin C, Nagarajan V and Gupta R Fence scoping Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis, (105-116)
  223. ACM
    Anthes G (2014). Researchers simplify parallel programming, Communications of the ACM, 57:11, (13-15), Online publication date: 27-Oct-2014.
  224. Walulya I, Nikolakopoulos Y, Papatriantafilou M and Tsigas P Concurrent Data Structures in Architectures with Limited Shared Memory Support Revised Selected Papers, Part I, of the Euro-Par 2014 International Workshops on Parallel Processing - Volume 8805, (189-200)
  225. ACM
    Calciu I, Gottschlich J, Shpeisman T, Pokam G and Herlihy M Invyswell Proceedings of the 23rd international conference on Parallel architectures and compilation, (187-200)
  226. Gramoli V and Guerraoui R Reusable Concurrent Data Types Proceedings of the 28th European Conference on ECOOP 2014 --- Object-Oriented Programming - Volume 8586, (182-206)
  227. ACM
    Zhang L and Wang C Runtime prevention of concurrency related type-state violations in multithreaded applications Proceedings of the 2014 International Symposium on Software Testing and Analysis, (1-12)
  228. Sánchez A and Sánchez C LEAP Proceedings of the 16th International Conference on Computer Aided Verification - Volume 8559, (620-627)
  229. ACM
    Alistarh D, Censor-Hillel K and Shavit N Brief announcement Proceedings of the 2014 ACM symposium on Principles of distributed computing, (50-52)
  230. ACM
    Kogan A and Herlihy M The future(s) of shared data structures Proceedings of the 2014 ACM symposium on Principles of distributed computing, (30-39)
  231. ACM
    Liu Y, Zhang K and Spear M Dynamic-sized nonblocking hash tables Proceedings of the 2014 ACM symposium on Principles of distributed computing, (242-251)
  232. ACM
    Liang H, Feng X and Shao Z Compositional verification of termination-preserving refinement of concurrent programs Proceedings of the Joint Meeting of the Twenty-Third EACSL Annual Conference on Computer Science Logic (CSL) and the Twenty-Ninth Annual ACM/IEEE Symposium on Logic in Computer Science (LICS), (1-10)
  233. ACM
    Ortega-Arjona J Applying architectural patterns for parallel programming the fast fourier transform Proceedings of the 19th European Conference on Pattern Languages of Programs, (1-8)
  234. ACM
    Bortnikov E, Hillel E and Sharov A Reconciling Transactional and Non-Transactional Operations in Distributed Key-Value Stores Proceedings of International Conference on Systems and Storage, (1-10)
  235. ACM
    Hasenplaugh W, Kaler T, Schardl T and Leiserson C Ordering heuristics for parallel graph coloring Proceedings of the 26th ACM symposium on Parallelism in algorithms and architectures, (166-177)
  236. ACM
    Agrawal K, Fineman J, Lu K, Sheridan B, Sukha J and Utterback R Provably good scheduling for parallel programs that use data structures through implicit batching Proceedings of the 26th ACM symposium on Parallelism in algorithms and architectures, (84-95)
  237. Derrick J, Dongol B, Schellhorn G, Tofan B, Travkin O and Wehrheim H Quiescent Consistency Proceedings of the 19th International Symposium on FM 2014: Formal Methods - Volume 8442, (200-214)
  238. ACM
    Li X, Andersen D, Kaminsky M and Freedman M Algorithmic improvements for fast concurrent Cuckoo hashing Proceedings of the Ninth European Conference on Computer Systems, (1-14)
  239. ACM
    Alistarh D, Eugster P, Herlihy M, Matveev A and Shavit N StackTrack Proceedings of the Ninth European Conference on Computer Systems, (1-14)
  240. ACM
    Morrison A and Afek Y (2014). Fence-free work stealing on bounded TSO processors, ACM SIGARCH Computer Architecture News, 42:1, (413-426), Online publication date: 5-Apr-2014.
  241. ACM
    Morrison A and Afek Y (2014). Fence-free work stealing on bounded TSO processors, ACM SIGPLAN Notices, 49:4, (413-426), Online publication date: 5-Apr-2014.
  242. Svendsen K and Birkedal L Impredicative Concurrent Abstract Predicates Proceedings of the 23rd European Symposium on Programming Languages and Systems - Volume 8410, (149-168)
  243. Nanevski A, Ley-Wild R, Sergey I and Delbianco G Communicating State Transition Systems for Fine-Grained Concurrent Resources Proceedings of the 23rd European Symposium on Programming Languages and Systems - Volume 8410, (290-310)
  244. ACM
    Serrano M and Grande J Locking fast Proceedings of the 29th Annual ACM Symposium on Applied Computing, (1556-1561)
  245. ACM
    Liang H, Feng X and Fu M (2014). Rely-Guarantee-Based Simulation for Compositional Verification of Concurrent Program Transformations, ACM Transactions on Programming Languages and Systems, 36:1, (1-55), Online publication date: 1-Mar-2014.
  246. ACM
    Lhuillier Y, Ojail M, Guerre A, Philippe J, Chehida K, Thabet F, Andriamisaina C, Jaber C and David R (2014). HARS, ACM Transactions on Embedded Computing Systems, 13:3s, (1-25), Online publication date: 1-Mar-2014.
  247. ACM
    Morrison A and Afek Y Fence-free work stealing on bounded TSO processors Proceedings of the 19th international conference on Architectural support for programming languages and operating systems, (413-426)
  248. ACM
    Timnat S and Petrank E A practical wait-free simulation for lock-free data structures Proceedings of the 19th ACM SIGPLAN symposium on Principles and practice of parallel programming, (357-368)
  249. ACM
    Silberstein M, Ford B, Keidar I and Witchel E (2014). GPUfs, ACM Transactions on Computer Systems, 32:1, (1-31), Online publication date: 1-Feb-2014.
  250. ACM
    Kuper L, Turon A, Krishnaswami N and Newton R (2014). Freeze after writing, ACM SIGPLAN Notices, 49:1, (257-270), Online publication date: 13-Jan-2014.
  251. ACM
    Kuper L, Turon A, Krishnaswami N and Newton R Freeze after writing Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, (257-270)
  252. Peternier A, Ansaloni D, Bonetta D, Pautasso C and Binder W (2014). Improving execution unit occupancy on SMT-based processors through hardware-aware thread scheduling, Future Generation Computer Systems, 30:C, (229-241), Online publication date: 1-Jan-2014.
  253. Lindén J and Jonsson B A Skiplist-Based Concurrent Priority Queue with Minimal Memory Contention Proceedings of the 17th International Conference on Principles of Distributed Systems - Volume 8304, (206-220)
  254. ACM
    Zhou D, Fan B, Lim H, Kaminsky M and Andersen D Scalable, high performance ethernet forwarding with CuckooSwitch Proceedings of the ninth ACM conference on Emerging networking experiments and technologies, (97-108)
  255. Zhang L, Chattopadhyay A and Wang C Round-up Proceedings of the 28th IEEE/ACM International Conference on Automated Software Engineering, (4-14)
  256. ACM
    Sun X, Yaagoub A, Trajcevski G, Scheuermann P, Chen H and Kachhwaha A P2EST Proceedings of the 2nd ACM SIGSPATIAL International Workshop on Analytics for Big Geospatial Data, (47-54)
  257. ACM
    Nikolaev R and Back G VirtuOS Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles, (116-132)
  258. Bailis P, Davidson A, Fekete A, Ghodsi A, Hellerstein J and Stoica I (2013). Highly available transactions, Proceedings of the VLDB Endowment, 7:3, (181-192), Online publication date: 1-Nov-2013.
  259. ACM
    Feldman S, Bhat A, LaBorde P, Yi Q and Dechev D Effective use of non-blocking data structures in a deduplication application Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity, (133-142)
  260. Zhang K, Zhao Y, Yang Y, Liu Y and Spear M Practical Non-blocking Unordered Lists Proceedings of the 27th International Symposium on Distributed Computing - Volume 8205, (239-253)
  261. Petrank E and Timnat S Lock-Free Data-Structure Iterators Proceedings of the 27th International Symposium on Distributed Computing - Volume 8205, (224-238)
  262. Henzinger T, Sezgin A and Vafeiadis V Aspect-Oriented linearizability proofs Proceedings of the 24th international conference on Concurrency Theory, (242-256)
  263. Liang H, Hoffmann J, Feng X and Shao Z Characterizing progress properties of concurrent objects via contextual refinements Proceedings of the 24th international conference on Concurrency Theory, (227-241)
  264. von Gleissenthall K and Rybalchenko A An epistemic perspective on consistency of concurrent computations Proceedings of the 24th international conference on Concurrency Theory, (212-226)
  265. Dice D, Hendler D and Mirsky I Lightweight contention management for efficient compare-and-swap operations Proceedings of the 19th international conference on Parallel Processing, (595-606)
  266. Crain T, Gramoli V and Raynal M A contention-friendly binary search tree Proceedings of the 19th international conference on Parallel Processing, (229-240)
  267. ACM
    Morrison A and Afek Y (2013). Fast concurrent queues for x86 processors, ACM SIGPLAN Notices, 48:8, (103-112), Online publication date: 23-Aug-2013.
  268. ACM
    Xiang L and Scott M (2013). Compiler aided manual speculation for high performance concurrent data structures, ACM SIGPLAN Notices, 48:8, (47-56), Online publication date: 23-Aug-2013.
  269. ACM
    Braginsky A, Kogan A and Petrank E Drop the anchor Proceedings of the twenty-fifth annual ACM symposium on Parallelism in algorithms and architectures, (33-42)
  270. ACM
    Oshman R and Shavit N The SkipTrie Proceedings of the 2013 ACM symposium on Principles of distributed computing, (23-32)
  271. ACM
    Al Bahra S (2013). Nonblocking algorithms and scalable multicore programming, Communications of the ACM, 56:7, (50-61), Online publication date: 1-Jul-2013.
  272. Gottschlich J, Knauerhase R and Pokam G But how do we really debug transactional memory programs? Proceedings of the 5th USENIX Conference on Hot Topics in Parallelism, (9-9)
  273. ACM
    Liang H and Feng X (2013). Modular verification of linearizability with non-fixed linearization points, ACM SIGPLAN Notices, 48:6, (459-470), Online publication date: 23-Jun-2013.
  274. ACM
    Golan-Gueta G, Ramalingam G, Sagiv M and Yahav E (2013). Concurrent libraries with foresight, ACM SIGPLAN Notices, 48:6, (263-274), Online publication date: 23-Jun-2013.
  275. ACM
    Jung H, Han H, Fekete A, Heiser G and Yeom H A scalable lock manager for multicores Proceedings of the 2013 ACM SIGMOD International Conference on Management of Data, (73-84)
  276. ACM
    Liang H and Feng X Modular verification of linearizability with non-fixed linearization points Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation, (459-470)
  277. ACM
    Golan-Gueta G, Ramalingam G, Sagiv M and Yahav E Concurrent libraries with foresight Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation, (263-274)
  278. Spaccasassi C and Koutavas V Towards Efficient Abstractions for Concurrent Consensus Revised Selected Papers of the 14th International Symposium on Trends in Functional Programming - Volume 8322, (76-90)
  279. Delporte-Gallet C, Fauconnier H, Gafni E and Rajsbaum S Black Art Revised Selected Papers of the First International Conference on Networked Systems - Volume 7853, (28-41)
  280. ACM
    Al Bahra S (2013). Nonblocking Algorithms and Scalable Multicore Programming, Queue, 11:5, (40-64), Online publication date: 1-May-2013.
  281. ACM
    Silberstein M, Ford B, Keidar I and Witchel E (2013). GPUfs, ACM SIGPLAN Notices, 48:4, (485-498), Online publication date: 23-Apr-2013.
  282. ACM
    Clements A, Kaashoek M and Zeldovich N RadixVM Proceedings of the 8th ACM European Conference on Computer Systems, (211-224)
  283. Besa J and Eterovic Y (2013). A concurrent red-black tree, Journal of Parallel and Distributed Computing, 73:4, (434-449), Online publication date: 1-Apr-2013.
  284. ACM
    Silberstein M, Ford B, Keidar I and Witchel E (2013). GPUfs, ACM SIGARCH Computer Architecture News, 41:1, (485-498), Online publication date: 29-Mar-2013.
  285. ACM
    Silberstein M, Ford B, Keidar I and Witchel E GPUfs Proceedings of the eighteenth international conference on Architectural support for programming languages and operating systems, (485-498)
  286. Bouajjani A, Derevenetc E and Meyer R Checking and enforcing robustness against TSO Proceedings of the 22nd European conference on Programming Languages and Systems, (533-553)
  287. Svendsen K, Birkedal L and Parkinson M Modular reasoning about separation of concurrent data structures Proceedings of the 22nd European conference on Programming Languages and Systems, (169-188)
  288. ACM
    Morrison A and Afek Y Fast concurrent queues for x86 processors Proceedings of the 18th ACM SIGPLAN symposium on Principles and practice of parallel programming, (103-112)
  289. ACM
    Xiang L and Scott M Compiler aided manual speculation for high performance concurrent data structures Proceedings of the 18th ACM SIGPLAN symposium on Principles and practice of parallel programming, (47-56)
  290. Choi H and Burgstaller B Non-blocking parallel subset construction on shared-memory multicore architectures Proceedings of the Eleventh Australasian Symposium on Parallel and Distributed Computing - Volume 140, (13-20)
  291. ACM
    Turon A, Thamsborg J, Ahmed A, Birkedal L and Dreyer D (2013). Logical relations for fine-grained concurrency, ACM SIGPLAN Notices, 48:1, (343-356), Online publication date: 23-Jan-2013.
  292. ACM
    Henzinger T, Kirsch C, Payer H, Sezgin A and Sokolova A (2013). Quantitative relaxation of concurrent data structures, ACM SIGPLAN Notices, 48:1, (317-328), Online publication date: 23-Jan-2013.
  293. ACM
    Turon A, Thamsborg J, Ahmed A, Birkedal L and Dreyer D Logical relations for fine-grained concurrency Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (343-356)
  294. ACM
    Henzinger T, Kirsch C, Payer H, Sezgin A and Sokolova A Quantitative relaxation of concurrent data structures Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (317-328)
  295. Bryan B (2013). High-performance computing tools for the integrated assessment and modelling of social-ecological systems, Environmental Modelling & Software, 39:C, (295-303), Online publication date: 1-Jan-2013.
  296. ACM
    Göös M (2012). Review of DISC 2012, ACM SIGACT News, 43:4, (112-115), Online publication date: 19-Dec-2012.
  297. ACM
    McKenney P Beyond expert-only parallel programming? Proceedings of the 2012 ACM workshop on Relaxing synchronization for multicore and manycore scalability, (25-32)
  298. Afek Y, Matveev A and Shavit N Pessimistic software lock-elision Proceedings of the 26th international conference on Distributed Computing, (297-311)
  299. ACM
    Gottschlich J, Herlihy M, Pokam G and Siek J Visualizing transactional memory Proceedings of the 21st international conference on Parallel architectures and compilation techniques, (159-170)
  300. ACM
    Malkis A and Banerjee A (2012). Verification of software barriers, ACM SIGPLAN Notices, 47:8, (313-314), Online publication date: 11-Sep-2012.
  301. ACM
    Timnat S, Braginsky A, Kogan A and Petrank E (2012). Wait-free linked-lists, ACM SIGPLAN Notices, 47:8, (309-310), Online publication date: 11-Sep-2012.
  302. ACM
    Dice D, Marathe V and Shavit N (2012). Lock cohorting, ACM SIGPLAN Notices, 47:8, (247-256), Online publication date: 11-Sep-2012.
  303. ACM
    Kogan A and Petrank E (2012). A methodology for creating fast wait-free data structures, ACM SIGPLAN Notices, 47:8, (141-150), Online publication date: 11-Sep-2012.
  304. Fossati L, Honda K and Yoshida N Intensional and extensional characterisation of global progress in the π-calculus Proceedings of the 23rd international conference on Concurrency Theory, (287-301)
  305. ACM
    Herlihy M, Rajsbaum S and Raynal M (2012). Computability in distributed computing, ACM SIGACT News, 43:3, (88-110), Online publication date: 27-Aug-2012.
  306. ACM
    Liu F, Nedev N, Prisadnikov N, Vechev M and Yahav E (2012). Dynamic synthesis for relaxed memory models, ACM SIGPLAN Notices, 47:6, (429-440), Online publication date: 6-Aug-2012.
  307. ACM
    Turon A (2012). Reagents, ACM SIGPLAN Notices, 47:6, (157-168), Online publication date: 6-Aug-2012.
  308. Sethi D, Talupur M, Schwartz-Narbonne D and Malik S Parameterized model checking of fine grained concurrency Proceedings of the 19th international conference on Model Checking Software, (208-226)
  309. Atig M, Bouajjani A, Emmi M and Lal A Detecting fair non-termination in multithreaded programs Proceedings of the 24th international conference on Computer Aided Verification, (210-226)
  310. ACM
    Howley S and Jones J A non-blocking internal binary search tree Proceedings of the twenty-fourth annual ACM symposium on Parallelism in algorithms and architectures, (161-171)
  311. ACM
    Petrank E Can parallel data structures rely on automatic memory managers? Proceedings of the 2012 ACM SIGPLAN Workshop on Memory Systems Performance and Correctness, (1-1)
  312. ACM
    Kuperstein M, Vechev M and Yahav E (2012). Automatic inference of memory fences, ACM SIGACT News, 43:2, (108-123), Online publication date: 11-Jun-2012.
  313. ACM
    Liu F, Nedev N, Prisadnikov N, Vechev M and Yahav E Dynamic synthesis for relaxed memory models Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation, (429-440)
  314. ACM
    Turon A Reagents Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation, (157-168)
  315. Liu Y Energy-efficient synchronization through program patterns Proceedings of the First International Workshop on Green and Sustainable Software, (35-40)
  316. Pankratius V, Schmidt F and Garretón G Combining functional and imperative programming for multicore software: an empirical study evaluating Scala and Java Proceedings of the 34th International Conference on Software Engineering, (123-133)
  317. ACM
    Yaagoub A, Trajcevski G, Scheuermann P and Hardavellas N Load balancing for processing spatio-temporal queries in multi-core settings Proceedings of the Eleventh ACM International Workshop on Data Engineering for Wireless and Mobile Access, (53-57)
  318. ACM
    Giakkoupis G and Woelfel P A tight RMR lower bound for randomized mutual exclusion Proceedings of the forty-fourth annual ACM symposium on Theory of computing, (983-1002)
  319. ACM
    Dragojević A and Harris T STM in the small Proceedings of the 7th ACM european conference on Computer Systems, (1-14)
  320. ACM
    Malkis A and Banerjee A Verification of software barriers Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming, (313-314)
  321. ACM
    Timnat S, Braginsky A, Kogan A and Petrank E Wait-free linked-lists Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming, (309-310)
  322. ACM
    Dice D, Marathe V and Shavit N Lock cohorting Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming, (247-256)
  323. ACM
    Kogan A and Petrank E A methodology for creating fast wait-free data structures Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming, (141-150)
  324. ACM
    Liang H, Feng X and Fu M A rely-guarantee-based simulation for verifying concurrent program transformations Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (455-468)
  325. ACM
    Liang H, Feng X and Fu M (2012). A rely-guarantee-based simulation for verifying concurrent program transformations, ACM SIGPLAN Notices, 47:1, (455-468), Online publication date: 18-Jan-2012.
  326. Herlihy M and Shavit N On the nature of progress Proceedings of the 15th international conference on Principles of Distributed Systems, (313-328)
  327. ACM
    Bailey M and Cunningham S Introduction to computer graphics SIGGRAPH Asia 2011 Courses, (1-58)
  328. ACM
    Turon A and Russo C Scalable join patterns Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications, (575-594)
  329. ACM
    Turon A and Russo C (2011). Scalable join patterns, ACM SIGPLAN Notices, 46:10, (575-594), Online publication date: 18-Oct-2011.
  330. van der Vegt S and Laarman A A parallel compact hash table Proceedings of the 7th international conference on Mathematical and Engineering Methods in Computer Science, (191-204)
  331. Basin D, Fan R, Keidar I, Kiselov O and Perelman D CAFÉ Proceedings of the 25th international conference on Distributed computing, (475-488)
  332. Perelman D, Byshevsky A, Litmanovich O and Keidar I SMV Proceedings of the 25th international conference on Distributed computing, (125-140)
  333. Trajcevski G, Yaagoub A and Scheuermann P Processing (multiple) spatio-temporal range queries in multicore settings Proceedings of the 15th international conference on Advances in databases and information systems, (214-227)
  334. ACM
    Kogan A and Petrank E (2011). Wait-free queues with multiple enqueuers and dequeuers, ACM SIGPLAN Notices, 46:8, (223-234), Online publication date: 7-Sep-2011.
  335. Dang N and Tsigas P Progress guarantees when composing lock-free objects Proceedings of the 17th international conference on Parallel processing - Volume Part II, (148-159)
  336. Černý P, Chatterjee K, Henzinger T, Radhakrishna A and Singh R Quantitative synthesis for concurrent programs Proceedings of the 23rd international conference on Computer aided verification, (243-259)
  337. Gotsman A and Yang H Liveness-preserving atomicity abstraction Proceedings of the 38th international conference on Automata, languages and programming - Volume Part II, (453-465)
  338. Schwartz-Narbonne D, Liu F, Pondicherry T, August D and Malik S Parallel assertions for debugging parallel programs Proceedings of the Ninth ACM/IEEE International Conference on Formal Methods and Models for Codesign, (181-190)
  339. ACM
    Eastep J, Wingate D and Agarwal A Smart data structures Proceedings of the 8th ACM international conference on Autonomic computing, (11-20)
  340. ACM
    Golab W, Higham L and Woelfel P Linearizable implementations do not suffice for randomized distributed computation Proceedings of the forty-third annual ACM symposium on Theory of computing, (373-382)
  341. ACM
    von Praun C Parallel programming Proceedings of the 2011 ACM SIGPLAN X10 Workshop, (1-6)
  342. ACM
    Burnim J, Elmas T, Necula G and Sen K NDSeq Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation, (401-414)
  343. ACM
    Burnim J, Elmas T, Necula G and Sen K (2011). NDSeq, ACM SIGPLAN Notices, 46:6, (401-414), Online publication date: 4-Jun-2011.
  344. ACM
    Wimmer M and Träff J Work-stealing for mixed-mode parallelism by deterministic team-building Proceedings of the twenty-third annual ACM symposium on Parallelism in algorithms and architectures, (105-116)
  345. ACM
    Dice D, Marathe V and Shavit N Flat-combining NUMA locks Proceedings of the twenty-third annual ACM symposium on Parallelism in algorithms and architectures, (65-74)
  346. ACM
    CACM Staff (2011). Why concurrent objects are recurrently complicated, Communications of the ACM, 54:6, (6-6), Online publication date: 1-Jun-2011.
  347. ACM
    Tabba F, Hay A and Goodman J Transactional conflict decoupling and value prediction Proceedings of the international conference on Supercomputing, (33-42)
  348. ACM
    Manickam V and Aravind A If a picture is worth a thousand words, what would an animation be worth? Proceedings of the 16th Western Canadian Conference on Computing Education, (28-32)
  349. Sánchez A and Sánchez C A theory of skiplists with applications to the verification of concurrent datatypes Proceedings of the Third international conference on NASA Formal methods, (343-358)
  350. Leonardi C, Holmes D, Williams J and Tilke P A multi-core numerical framework for characterizing flow in oil reservoirs Proceedings of the 19th High Performance Computing Symposia, (166-174)
  351. Tátrai A (2011). Parallel implementations of Brunotte's algorithm, Journal of Parallel and Distributed Computing, 71:4, (565-572), Online publication date: 1-Apr-2011.
  352. ACM
    Hudli S, Hudli S, Hudli R, Subramanian Y and Mohan T GPGPU-based parallel computation Proceedings of the Fourth Annual ACM Bangalore Conference, (1-8)
  353. ACM
    Burnim J, Necula G and Sen K (2011). Specifying and checking semantic atomicity for multithreaded programs, ACM SIGPLAN Notices, 46:3, (79-90), Online publication date: 17-Mar-2011.
  354. ACM
    Burnim J, Necula G and Sen K (2011). Specifying and checking semantic atomicity for multithreaded programs, ACM SIGARCH Computer Architecture News, 39:1, (79-90), Online publication date: 17-Mar-2011.
  355. ACM
    Gross T Breadth in depth Proceedings of the 42nd ACM technical symposium on Computer science education, (435-440)
  356. ACM
    Burnim J, Necula G and Sen K Specifying and checking semantic atomicity for multithreaded programs Proceedings of the sixteenth international conference on Architectural support for programming languages and operating systems, (79-90)
  357. ACM
    Shavit N (2011). Data structures in the multicore age, Communications of the ACM, 54:3, (76-84), Online publication date: 1-Mar-2011.
  358. ACM
    Kogan A and Petrank E Wait-free queues with multiple enqueuers and dequeuers Proceedings of the 16th ACM symposium on Principles and practice of parallel programming, (223-234)
  359. ACM
    Attiya H, Guerraoui R, Hendler D, Kuznetsov P, Michael M and Vechev M Laws of order Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (487-498)
  360. ACM
    Turon A and Wand M A separation logic for refining concurrent objects Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (247-258)
  361. ACM
    Attiya H, Guerraoui R, Hendler D, Kuznetsov P, Michael M and Vechev M (2011). Laws of order, ACM SIGPLAN Notices, 46:1, (487-498), Online publication date: 26-Jan-2011.
  362. ACM
    Turon A and Wand M (2011). A separation logic for refining concurrent objects, ACM SIGPLAN Notices, 46:1, (247-258), Online publication date: 26-Jan-2011.
  363. Agarwal S, Joshi S and Shyamasundar R Distributed generalized dynamic barrier synchronization Proceedings of the 12th international conference on Distributed computing and networking, (143-154)
  364. Braginsky A and Petrank E Locality-conscious lock-free linked lists Proceedings of the 12th international conference on Distributed computing and networking, (107-118)
  365. Attiya H Invited paper Proceedings of the 12th international conference on Distributed computing and networking, (1-11)
  366. Raynal M On the implementation of concurrent objects Dependable and Historic Computing, (453-478)
  367. ACM
    Bailey M and Cunningham S Introduction to computer graphics ACM SIGGRAPH ASIA 2010 Courses, (1-100)
  368. Afek Y, Korland G and Yanovsky E quasi-linearizability Proceedings of the 14th international conference on Principles of distributed systems, (395-410)
  369. Garyali P, Dellinger M and Ravindran B On best-effort utility accrual real-time scheduling on multiprocessors Proceedings of the 14th international conference on Principles of distributed systems, (270-285)
  370. Vallejo E, Beivide R, Cristal A, Harris T, Vallejo F, Unsal O and Valero M Architectural Support for Fair Reader-Writer Locking Proceedings of the 2010 43rd Annual IEEE/ACM International Symposium on Microarchitecture, (275-286)
  371. Sánchez A and Sánchez C Decision procedures for the temporal verification of concurrent lists Proceedings of the 12th international conference on Formal engineering methods and software engineering, (74-89)
  372. Bornat R and Amjad H (2010). Inter-process buffers in separation logic with rely-guarantee, Formal Aspects of Computing, 22:6, (735-772), Online publication date: 1-Nov-2010.
  373. ACM
    Schumacher C, Leupers R, Petras D and Hoffmann A parSC Proceedings of the eighth IEEE/ACM/IFIP international conference on Hardware/software codesign and system synthesis, (241-246)
  374. Laarman A, van de Pol J and Weber M Boosting multi-core reachability performance with shared hash tables Proceedings of the 2010 Conference on Formal Methods in Computer-Aided Design, (247-256)
  375. Kuperstein M, Vechev M and Yahav E Automatic inference of memory fences Proceedings of the 2010 Conference on Formal Methods in Computer-Aided Design, (111-120)
  376. ACM
    Angerer C and Gross T now happens-before later Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion, (3-10)
  377. ACM
    Ortega-Arjona J Applying architectural patterns for parallel programming Proceedings of the 8th Latin American Conference on Pattern Languages of Programs, (1-15)
  378. ACM
    Kim K, Yavuz-Kahveci T and Sanders B JRF-E Proceedings of the 25th IEEE/ACM International Conference on Automated Software Engineering, (215-224)
  379. Hendler D, Incze I, Shavit N and Tzafrir M Scalable flat-combining based synchronous queues Proceedings of the 24th international conference on Distributed computing, (79-93)
  380. Afek Y, Korland G, Natanzon M and Shavit N Scalable producer-consumer pools based on elimination-diffraction trees Proceedings of the 16th international Euro-Par conference on Parallel processing: Part II, (151-162)
  381. Mavronicolas M and Sauerwald T (2010). The impact of randomization in smoothing networks, Distributed Computing, 22:5-6, (381-411), Online publication date: 1-Aug-2010.
  382. ACM
    Ellen F, Fatourou P, Ruppert E and van Breugel F Non-blocking binary search trees Proceedings of the 29th ACM SIGACT-SIGOPS symposium on Principles of distributed computing, (131-140)
  383. ACM
    O'Hearn P, Rinetzky N, Vechev M, Yahav E and Yorsh G Verifying linearizability with hindsight Proceedings of the 29th ACM SIGACT-SIGOPS symposium on Principles of distributed computing, (85-94)
  384. ACM
    Bronson N, Casper J, Chafi H and Olukotun K Transactional predication Proceedings of the 29th ACM SIGACT-SIGOPS symposium on Principles of distributed computing, (6-15)
  385. ACM
    Attiya H The inherent complexity of transactional memory and what to do about it Proceedings of the 29th ACM SIGACT-SIGOPS symposium on Principles of distributed computing, (1-5)
  386. Černý P, Radhakrishna A, Zufferey D, Chaudhuri S and Alur R Model checking of linearizability of concurrent list implementations Proceedings of the 22nd international conference on Computer Aided Verification, (465-479)
  387. Vafeiadis V Automatically proving linearizability Proceedings of the 22nd international conference on Computer Aided Verification, (450-464)
  388. Tzeng S, Patney A and Owens J Task management for irregular-parallel workloads on the GPU Proceedings of the Conference on High Performance Graphics, (29-37)
  389. Dinsdale-Young T, Dodds M, Gardner P, Parkinson M and Vafeiadis V Concurrent abstract predicates Proceedings of the 24th European conference on Object-oriented programming, (504-528)
  390. Hong G, Hong K, Burgstaller B and Blieberger J AdaStreams Proceedings of the 15th Ada-Europe international conference on Reliable Software Technologies, (208-221)
  391. ACM
    Hendler D, Incze I, Shavit N and Tzafrir M Flat combining and the synchronization-parallelism tradeoff Proceedings of the twenty-second annual ACM symposium on Parallelism in algorithms and architectures, (355-364)
  392. ACM
    Dice D, Lev Y, Marathe V, Moir M, Nussbaum D and Olszewski M Simplifying concurrent algorithms by exploiting hardware transactional memory Proceedings of the twenty-second annual ACM symposium on Parallelism in algorithms and architectures, (325-334)
  393. ACM
    Dice D and Shavit N TLRW Proceedings of the twenty-second annual ACM symposium on Parallelism in algorithms and architectures, (284-293)
  394. ACM
    Park J and Dally W Buffer-space efficient and deadlock-free scheduling of stream applications on multi-core architectures Proceedings of the twenty-second annual ACM symposium on Parallelism in algorithms and architectures, (1-10)
  395. ACM
    Elmas T QED Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2, (507-508)
  396. ACM
    Yahav E and Sagiv M (2008). Verifying safety properties of concurrent heap-manipulating programs, ACM Transactions on Programming Languages and Systems, 32:5, (1-50), Online publication date: 1-May-2010.
  397. ACM
    Gottschlich J, Vachharajani M and Siek J An efficient software transactional memory using commit-time invalidation Proceedings of the 8th annual IEEE/ACM international symposium on Code generation and optimization, (101-110)
  398. ACM
    Sanders B The Shared Map pattern Proceedings of the 2010 Workshop on Parallel Programming Patterns, (1-13)
  399. ACM
    Schoeberl M, Brandner F and Vitek J RTTM Proceedings of the 2010 ACM Symposium on Applied Computing, (326-333)
  400. ACM
    Bordawekar R, Lim L, Kementsietsidis A and Kok B Statistics-based parallelization of XPath queries in shared memory systems Proceedings of the 13th International Conference on Extending Database Technology, (159-170)
  401. Vafeiadis V RGSep action inference Proceedings of the 11th international conference on Verification, Model Checking, and Abstract Interpretation, (345-361)
  402. ACM
    Leijen D, Schulte W and Burckhardt S The design of a task parallel library Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications, (227-242)
  403. ACM
    Dechev D and Stroustrup B Scalable nonblocking concurrent objects for mission critical code Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications, (597-612)
  404. ACM
    Leijen D, Schulte W and Burckhardt S (2009). The design of a task parallel library, ACM SIGPLAN Notices, 44:10, (227-242), Online publication date: 25-Oct-2009.
  405. ACM
    Schmidt A, von Löwis M and Polze A KStruct Proceedings of the Fifth Workshop on Programming Languages and Operating Systems, (1-5)
  406. ACM
    Dimoulas C, Pucella R and Felleisen M Future contracts Proceedings of the 11th ACM SIGPLAN conference on Principles and practice of declarative programming, (195-206)
  407. ACM
    Reppy J, Russo C and Xiao Y (2009). Parallel concurrent ML, ACM SIGPLAN Notices, 44:9, (257-268), Online publication date: 31-Aug-2009.
  408. ACM
    Reppy J, Russo C and Xiao Y Parallel concurrent ML Proceedings of the 14th ACM SIGPLAN international conference on Functional programming, (257-268)
  409. ACM
    Attiya H, Hillel E and Milani A Inherent limitations on disjoint-access parallel implementations of transactional memory Proceedings of the twenty-first annual symposium on Parallelism in algorithms and architectures, (69-78)
  410. ACM
    Lu Y, Zhou H, Shang L and Zeng X Multicore parallel min-cost flow algorithm for CAD applications Proceedings of the 46th Annual Design Automation Conference, (832-837)
  411. ACM
    Gottschlich J, Siek J, Vachharajani M, Winkler D and Connors D An efficient lock-aware transactional memory implementation Proceedings of the 4th workshop on the Implementation, Compilation, Optimization of Object-Oriented Languages and Programming Systems, (10-17)
  412. ACM
    Petrank E, Musuvathi M and Steesngaard B Progress guarantee for parallel programs via bounded lock-freedom Proceedings of the 30th ACM SIGPLAN Conference on Programming Language Design and Implementation, (144-154)
  413. ACM
    Petrank E, Musuvathi M and Steesngaard B (2009). Progress guarantee for parallel programs via bounded lock-freedom, ACM SIGPLAN Notices, 44:6, (144-154), Online publication date: 28-May-2009.
  414. ACM
    Bordawekar R, Lim L and Shmueli O Parallelization of XPath queries using multi-core processors Proceedings of the 12th International Conference on Extending Database Technology: Advances in Database Technology, (180-191)
  415. ACM
    Fekete A (2009). Teaching about threading, ACM SIGACT News, 40:1, (51-57), Online publication date: 28-Feb-2009.
  416. ACM
    Hendler D (2009). Book review of synchronization algorithms and concurrent programming by Gadi Taubenfeld (Pearson/Prentice Hall, 2006), ACM SIGACT News, 40:1, (47-50), Online publication date: 28-Feb-2009.
  417. ACM
    Feng X (2009). Local rely-guarantee reasoning, ACM SIGPLAN Notices, 44:1, (315-327), Online publication date: 21-Jan-2009.
  418. ACM
    Gotsman A, Cook B, Parkinson M and Vafeiadis V (2009). Proving that non-blocking algorithms don't block, ACM SIGPLAN Notices, 44:1, (16-28), Online publication date: 21-Jan-2009.
  419. ACM
    Feng X Local rely-guarantee reasoning Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (315-327)
  420. ACM
    Gotsman A, Cook B, Parkinson M and Vafeiadis V Proving that non-blocking algorithms don't block Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (16-28)
  421. ACM
    Mavronicolas M and Sauerwald T The impact of randomization in smoothing networks Proceedings of the twenty-seventh ACM symposium on Principles of distributed computing, (345-354)
  422. ACM
    Solar-Lezama A, Jones C and Bodik R Sketching concurrent data structures Proceedings of the 29th ACM SIGPLAN Conference on Programming Language Design and Implementation, (136-148)
  423. ACM
    Solar-Lezama A, Jones C and Bodik R (2008). Sketching concurrent data structures, ACM SIGPLAN Notices, 43:6, (136-148), Online publication date: 30-May-2008.
Contributors
  • Brown University
  • Massachusetts Institute of Technology

Recommendations

Michele Mazzucco

As the clock speed of central processing units (CPUs) does not increase because of heating issues, chip manufacturers are fitting more and more transistors in the same space. Hence, while exploiting parallelism is already important in the context of grid and cluster computing, it is also gaining momentum in low-end workstations, because of the widespread adoption of multicore architectures. The book is organized into two parts: "Principles" (of concurrent programming, chapters 2 to 6) and "Practice" (chapters 7 to 18). It is rich in examples and code snippets written in Java. Following an introduction to the subject (chapter 1), chapters 2 to 4 discuss very basic topics, such as the producer-consumer problem, critical sections, the sequential consistency memory model, the Java memory model, and the single-writer/single-reader algorithm and its variants. The reader who is familiar with concurrent programming can skip these. Chapters 5 and 6 introduce the consensus problem in a concurrent environment, and show some nice wait-free algorithms to solve it. The second part introduces more advanced topics and is far more interesting. The introduction in chapter 7, "Spin Locks and Contention," states that while it is safe to ignore the "underlying system's architecture details" when writing sequential programs, the same does not apply to concurrent algorithms. Given that all of the examples provided are implemented using Java, I disagree with that, as the Java Virtual Machine hides all the differences. Hence, obeying the Java memory model guarantees that the program will work as expected. The authors also discuss two approaches to the mutual exclusion problem-spin locking and busy-waiting-and present the second alternative as "expensive" (the thread needs to be suspended and later resumed) and viable only if the lock delay is expected to be "long." While busy-waiting is certainly more expensive than spin locking, its performance has improved over time. Also, "expensive" and "long" are very abstract terms-it would have been very helpful if some benchmarks had been provided. Various lock implementations are introduced and discussed throughout the chapter, including those that use some building blocks introduced in the first part (such as Peterson's algorithm) and various versions of the "Test And Set" model. Having introduced the basic algorithms for spin locking, the second part of the chapter discusses more advanced algorithms based on queue locks, and concludes with some sophisticated algorithms for composite and hierarchical locking. Chapter 8 introduces the monitor abstraction, a structured way of combining data and the synchronization of that data, with the semaphore probably being the most popular implementation. The synchronization tools discussed in chapters 7 and 8 are commonly known as coarse-grained synchronization. Chapters 9 to 11 move to a higher level of abstraction, by offering thorough discussions of more advanced techniques, such as lazy and nonblocking synchronization. The authors always follow the same pattern-they start with the easiest (and worst-performing) algorithm, discuss it, and point out its shortcomings; then, with successive refinements, they end up presenting the best solution. In chapter 9, they implement a nonblocking concurrent set (that is, a collection that contains no duplicates) using a linked list; in chapter 10, they implement various types of concurrent queues using a linked list; and, in chapter 11, they implement a concurrent stack that is not inherently sequential, even though both push() and pop() work at the top of the data structure. Having shown how to build concurrent basic data structures (lists and sets), the authors present some sophisticated algorithms for different classes of problems, such as (concurrent) counting, sorting, hashing of collections, search, and queues with priority (chapters 12 to 15). Next, the authors discuss, in chapter 16, practical issues such as thread pools and data structures for load distribution and balancing purposes. Chapter 17 covers the last of the synchronization primitives, the barrier, presenting various implementations for dealing with different problems. While most of the arguments above are already well known, chapter 18 discusses a topic that is gaining momentum: transactional memory and how to effectively program it. Herlihy and Shavit introduce the topic by summarizing the problems affecting conventional synchronization primitives, the first one being that it is very difficult to manage them effectively, especially in large-scale systems. Hence, transactional memory comes to the rescue. The idea behind this approach is very similar to the one regarding ordinary transactions (that is, they can be aborted if a conflict arises); the difference is that the changes are made to the local memory. Various algorithms for programming software transactional memory are discussed, and the chapter concludes with some remarks about hardware transactional memory. Overall, the book reads well. The first part covers very basic topics, which are found in many other books, and can be skipped by the reader who has some concurrent programming experience. The second part deals with advanced topics and is very interesting. The book can also be used as a reference, as it has plenty of code for concurrent algorithms. Online Computing Reviews Service

Burkhard Englert

Developing efficient software for multicore processors is a challenging endeavor. In order to be able to increase performance, such software must exploit the parallelism offered by these architectures. This requires the software developer to have a deep understanding of all issues related to asynchronous concurrent computation and the underlying hardware. This outstanding book addresses these challenges head on. I sincerely hope that it will find its way into the curriculum of many undergraduate and graduate institutions, and become required reading in many companies. Over the last few years, multicore processor architectures have become the new front line in the quest to further increase the speed of processors. In a multicore architecture, multiple processors communicate through shared hardware caches. The resulting multiprocessor chips make computing more effective, by exploiting parallelism where multiple processors work on a common task. Why is multicore programming an art__?__ Multicore architectures require a totally new set of skills from software developers. On a single core processor, software speed increases on its own, every time processor speed increases. This is not the case with multicore architectures, since developers must understand the limitations and strengths of the underlying multicore architecture, in order to be able to truly exploit parallelism. The book familiarizes the reader with these strengths and limitations, and provides a collection of shared objects and programming tools. The book is divided into two parts. The first part, "Principles" (chapters 1 to 6), is theoretical. It familiarizes the reader with what can actually be computed in an asynchronous concurrent environment-the multicore world. This question needs to be answered before actual programming begins, to avoid attempting to solve unsolvable problems. After an introduction in chapter 1 that nicely illustrates the problem, chapter 2 discusses solutions of the mutual exclusion problem and their limitations. Chapter 3 does the same for concurrent objects. Chapter 4 discusses shared memory register and snapshot constructions. Chapter 5 considers what is needed to solve a given synchronization problem-namely, consensus-and chapter 6 explains the universality of consensus-that is, it justifies the focus on consensus in the preceding chapter. Part 2, "Practice" (chapters 7 to 18), focuses on performance. Unlike the sequential case in which developers can take advantage of well-understood abstractions, in a multiprocessor setting, a developer must often be aware of the underlying memory system to be able to maximize performance. Chapter 7 discusses spin locks and contention. Chapter 8 covers monitors and blocking synchronization. Locking is explained in chapter 9, with an example of linked lists, while concurrent queues and the ABA problem are the topics of chapter 10. This is followed by discussions of concurrent stacks and elimination (chapter 11); counting, sorting, and distributed coordination (chapter 12); concurrent hashing (chapter 13); skip lists and balanced search (chapter 14); priority queues (chapter 15); scheduling and work distribution (chapter 16); barriers (chapter 17); and transactional memory (chapter 18). Throughout the book, concepts are illustrated with Java examples and Java-based programming exercises. The book concludes with a useful appendix that familiarizes the reader with the Java language constructs needed to understand the Java code examples and write concurrent programs in Java. A second appendix introduces the reader to the multiprocessor hardware architecture. Overall, this excellent book does a real and urgently needed service to the community. It is very well organized, and it allows interested readers, students, and professional to explore first hand the underlying principles of multicore programming. At the same time, it enables its readers-now armed with a solid theoretical foundation-to become multicore programmers, and helps them maximize the performance of these architectures. To be successful as a multicore programmer, one must be constantly aware of the strengths and, even more importantly, the limitations of these architectures. The authors never hide from the readers or trivialize the resulting difficulties. They also do not shy away from rigorous proofs-the reader is expected to have a certain mathematical maturity, especially in the first part of the book. At the same time, difficult concepts are illustrated with clear and concise examples. The book is written in a way that makes multiprocessor programming accessible. It deserves to become a classic. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.