| |
| |
| |
| @inproceedings{Lu:2008:LMC:1346281.1346323, |
| author = {Lu, Shan and Park, Soyeon and Seo, Eunsoo and Zhou, Yuanyuan}, |
| title = {Learning from Mistakes: A Comprehensive Study on Real World Concurrency Bug Characteristics}, |
| booktitle = {Proceedings of the 13th International Conference on Architectural Support for Programming Languages and Operating Systems}, |
| series = {ASPLOS XIII}, |
| year = {2008}, |
| isbn = {978-1-59593-958-6}, |
| location = {Seattle, WA, USA}, |
| pages = {329--339}, |
| numpages = {11}, |
| url = {http://doi.acm.org/10.1145/1346281.1346323}, |
| doi = {10.1145/1346281.1346323}, |
| acmid = {1346323}, |
| publisher = {ACM}, |
| address = {New York, NY, USA}, |
| keywords = {bug characteristics, concurrency bug, concurrent program}, |
| } |
| |
| @inproceedings{Zhou:2015:PCB:2745802.2745807, |
| author = {Zhou, Bo and Neamtiu, Iulian and Gupta, Rajiv}, |
| title = {Predicting Concurrency Bugs: How Many, What Kind and Where Are They?}, |
| booktitle = {Proceedings of the 19th International Conference on Evaluation and Assessment in Software Engineering}, |
| series = {EASE '15}, |
| year = {2015}, |
| isbn = {978-1-4503-3350-4}, |
| location = {Nanjing, China}, |
| pages = {6:1--6:10}, |
| articleno = {6}, |
| numpages = {10}, |
| url = {http://doi.acm.org/10.1145/2745802.2745807}, |
| doi = {10.1145/2745802.2745807}, |
| acmid = {2745807}, |
| publisher = {ACM}, |
| address = {New York, NY, USA}, |
| } |
| |
| |
| @article{Ellis80, |
| author="Carla Schlatter Ellis", |
| title="Concurrent Search and Insertion in AVL Trees", |
| Year="1980", |
| Month="September", |
| journal="IEEE Transactions on Computers", |
| volume="C-29", |
| number="9", |
| pages="811-817", |
| url="https://www.computer.org/csdl/trans/tc/1980/09/01675680.pdf", |
| lastchecked="November 12, 2016", |
| doi="10.1109/TC.1980.1675680", |
| } |
| |
| @article{Pugh90b, |
| author="William Pugh", |
| title="A Probabalistic Alternative to Balanced Trees", |
| Year="1990", |
| Month="June", |
| journal="Communications of the {ACM}", |
| volume="33", |
| number="6", |
| pages="668--676", |
| } |
| |
| @techreport{ScottCombiningTree92, |
| author="Michael L. Scott and John M. Mellor-Crummey", |
| title="Fast, Contention-Free Combining Tree Barriers", |
| institution="Computer Science Department, University of Rochester", |
| address="Rochester, NY", |
| year="1992", |
| number="CS.92.TR429", |
| month="June", |
| } |
| |
| @unpublished{Gamsa96b, |
| author="Ben Gamsa and Orran Krieger and Jonathan Appavoo and |
| Michael Stumm", |
| title="The Need for Performance-Oriented Data Organization in |
| multiprocessor Software", |
| Year="1996", |
| note="Private communication from Orran Krieger", |
| } |
| |
| @techreport{PaulMcKenney2004a, |
| author="Paul E. McKenney and Phillip E. Krueger and Stuart A. Friedberg and |
| Brent A Kingsbury", |
| title="Memory Allocation for a Multiprocessor Computer System", |
| institution="Assigned to International Business Machines Corporation", |
| address="Washington, DC", |
| year="2004", |
| number="US Patent 6,785,888", |
| month="August", |
| } |
| |
| @article{Boehm:2004:SEC:989393.989442, |
| author = {Boehm, Hans J.}, |
| title = {Space Efficient Conservative Garbage Collection}, |
| journal = {SIGPLAN Not.}, |
| issue_date = {April 2004}, |
| volume = {39}, |
| number = {4}, |
| month = apr, |
| year = {2004}, |
| issn = {0362-1340}, |
| pages = {490--501}, |
| numpages = {12}, |
| url = {http://doi.acm.org/10.1145/989393.989442}, |
| doi = {10.1145/989393.989442}, |
| acmid = {989442}, |
| publisher = {ACM}, |
| address = {New York, NY, USA}, |
| } |
| |
| @inproceedings{AlainDarte2005, |
| author = {Alain Darte and Robert Schreiber}, |
| title = {A linear-time algorithm for optimal barrier placement}, |
| booktitle = {PPoPP '05: Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming}, |
| year = {2005}, |
| isbn = {1-59593-080-9}, |
| pages = {26--35}, |
| location = {Chicago, IL, USA}, |
| doi = {10.1145/1065944.1065949}, |
| publisher = {ACM Press}, |
| address = {New York, NY, USA}, |
| } |
| |
| @inproceedings{FaithEllen:2007:SNZI, |
| author = {Ellen, Faith and Lev, Yossi and Luchangco, Victor and Moir, Mark}, |
| title = {SNZI: scalable NonZero indicators}, |
| booktitle = {Proceedings of the twenty-sixth annual ACM symposium on Principles of distributed computing}, |
| series = {PODC '07}, |
| year = {2007}, |
| isbn = {978-1-59593-616-5}, |
| location = {Portland, Oregon, USA}, |
| pages = {13--22}, |
| numpages = {10}, |
| url = {http://doi.acm.org/10.1145/1281100.1281106}, |
| doi = {10.1145/1281100.1281106}, |
| acmid = {1281106}, |
| publisher = {ACM}, |
| address = {New York, NY, USA}, |
| keywords = {counters, scalability, transactional memory}, |
| } |
| |
| @article{DeCandia:2007:DAH:1323293.1294281, |
| author = {DeCandia, Giuseppe and Hastorun, Deniz and Jampani, Madan and Kakulapati, Gunavardhan and Lakshman, Avinash and Pilchin, Alex and Sivasubramanian, Swaminathan and Vosshall, Peter and Vogels, Werner}, |
| title = {Dynamo: Amazon's Highly Available Key-value Store}, |
| journal = {SIGOPS Oper. Syst. Rev.}, |
| issue_date = {December 2007}, |
| volume = {41}, |
| number = {6}, |
| month = oct, |
| year = {2007}, |
| issn = {0163-5980}, |
| pages = {205--220}, |
| numpages = {16}, |
| url = {http://doi.acm.org/10.1145/1323293.1294281}, |
| doi = {10.1145/1323293.1294281}, |
| acmid = {1294281}, |
| publisher = {ACM}, |
| address = {New York, NY, USA}, |
| } |
| |
| @unpublished{JakeEdge2009kfifo, |
| Author="Jake Edge", |
| Title="A new API for kfifo?", |
| month="August", |
| day="19", |
| year="2009", |
| note="Available: |
| \url{http://lwn.net/Articles/347619/} |
| [Viewed September 20, 2010]", |
| } |
| |
| @article{Shavit:2011:DSM:1897852.1897873, |
| author = {Shavit, Nir}, |
| title = {Data structures in the multicore age}, |
| journal = {Commun. ACM}, |
| issue_date = {March 2011}, |
| volume = {54}, |
| number = {3}, |
| month = mar, |
| year = {2011}, |
| issn = {0001-0782}, |
| pages = {76--84}, |
| numpages = {9}, |
| url = {http://doi.acm.org/10.1145/1897852.1897873}, |
| doi = {10.1145/1897852.1897873}, |
| acmid = {1897873}, |
| publisher = {ACM}, |
| address = {New York, NY, USA}, |
| } |
| |
| @conference{AndreasHaas2012FIFOisnt, |
| author="Andreas Haas and Christoph M. Kirsch and Michael Lippautz and Hannes Payer", |
| title="How {FIFO} is Your Concurrent {FIFO} Queue?", |
| booktitle="Proceedings of the Workshop on Relaxing Synchronization for Multicore and Manycore Scalability", |
| Year="2012", |
| Month="October", |
| address="Tucson, AZ USA", |
| doi="10.1145/2414729.2414731", |
| } |
| |
| @techreport{ChristophMKirsch2012FIFOisntTR, |
| author="Christoph M. Kirsch and Michael Lippautz and Hannes Payer", |
| title="Fast and Scalable k-FIFO Queues", |
| institution="University of Salzburg", |
| address="Salzburg, Austria", |
| year="2012", |
| number="2012-04", |
| month="June", |
| pages="19", |
| url="https://arise.or.at/pubpdf/Fast_and_Scalable_k-FIFO_Queues.pdf", |
| lastchecked="November 13, 2016", |
| } |
| |
| @inproceedings{10.5555/3241639.3241645, |
| author = {Rinard, Martin}, |
| title = {Parallel Synchronization-Free Approximate Data Structure Construction}, |
| year = {2013}, |
| publisher = {USENIX Association}, |
| address = {USA}, |
| booktitle = {Proceedings of the 5th USENIX Conference on Hot Topics in Parallelism}, |
| pages = {6}, |
| numpages = {1}, |
| location = {San Jose, CA}, |
| series = {HotPar'13}, |
| url = {https://www.usenix.org/conference/hotpar13/workshop-program/presentation/rinard}, |
| } |
| |
| @InProceedings{AndreasHaas2013CFRelaxedQueues, |
| author = {A. Haas and T.A. Henzinger and C.M. Kirsch and M. Lippautz and H. Payer and A. Sezgin and A. Sokolova}, |
| title = {Distributed Queues in Shared Memory---Multicore Performance and Scalability through Quantitative Relaxation}, |
| booktitle = {Proc. International Conference on Computing Frontiers}, |
| location = {Ischia, Italy}, |
| publisher = {ACM}, |
| year = {2013}, |
| doi = {10.1145/2482767.2482789}, |
| } |
| |
| |
| |
| @article{Dijkstra65a, |
| author="E. W. Dijkstra", |
| title="Solution of a Problem in Concurrent Programming Control", |
| Year="1965", |
| Month="Sept", |
| journal="Communications of the {ACM}", |
| volume="8", |
| number="9", |
| pages="569", |
| doi="10.1145/365559.365617", |
| } |
| |
| @inbook{Dijkstra68a, |
| Author = "E. W. Dijkstra", |
| Title = "Programming Languages", |
| Chapter = "Cooperating Sequential Processes", |
| Year = "1968", |
| Publisher = "Academic Press", |
| } |
| |
| @article{Dijkstra1971HOoSP, |
| author="Edsger W. Dijkstra", |
| title="Hierarchical Ordering of Sequential Processes", |
| Year="1971", |
| journal="Acta Informatica", |
| volume="1", |
| number="2", |
| pages="115-138", |
| note="Available: |
| \url{http://www.cs.utexas.edu/users/EWD/ewd03xx/EWD310.PDF} |
| [Viewed January 13, 2008]", |
| } |
| |
| @article{Hoare74, |
| author="C. A. R. Hoare", |
| title="Monitors: An Operating System Structuring Concept", |
| Year="1974", |
| Month="October", |
| journal="Communications of the {ACM}", |
| volume="17", |
| number="10", |
| pages="549-557", |
| doi="10.1145/355620.361161", |
| } |
| |
| @article{Lamport74a, |
| author="Leslie Lamport", |
| title="A New Solution of {Dijkstra's} Concurrent Programming Problem", |
| Year="1974", |
| Month="August", |
| journal="Communications of the {ACM}", |
| volume="17", |
| number="8", |
| pages="453-455", |
| doi="10.1145/361082.361093", |
| } |
| |
| @conference{Segall84, |
| author="Z. Segall and L. Rudolf", |
| title="Dynamic Decentralized Cache Schemes for {MIMD} Parallel Processors", |
| year="1984", |
| month="June", |
| booktitle="11\textsuperscript{th} Annual International |
| Symposium on Computer Architecture", |
| pages="340-347", |
| doi="10.1145/800015.808203", |
| } |
| |
| @article{Barghouti91, |
| author="N. S. Barghouti and G. E. Kaiser", |
| title="Concurrency Control in Advanced Database Applications", |
| Month="September", |
| Year="1991", |
| journal="ACM Computing Surveys:", |
| } |
| |
| @article{McKenney96a, |
| author="Paul E. McKenney", |
| title="Selecting Locking Primitives for Parallel Programs", |
| Year="1996", |
| Month="October", |
| journal="Communications of the {ACM}", |
| volume="39", |
| number="10", |
| pages="75--82", |
| doi="10.1145/236156.236174", |
| } |
| |
| @article{Kontothanassis97a, |
| author="Leonidas Kontothanassis and Robert W. Wisniewski and Michael L. Scott", |
| title="Scheduler-Conscious Synchronization", |
| Year="1997", |
| Month="February", |
| journal="{ACM} Transactions on Computer Systems", |
| volume="15", |
| number="1", |
| pages="3--40", |
| doi="10.1145/244764.244765", |
| } |
| |
| @Conference{HubertusFrancke2002Futex, |
| Author="Hubertus Francke and Rusty Russell and Matthew Kirkwood", |
| Title="Fuss, futexes and furwocks: Fast Userlevel Locking in Linux", |
| Booktitle="{Ottawa Linux Symposium}", |
| Month="June", |
| Year="2002", |
| pages="479-495", |
| note="Available: |
| \url{http://www.kernel.org/doc/ols/2002/ols2002-pages-479-495.pdf} |
| [Viewed May 22, 2011]", |
| } |
| |
| @inproceedings{Uhlig04scalablevms, |
| author={Volkmar Uhlig and Joshua LeVasseur and Espen Skoglund and |
| Uwe Dannowski}, |
| title={Towards Scalable Multiprocessor Virtual Machines}, |
| booktitle={Proceedings of the 3rd Virtual Machine Research and |
| Technology Symposium}, |
| year={2004}, |
| pages={43--56}, |
| address={San Jose, CA}, |
| month="May~6-7", |
| url={citeseer.ist.psu.edu/uhlig04towards.html}, |
| } |
| |
| @phdthesis{BilgeEbruSaglamAkgul, |
| author="Bilge Ebru Saglam Akgul", |
| title="The System-on-a-Chip Lock Cache", |
| school="School of Electrical and Computer Engineering at |
| Georgia Institute of Technology", |
| year="2004", |
| note="Available: |
| \url{http://smartech.gatech.edu/bitstream/handle/1853/5253/akgul_bilge_e_200405_phd.pdf} |
| [Viewed June 27, 2012]", |
| } |
| |
| @techreport{PhuongHoaiHa2005Reactivelock, |
| author="Phuong Hoai Ha and Marina Papatriantafilou and Philippas Tsigas", |
| title="Reactive Spin-locks: A Self-tuning Approach", |
| institution={Department of Computing Science and Engineering, Chalmers University of Technology and G\"oteborg University}, |
| year="2005", |
| address={SE-412 96 G\"oteborg, Sweden}, |
| number="2005:16", |
| } |
| |
| @unpublished{IngoMolnar2006RobustFutexes, |
| author="Ingo Molnar", |
| title="Lightweight Robust Futexes", |
| Year="2006", |
| Month="March", |
| note="Available: |
| \url{https://www.kernel.org/doc/Documentation/robust-futexes.txt} |
| [Viewed February 14, 2021]", |
| } |
| |
| @inproceedings{Eastep:2010:SLA:1809049.1809079, |
| author = {Eastep, Jonathan and Wingate, David and Santambrogio, Marco D. and Agarwal, Anant}, |
| title = {Smartlocks: lock acquisition scheduling for self-aware synchronization}, |
| booktitle = {Proceedings of the 7th international conference on Autonomic computing}, |
| series = {ICAC '10}, |
| year = {2010}, |
| isbn = {978-1-4503-0074-2}, |
| location = {Washington, DC, USA}, |
| pages = {215--224}, |
| numpages = {10}, |
| url = {http://doi.acm.org/10.1145/1809049.1809079}, |
| doi = {10.1145/1809049.1809079}, |
| acmid = {1809079}, |
| publisher = {ACM}, |
| address = {New York, NY, USA}, |
| keywords = {asymmetric multicore, heterogeneous multicore, performance optimization, self-aware, self-tuning, synchronization}, |
| } |
| |
| @techreport{UlrichDrepper2011Futexes, |
| author="Ulrich Drepper", |
| title="Futexes Are Tricky", |
| institution="Red Hat, Inc.", |
| address="Raleigh, NC, USA", |
| year="2011", |
| number="FAT2011", |
| month="November", |
| url={http://people.redhat.com/drepper/futex.pdf}, |
| } |
| |
| @unpublished{Atman2011Multi-WayTicketLock, |
| Author="cbloom", |
| title = "Atman's Multi-way Ticket Lock", |
| month="July", |
| day="17", |
| year="2011", |
| note="\url{http://cbloomrants.blogspot.com/2011/07/07-17-11-atman-multi-way-ticket-lock_17.html}", |
| } |
| |
| @unpublished{RickVanRiel2013ProportionalLock, |
| Author="Rick van Riel", |
| title = "make ticket spinlock proportional ", |
| month="January", |
| day="3", |
| year="2013", |
| note="\url{https://lkml.org/lkml/2013/1/3/9}", |
| } |
| |
| @unpublished{JeremyFitzhardinge2012PVticketlocks, |
| Author="Jeremy Fitzhardinge", |
| title = "Paravirtualized ticketlocks", |
| month="April", |
| day="20", |
| year="2012", |
| note="\url{http://lwn.net/Articles/493402/}", |
| } |
| |
| @article{Bueso:2014:STP:2693193.2698990, |
| author = {Bueso, Davidlohr}, |
| title = {Scalability Techniques for Practical Synchronization Primitives}, |
| journal = {Queue}, |
| issue_date = {November 2014}, |
| volume = {12}, |
| number = {11}, |
| month = nov, |
| year = {2014}, |
| issn = {1542-7730}, |
| pages = {40:40--40:53}, |
| articleno = {40}, |
| numpages = {14}, |
| url = {http://doi.acm.org/10.1145/2693193.2698990}, |
| doi = {10.1145/2693193.2698990}, |
| acmid = {2698990}, |
| publisher = {ACM}, |
| address = {New York, NY, USA}, |
| } |
| |
| @phdthesis{HugoGuirouxPhD, |
| author="Hugo Guiroux", |
| title="Understanding the performance of mutual exclusion algorithms on modern multicore machines", |
| school="Universit\'e Grenoble Alpes", |
| year="2018", |
| note="\url{http://hugoguiroux.github.io/assets/these.pdf}", |
| } |
| |
| @article{Guerraoui:2019:LPA:3319851.3301501, |
| author = {Guerraoui, Rachid and Guiroux, Hugo and Lachaize, Renaud and Qu{\'e}ma, Vivien and Trigonakis, Vasileios}, |
| title = {Lock--Unlock: Is That All? A Pragmatic Analysis of Locking in Software Systems}, |
| journal = {ACM Trans. Comput. Syst.}, |
| issue_date = {March 2019}, |
| volume = {36}, |
| number = {1}, |
| month = mar, |
| year = {2019}, |
| issn = {0734-2071}, |
| pages = {1:1--1:149}, |
| articleno = {1}, |
| numpages = {149}, |
| url = {http://doi.acm.org/10.1145/3301501}, |
| doi = {10.1145/3301501}, |
| acmid = {3301501}, |
| publisher = {ACM}, |
| address = {New York, NY, USA}, |
| keywords = {Multicore, lock interface, locks, performance bottleneck, synchronization}, |
| } |
| |
| |
| |
| @article{Weihl85a, |
| author="William E. Weihl and Barbara Liskov", |
| title="Implementation of Resilient, Atomic Data Types", |
| Year="1985", |
| Month="July", |
| journal="{ACM} Transactions on Programming Languages and Systems", |
| volume="7", |
| number="2", |
| pages="244-269", |
| } |
| |
| @article{LeslieLamport1986OICp1, |
| author="Leslie Lamport", |
| title="On Interprocess Communication. Part I: Basic Formalism", |
| Year="1986", |
| journal="Distributed Computing", |
| volume="1", |
| number="2", |
| pages="77-85", |
| note="Available: |
| \url{research.microsoft.com/en-us/um/people/lamport/pubs/interprocess.pdf} |
| [Viewed April 9, 2009]", |
| } |
| |
| @article{LeslieLamport1986OICp2, |
| author="Leslie Lamport", |
| title="On Interprocess Communication. Part II: Algorithms", |
| Year="1986", |
| journal="Distributed Computing", |
| volume="1", |
| number="2", |
| pages="86-101", |
| note="Available: |
| \url{research.microsoft.com/en-us/um/people/lamport/pubs/interprocess.pdf} |
| [Viewed April 9, 2009]", |
| } |
| |
| @book{PhilipABernstein1987, |
| Author = "Philip A. Bernstein and Vassos Hadzilacos and Nathan Goodman", |
| Title = "Concurrency Control and Recovery in Database Systems", |
| Year = "1987", |
| Publisher = "Addison Wesley Publishing Company", |
| isbn = "ISBN 0-201-10715-5", |
| } |
| |
| @article{Herlihy:1990:LCC:78969.78972, |
| author = {Herlihy, Maurice P. and Wing, Jeannette M.}, |
| title = {Linearizability: a correctness condition for concurrent objects}, |
| journal = {ACM Trans. Program. Lang. Syst.}, |
| issue_date = {July 1990}, |
| volume = {12}, |
| number = {3}, |
| month = jul, |
| year = {1990}, |
| issn = {0164-0925}, |
| pages = {463--492}, |
| numpages = {30}, |
| url = {http://doi.acm.org/10.1145/78969.78972}, |
| doi = {10.1145/78969.78972}, |
| acmid = {78972}, |
| publisher = {ACM}, |
| address = {New York, NY, USA}, |
| } |
| |
| @article{Herlihy:1996:LCN:1063369.1063372, |
| author = {Herlihy, Maurice and Shavit, Nir and Waarts, Orli}, |
| title = {Linearizable counting networks}, |
| journal = {Distrib. Comput.}, |
| volume = {9}, |
| issue = {4}, |
| month = {February}, |
| year = {1996}, |
| issn = {0178-2770}, |
| pages = {193--203}, |
| numpages = {11}, |
| url = {http://portal.acm.org/citation.cfm?id=1063369.1063372}, |
| doi = {10.1007/s004460050019}, |
| acmid = {1063372}, |
| publisher = {Springer-Verlag}, |
| address = {London, UK}, |
| keywords = {concurrency, contention, counting networks, data structures, linearizability}, |
| } |
| |
| @article{Sezgin:2005:DSC:1125395.1711001, |
| author = {Sezgin, Ali and Gopalakrishnan, Ganesh}, |
| title = {On the Definition of Sequential Consistency}, |
| journal = {Inf. Process. Lett.}, |
| issue_date = {31 December 2005}, |
| volume = {96}, |
| number = {6}, |
| month = dec, |
| year = {2005}, |
| issn = {0020-0190}, |
| pages = {193--196}, |
| numpages = {4}, |
| url = {http://dx.doi.org/10.1016/j.ipl.2005.09.002}, |
| doi = {10.1016/j.ipl.2005.09.002}, |
| acmid = {1711001}, |
| publisher = {Elsevier North-Holland, Inc.}, |
| address = {Amsterdam, The Netherlands, The Netherlands}, |
| keywords = {Concurrency, Distributed systems, Formalization, Sequential consistency, Shared memory}, |
| } |
| |
| @article{WernerVogels:2009:EventuallyConsistent, |
| author = {Vogels, Werner}, |
| title = {Eventually consistent}, |
| journal = {Commun. ACM}, |
| volume = {52}, |
| issue = {1}, |
| month = {January}, |
| year = {2009}, |
| issn = {0001-0782}, |
| pages = {40--44}, |
| numpages = {5}, |
| url = {http://doi.acm.org/10.1145/1435417.1435432}, |
| doi = {10.1145/1435417.1435432}, |
| acmid = {1435432}, |
| publisher = {ACM}, |
| address = {New York, NY, USA}, |
| } |
| |
| @article{C.A.Furia2010Time, |
| author="C.A. Furia and D. Mandrioli and A. Morzenti and M. Rossi", |
| title="Modeling time in computing: a taxonomy and a comparative study", |
| Year="2010", |
| Month="February", |
| journal="{ACM} Computing Surveys", |
| volume="42", |
| number="2", |
| pages="6:1-6:59", |
| } |
| |
| @unpublished{PaulEMcKenney2011Dagstuhl, |
| author="Paul E. McKenney", |
| title="Multi-Core Memory Models and Concurrency Theory: A View from the Linux Community", |
| Year="2011", |
| Month="January", |
| Day="6", |
| Note="http://www.rdrop.com/users/paulmck/scalability/paper/mckenney.2011.01.06e.pdf", |
| } |
| |
| @unpublished{PaulEMcKenney2011Verico, |
| author="Paul E. McKenney", |
| title="Verifying Parallel Software: Can Theory Meet Practice?", |
| Year="2011", |
| Month="January", |
| Day="29", |
| note="\url{http://www.rdrop.com/users/paulmck/scalability/paper/VericoTheoryPractice.2011.01.28a.pdf}", |
| } |
| |
| @inproceedings{HagitAttiya2011LawsOfOrder, |
| author = {Hagit Attiya and Rachid Guerraoui and Danny Hendler and Petr Kuznetsov and Maged M. Michael and Martin Vechev}, |
| title = {Laws of Order: Expensive Synchronization in Concurrent Algorithms Cannot be Eliminated}, |
| booktitle = {38\textsuperscript{th} ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages}, |
| year = {2011}, |
| pages={487--498}, |
| location = {Austin, TX, USA}, |
| publisher = {ACM}, |
| address = {New York, NY, USA}, |
| doi = {10.1145/1926385.1926442}, |
| } |
| |
| @article{Attiya:2011:LOE:1925844.1926442, |
| author = {Attiya, Hagit and Guerraoui, Rachid and Hendler, Danny and Kuznetsov, Petr and Michael, Maged M. and Vechev, Martin}, |
| title = {Laws of Order: Expensive Synchronization in Concurrent Algorithms Cannot Be Eliminated}, |
| journal = {SIGPLAN Not.}, |
| issue_date = {January 2011}, |
| volume = {46}, |
| number = {1}, |
| month = jan, |
| year = {2011}, |
| issn = {0362-1340}, |
| pages = {487--498}, |
| numpages = {12}, |
| url = {http://doi.acm.org/10.1145/1925844.1926442}, |
| doi = {10.1145/1925844.1926442}, |
| acmid = {1926442}, |
| publisher = {ACM}, |
| address = {New York, NY, USA}, |
| keywords = {algorithms, concurrency, lower bounds, memory barriers, memory fences}, |
| } |
| |
| @unpublished{PaulEMcKenney2011SNC, |
| Author="Paul E. McKenney", |
| title = "Concurrent code and expensive instructions", |
| month="January", |
| day="26", |
| year="2011", |
| note="Available: |
| \url{http://lwn.net/Articles/423994} |
| [Viewed January 28, 2011]", |
| } |
| |
| @unpublished{AdrianSutton2013LCA:Disruptor, |
| Author="Adrian Sutton", |
| title = "Concurrent Programming with the {Disruptor}", |
| month="January", |
| day="30", |
| year="2013", |
| note="Presentation at Linux.conf.au 2013, URL: |
| \url{https://www.youtube.com/watch?v=ItpT_vmRHyI}", |
| lastchecked="November 17, 2016", |
| } |
| |
| @article{Desnoyers:2013:MSM:2506164.2506174, |
| author = {Desnoyers, Mathieu and McKenney, Paul E. and Dagenais, Michel R.}, |
| title = {Multi-core systems modeling for formal verification of parallel algorithms}, |
| journal = {SIGOPS Oper. Syst. Rev.}, |
| issue_date = {July 2013}, |
| volume = {47}, |
| number = {2}, |
| month = jul, |
| year = {2013}, |
| issn = {0163-5980}, |
| pages = {51--65}, |
| numpages = {15}, |
| url = {http://doi.acm.org/10.1145/2506164.2506174}, |
| doi = {10.1145/2506164.2506174}, |
| acmid = {2506174}, |
| publisher = {ACM}, |
| address = {New York, NY, USA}, |
| keywords = {Promela, instruction reordering, model checking, multiprocessor, read copy update, shared memory, weak memory model}, |
| } |
| |
| @inproceedings{Clements:2013:SCR:2517349.2522712, |
| author = {Clements, Austin T. and Kaashoek, M. Frans and Zeldovich, Nickolai and Morris, Robert T. and Kohler, Eddie}, |
| title = {The Scalable Commutativity Rule: Designing Scalable Software for Multicore Processors}, |
| booktitle = {Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles}, |
| series = {SOSP '13}, |
| year = {2013}, |
| isbn = {978-1-4503-2388-8}, |
| location = {Farminton, Pennsylvania}, |
| pages = {1--17}, |
| numpages = {17}, |
| url = {http://doi.acm.org/10.1145/2517349.2522712}, |
| doi = {10.1145/2517349.2522712}, |
| acmid = {2522712}, |
| publisher = {ACM}, |
| address = {New York, NY, USA}, |
| } |
| |
| @phdthesis{SilasBoydWickizerPhD, |
| author="Silas Boyd-Wickizer", |
| title="Optimizing Communications Bottlenecks in Multiprocessor Operating Systems Kernels", |
| school="Massachusetts Institute of Technology", |
| year="2014", |
| note="\url{https://pdos.csail.mit.edu/papers/sbw-phd-thesis.pdf}", |
| } |
| |
| |
| |
| @conference{Michael02a, |
| author="Maged M. Michael", |
| title="Safe Memory Reclamation for Dynamic Lock-Free Objects Using Atomic |
| Reads and Writes", |
| Year="2002", |
| Month="August", |
| booktitle="{Proceedings of the 21\textsuperscript{st} Annual ACM |
| Symposium on Principles of Distributed Computing}", |
| pages="21-30", |
| } |
| |
| @InProceedings{HerlihyLM02, |
| author={Maurice Herlihy and Victor Luchangco and Mark Moir}, |
| title="The Repeat Offender Problem: A Mechanism for Supporting Dynamic-Sized, |
| Lock-Free Data Structures", |
| booktitle={Proceedings of 16\textsuperscript{th} International |
| Symposium on Distributed Computing}, |
| location="Toulouse, France", |
| year=2002, |
| month="October", |
| pages="339-353", |
| doi="10.1007/3-540-36108-1_23", |
| } |
| |
| @article{MagedMichael04a, |
| author="Maged M. Michael", |
| title="Hazard Pointers: Safe Memory Reclamation for Lock-Free Objects", |
| Year="2004", |
| Month="June", |
| journal="IEEE Transactions on Parallel and Distributed Systems", |
| volume="15", |
| number="6", |
| pages="491-504", |
| doi={10.1109/TPDS.2004.8}, |
| } |
| |
| @unpublished{KeithBostic2010WiredTigerhazptr, |
| author="Keith Bostic", |
| title="Switch lockless programming style from epoch to hazard references", |
| Year="2010", |
| Month="January", |
| Day="24", |
| Note="\url{https://github.com/wiredtiger/wiredtiger/commit/dddc21014fc494a956778360a14d96c762495e09}", |
| } |
| |
| @unpublished{SamyAlBahra2011ckhp, |
| author="Samy Al Bahra", |
| title="ck\_hp.c", |
| Year="2011", |
| Month="February", |
| Day="20", |
| Note="Hazard pointers: \url{https://github.com/concurrencykit/ck/blob/master/src/ck_hp.c}", |
| } |
| |
| @unpublished{MaximKhizhinsky2014libcdsHazptr, |
| author="Maxim Khizhinsky", |
| title="Memory Management Schemes", |
| Year="2014", |
| Month="June", |
| Day="1", |
| Note="\url{https://kukuruku.co/post/lock-free-data-structures-the-inside-memory-management-schemes/}", |
| } |
| |
| @unpublished{DavidGwynne2015srp, |
| author="David Gwynne", |
| title="introduce srp, which according to the manpage i wrote is short for ``shared reference pointers''.", |
| Year="2015", |
| Month="July", |
| Day="1", |
| Note="\url{https://github.com/openbsd/src/blob/HEAD/sys/kern/kern_srp.c}", |
| } |
| |
| @unpublished{crates.io.user.ticki2017concHazptr, |
| author="crates.io user ticki", |
| title="conc v0.5.0: Hazard-pointer-based concurrent memory reclamation", |
| Year="2017", |
| Month="August", |
| Day="12", |
| Note="\url{https://crates.io/crates/conc}", |
| } |
| |
| @unpublished{MichalVaner2018arc-swapHazptr, |
| author="Michal Vaner", |
| title="{ArcSwap}", |
| Year="2018", |
| Month="April", |
| Day="16", |
| Note="\url{https://crates.io/crates/arc-swap}", |
| } |
| |
| @unpublished{MagedMichael2018FollyHazptr, |
| author="Maged Michael", |
| title="Rewrite from experimental, use of deterministic schedule, improvements", |
| Year="2018", |
| Month="June", |
| Day="17", |
| Note="Hazard pointers: \url{https://github.com/facebook/folly/commit/d42832d2a529156275543c7fa7183e1321df605d}", |
| } |
| |
| |
| |
| @book{Tay87, |
| Author = "Y. C. Tay", |
| Title = "Locking Performance in Centralized Databases", |
| Year = "1987", |
| Publisher = "Academic Press", |
| } |
| |
| @manual{SQNTParallel, |
| title="Guide to Parallel Programming", |
| organization="Sequent Computer Systems, Inc.", |
| year="1988", |
| number="1003-48579-00", |
| } |
| |
| @manual{AndrewDBirrell1989Threads, |
| title="An Introduction to Programming with Threads", |
| organization="Digital Systems Research Center", |
| year="1989", |
| month="January", |
| day="6", |
| number="35", |
| url="http://www.hpl.hp.com/techreports/Compaq-DEC/SRC-RR-35.pdf", |
| lastchecked="November 12, 2016", |
| } |
| |
| @book{HerlihyShavit2008Textbook, |
| Author = "Maurice Herlihy and Nir Shavit", |
| Title = "The Art of Multiprocessor Programming", |
| Year = "2008", |
| isbn = "978-0-12-370591-4", |
| Publisher = "Morgan Kaufmann", |
| Address = "Burlington, MA, USA", |
| } |
| |
| @book{MichaelScott2006Textbook, |
| Author = "Michael Scott", |
| Title = "Programming Language Pragmatics", |
| Year = "2006", |
| isbn = "978-0-12-633951-2", |
| Publisher = "Morgan Kaufmann", |
| Address = "Burlington, MA, USA", |
| } |
| |
| @book{MichaelScott2013Textbook, |
| Author = "Michael L. Scott", |
| Title = "Shared-Memory Synchronization", |
| Year = "2013", |
| isbn = "9781608459575", |
| Publisher = "Morgan \& Claypool", |
| Address = "San Rafael, CA, USA", |
| } |
| |
| @book{SchmidtStalRohnertBuschmann2000v2Textbook, |
| Author = "Douglas C. Schmidt and Michael Stal and Hans Rohnert and Frank Buschmann", |
| Title = "Pattern-Oriented Software Architecture Volume 2: Patterns for Concurrent and Networked Objects", |
| Year = "2000", |
| isbn = "978-0-471-60695-6", |
| Publisher = "Wiley", |
| Address = "Chichester, West Sussex, England", |
| } |
| |
| @unpublished{RustyRussell2003UnreliableLocking, |
| author="Rusty Russell", |
| title="Unreliable Guide To Locking", |
| Year="2003", |
| note="Available: |
| \url{http://www.kernel.org/pub/linux/kernel/people/rusty/kernel-locking/index.html} |
| [Viewed September 10, 2012]", |
| } |
| |
| @book{BuschmannHenneySchmidt2007v4Textbook, |
| Author = "Frank Buschmann and Kevlin Henney and Douglas C. Schmidt", |
| Title = "Pattern-Oriented Software Architecture Volume 4: A Pattern Language for Distributed Computing", |
| Year = "2007", |
| isbn = "978-0-470-05902-9", |
| Publisher = "Wiley", |
| Address = "Chichester, West Sussex, England", |
| } |
| |
| @book{DougLea1997Textbook, |
| Author = "Doug Lea", |
| Title = "Concurrent Programming in Java: Design Principles and Patterns", |
| Year = "1997", |
| isbn = "0-201-69581-2", |
| Publisher = "Addison Wesley Longman", |
| Address = "Reading, MA, USA", |
| } |
| |
| @book{Goetz2007Textbook, |
| Author = "Brian Goetz and Tim Peierls and Joshua Bloch and Joseph Bowbeer and David Holmes and Doug Lea", |
| Title = "Java: Concurrency in Practice", |
| Year = "2007", |
| isbn = "0-321-34960-1", |
| Publisher = "Addison Wesley", |
| Address = "Upper Saddle River, NJ, USA", |
| } |
| |
| @book{Mattson2005Textbook, |
| Author = "Timothy G. Mattson and Beverly A. Sanders and Berna L. Massingill", |
| Title = "Patterns for Parallel Programming", |
| Year = "2005", |
| isbn = "978-0-321-22811-6", |
| Publisher = "Addison Wesley", |
| Address = "Boston, MA, USA", |
| } |
| |
| @book{Reinders2007Textbook, |
| Author = "James Reinders", |
| Title = "{Intel} {Threading} {Building} {Blocks}", |
| Year = "2007", |
| isbn = "978-0-596-51480-8", |
| Publisher = "O'Reilly", |
| Address = "Sebastopol, CA, USA", |
| } |
| |
| @book{Butenhof1997pthreads, |
| Author = "David Butenhof", |
| Title = "Programming with {POSIX} Threads", |
| Year = "1997", |
| isbn = "0201633922", |
| Publisher = "Addison-Wesley", |
| Address = "Boston, MA, USA", |
| } |
| |
| @article{HerbSutter2008EC1Pillars, |
| author="Herb Sutter", |
| title="The Pillars of Concurrency", |
| Year="2007", |
| Month="July", |
| Day="2", |
| Journal="Dr. Dobbs Journal", |
| note="Available: |
| \url{http://www.ddj.com/hpc-high-performance-computing/200001985} |
| [Viewed February 15, 2009]", |
| } |
| |
| @article{HerbSutter2008EC2HowMuchScalability, |
| author="Herb Sutter", |
| title="How Much Scalability Do You Have or Need?", |
| Year="2007", |
| Month="August", |
| Day="3", |
| Journal="Dr. Dobbs Journal", |
| note="Available: |
| \url{http://www.ddj.com/hpc-high-performance-computing/201202924} |
| [Viewed February 22, 2009]", |
| } |
| |
| @unpublished{HerbSutter2008EffectiveConcurrency, |
| author="Herb Sutter", |
| title="Effective Concurrency", |
| Year="2008", |
| note="Series in Dr. Dobbs Journal", |
| } |
| |
| @book{AnthonyWilliams2012, |
| Author = "Anthony Williams", |
| Title = "C++ Concurrency in Action: Practical Multithreading", |
| Year = "2012", |
| Publisher = "Manning", |
| Address = "Shelter Island, NY, USA", |
| } |
| |
| @book{NormMatloff2011ParProcBook, |
| Author = "Norm Matloff", |
| Title = "Programming on Parallel Machines", |
| Year = "2011", |
| Publisher = "University of California, Davis", |
| Address = "Davis, CA, USA", |
| url="http://heather.cs.ucdavis.edu/~matloff/158/PLN/ParProcBook2011.pdf" |
| } |
| |
| @book{NormMatloff2013ParProcBook, |
| Author = "Norm Matloff", |
| Title = "Programming on Parallel Machines", |
| Year = "2013", |
| Publisher = "University of California, Davis", |
| Address = "Davis, CA, USA", |
| } |
| |
| @book{NormMatloff2017ParProcBook, |
| Author = "Norm Matloff", |
| Title = "Programming on Parallel Machines", |
| Year = "2017", |
| Publisher = "University of California, Davis", |
| Address = "Davis, CA, USA", |
| url="http://heather.cs.ucdavis.edu/~matloff/158/PLN/ParProcBook.pdf" |
| } |
| |
| @book{McKenney20xxParallelProgramming, |
| Author = "Paul E. McKenney", |
| Title = "Is Parallel Programming Hard, And, If So, What Can You Do About It?", |
| Year = "2017", |
| Publisher = "kernel.org", |
| Address = "Corvallis, OR, USA", |
| } |
| |
| @book{McKenney2014ParallelProgramming-e1, |
| Author = "Paul E. McKenney", |
| Title = "Is Parallel Programming Hard, And, If So, What Can You Do About It? (First Edition)", |
| Year = "2014", |
| Publisher = "kernel.org", |
| Address = "Corvallis, OR, USA", |
| url="https://kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook-e1.html", |
| } |
| |
| @book{McKenney2019ParallelProgramming-2019-12-22a, |
| Author = "Paul E. McKenney", |
| Title = "Is Parallel Programming Hard, And, If So, What Can You Do About It? (2019.12.22a Release)", |
| Year = "2019", |
| Publisher = "kernel.org", |
| Address = "Corvallis, OR, USA", |
| url="http://kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.2019.12.22a.pdf", |
| } |
| |
| @book{McKenney2018ParallelProgramming-2018-12-08a, |
| Author = "Paul E. McKenney", |
| Title = "Is Parallel Programming Hard, And, If So, What Can You Do About It? (2018.12.08a Release)", |
| Year = "2018", |
| Publisher = "kernel.org", |
| Address = "Corvallis, OR, USA", |
| url="https://kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.2018.12.08a.pdf", |
| } |
| |
| @book{McKenney2008ParallelProgramming, |
| Author = "Paul E. McKenney", |
| Title = "Is Parallel Programming Hard, And, If So, What Can You Do About It?", |
| Year = "2012", |
| Publisher = "kernel.org", |
| Address = "Corvallis, OR, USA", |
| } |
| |
| @unpublished{StewartWeiss2013UNIX, |
| Author="Stewart Weiss", |
| Title="UNIX Lecture Notes", |
| month="May", |
| year="2013", |
| day="9", |
| note="Available: |
| \url{http://www.compsci.hunter.cuny.edu/~sweiss/course_materials/unix_lecture_notes/} |
| [Viewed April 8, 2014]", |
| } |
| |
| @book{Hanson:2013:NCM:2568149, |
| author = {Hanson, Richard J. and Hopkins, Tim}, |
| title = {Numerical Computing With Modern Fortran}, |
| year = {2013}, |
| isbn = {1611973112, 9781611973112}, |
| publisher = {SIAM}, |
| } |
| |
| @unpublished{DevAndroidCom2014SMP, |
| Author="developer.android.com", |
| Title="SMP Primer for Android", |
| month="February", |
| year="2014", |
| day="24", |
| note="Available: |
| \url{http://developer.android.com/training/articles/smp.html} |
| [Viewed February 24, 2014]", |
| } |
| |
| @unpublished{PaoloBonzini2021lockless1, |
| Author="Paolo Bonzini", |
| title = "An introduction to lockless algorithms", |
| month="February", |
| day="19", |
| year="2021", |
| note="Available: |
| \url{https://lwn.net/Articles/844224/} |
| [Viewed February 19, 2021]", |
| } |
| |
| |
| |
| @article{Lampson1980Mesa, |
| author = {Butler W. Lampson and David D. Redell}, |
| title = {Experience with Processes and Monitors in {Mesa}}, |
| journal = {Communications of the ACM}, |
| volume = {23}, |
| number = {2}, |
| year = {1980}, |
| issn = {0001-0782}, |
| pages = {105-117}, |
| doi = {10.1145/358818.358824}, |
| publisher = {ACM Press}, |
| address = {New York, NY, USA}, |
| } |
| |
| @article{Sha1990IEEETransComp, |
| author = {L. Sha and R. Rajkumar and J. P. Lehoczky}, |
| title = {Priority Inheritance Protocols: An Approach to Real-Time Synchronization}, |
| journal = {IEEE Trans. Comput.}, |
| volume = {39}, |
| number = {9}, |
| year = {1990}, |
| issn = {0018-9340}, |
| pages = {1175--1185}, |
| doi = {10.1109/12.57058}, |
| publisher = {IEEE Computer Society}, |
| address = {Washington, DC, USA}, |
| } |
| |
| @inproceedings{Takada:1995:RSN:527074.828566, |
| author = {Takada, H. and Sakamura, K.}, |
| title = {Real-time Scalability of Nested Spin Locks}, |
| booktitle = {Proceedings of the 2nd International Workshop on Real-Time Computing Systems and Applications}, |
| series = {RTCSA '95}, |
| year = {1995}, |
| location = {Tokyo, Japan}, |
| isbn = {0-8186-7106-8}, |
| pages = {160--167}, |
| url = {http://dl.acm.org/citation.cfm?id=527074.828566}, |
| acmid = {828566}, |
| publisher = {IEEE Computer Society}, |
| address = {Washington, DC, USA}, |
| keywords = {interprocessor synchronizations, maximum execution times, maximum nesting level, nested spin locks, performance evaluation, performance measurements, real-time scalability, real-time system, real-time systems, shared memory systems, shared-memory multiprocessor, synchronisation, worst-case performance}, |
| doi="10.1109/RTCSA.1995.528766", |
| } |
| |
| @inproceedings{Cai-DongWang1996PrioInherLock, |
| author = {Cai-Dong Wang and Hiroaki Takada and Ken Sakamura}, |
| title = {Priority Inheritance Spin Locks for Multiprocessor Real-Time Systems}, |
| booktitle = {Proceedings of the 2nd International Symposium on Parallel Architectures, Algorithms, and Networks}, |
| location = {Beijing, China}, |
| series = {ISPAN '96}, |
| year = {1996}, |
| pages = {70--76}, |
| publisher = {IEEE Computer Society}, |
| address = {Washington, DC, USA}, |
| doi = {10.1109/ISPAN.1996.508963}, |
| } |
| |
| @unpublished{Victor2002a, |
| Author="Victor Yodaiken", |
| Title="Against Priority Inheritance", |
| month="July", |
| year="2002", |
| day="10", |
| note="URL: |
| \nolinkurl{http://www.linuxdevices.com/articles/AT7168794919.html} |
| [broken, February 2017]", |
| } |
| |
| @unpublished{DougLocke2002a, |
| Author="Doug Locke", |
| Title="Priority Inheritance: The Real Story", |
| month="July", |
| year="2002", |
| day="16", |
| note="URL: |
| \nolinkurl{http://www.linuxdevices.com/articles/AT5698775833.html} |
| [broken, November 2016], |
| page capture available at \url{http://www.math.unipd.it/%7Etullio/SCD/2007/Materiale/Locke.pdf}", |
| lastchecked="February 7, 2016", |
| } |
| |
| @unpublished{Yodaiken2004FSM, |
| Author="Victor Yodaiken", |
| Title="Against priority inheritance", |
| Month="September", |
| Year="2004", |
| note="Available: |
| \url{http://www.yodaiken.com/papers/inherit.pdf} |
| [Viewed May 26, 2007]", |
| } |
| |
| @unpublished{JonathanCorbet2006PriorityInheritance, |
| Author="Jonathan Corbet", |
| Title="Priority inheritance in the kernel", |
| month="April", |
| year="2006", |
| day="3", |
| note="Available: |
| \url{http://lwn.net/Articles/178253/} |
| [Viewed June 29, 2009]", |
| } |
| |
| |
| @unpublished{StevenRostedt2006piFutexes, |
| author="Steven Rostedt", |
| title="Lightweight {PI-futexes}", |
| Year="2006", |
| Month="June", |
| note="Available: |
| \url{https://www.kernel.org/doc/html/latest/locking/pi-futex.html} |
| [Viewed February 14, 2021]", |
| } |
| |
| |
| |
| @article{Anderson90, |
| author="T. E. Anderson", |
| title="The Performance of Spin Lock Alternatives for Shared-Memory |
| Multiprocessors", |
| Year="1990", |
| Month="January", |
| journal="IEEE Transactions on Parallel and Distributed Systems", |
| volume="1", |
| number="1", |
| pages="6-16", |
| doi="10.1109/71.80120", |
| } |
| |
| @article{Graunke90, |
| author="Gary Graunke and Shreekant Thakkar", |
| title="Synchronization Algorithms for Shared-Memory Multiprocessors", |
| Year="1990", |
| Month="June", |
| journal="IEEE Computer", |
| volume="23", |
| number="6", |
| pages="60-69", |
| doi="10.1109/2.55501", |
| } |
| |
| @article{MellorCrummey91a, |
| author="John M. Mellor-Crummey and Michael L. Scott", |
| title="Algorithms for Scalable Synchronization on Shared-Memory |
| Multiprocessors", |
| Year="1991", |
| Month="February", |
| journal="Transactions of Computer Systems", |
| volume="9", |
| number="1", |
| pages="21--65", |
| doi="10.1145/103727.103729", |
| } |
| |
| @conference{MellorCrummey91, |
| author="John M. Mellor-Crummey and Michael L. Scott", |
| title="Scalable Reader-Writer Synchronization for Shared-Memory |
| Multiprocessors", |
| booktitle="Proceedings of the Third PPOPP", |
| Year="1991", |
| Month="April", |
| pages="106-113", |
| address="Williamsburg, VA", |
| } |
| |
| @techreport{Takada93, |
| author="Hiroaki Takada and Ken Sakamura", |
| title="A Bounded Spin Lock Algorithm with Preemption", |
| institution="University of Tokyo", |
| address="Tokyo, Japan", |
| year="1993", |
| number="93-02", |
| url="https://library.t.u-tokyo.ac.jp/cslib/tech-reports/TR93-02.ps.gz", |
| lastchecked="February 15, 2021", |
| } |
| |
| @techreport{Craig93, |
| author="Travis Craig", |
| title="Building {FIFO} and Priority-Queuing Spin Locks from Atomic Swap", |
| institution="University of Washington", |
| address="Seattle, Washington", |
| year="1993", |
| number="93-02-02", |
| month="February", |
| pages="29", |
| url="ftp://ftp.cs.washington.edu/tr/1993/02/UW-CSE-93-02-02.pdf", |
| lastchecked="November 12, 2016", |
| } |
| |
| @article{BengHongLim93, |
| author="Beng-Hong Lim and Anant Agarwal", |
| title="Waiting Algorithms for Synchronization in Large-Scale Multiprocessors", |
| Year="1993", |
| Month="August", |
| journal="Transactions on Computer Systems", |
| volume="11", |
| number="3", |
| pages="253-294", |
| } |
| |
| @techreport{Magnusson94, |
| author="Peter Magnusson and Anders Landin and Erik Hagersten", |
| title="Efficient Software Synchronization on Large Cache Coherent |
| Multiprocessors", |
| institution="Swedish Institute of Computer Science", |
| address="Kista, Sweden", |
| year="1994", |
| number="T94:07", |
| month="February", |
| pages="32", |
| url="http://dl.acm.org/citation.cfm?id=869729", |
| lastchecked="November 13, 2016", |
| } |
| |
| @article{Zhang94, |
| author="Xiaodong Zhang and Robert Casteneda and Elisa W. Chan", |
| title="Spin-Lock Synchronization on the {Butterfly} and {KSR1}", |
| Year="1994", |
| Month="Spring", |
| journal="{IEEE} Parallel and Distributed Technology Systems and Applications", |
| volume="2", |
| number="1", |
| pages="51-63", |
| } |
| |
| @inproceedings{BengHongLim94, |
| author="Beng-Hong Lim and Anant Agarwal", |
| title="Reactive Synchronization Algorithms for Multiprocessors", |
| booktitle="Proceedings of the sixth international conference on Architectural support for programming languages and operating systems", |
| series="ASPLOS VI", |
| location="San Jose, California, USA", |
| pages="25--35", |
| publisher="{ACM}", |
| address="New York, NY, USA", |
| Year="1994", |
| Month="October", |
| doi="10.1145/195473.195490", |
| } |
| |
| @conference{Wisniewski94, |
| author="Robert W. Wisniewski and Leonidas Kontothanassis and Michael L. Scott", |
| title="Scalable Spin Locks for Multiprogrammed Systems", |
| year="1994", |
| month="April", |
| booktitle="8\textsuperscript{th} IEEE Int'l. Parallel Processing Symposium", |
| address="Cancun, Mexico", |
| publisher="The Institute of Electrical and Electronics Engineers, Inc.", |
| doi="10.1109/IPPS.1994.288245", |
| } |
| |
| @Conference{MichaelLScott2001QlockTimeout, |
| Author="Michael L. Scott and William N. Scherer III", |
| Title="Scalable Queue-Based Spin Locks with Timeout", |
| Booktitle="{Proceedings of the eighth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming}", |
| series={PPoPP '01}, |
| Month="June", |
| Year="2001", |
| pages="44--52", |
| url={http://doi.acm.org/10.1145/379539.379566}, |
| publisher="ACM", |
| address="New York, NY, USA", |
| } |
| |
| @techreport{BenJackson02, |
| author="Benedict Joseph Jackson and Paul E. McKenney and |
| Ramakrishnan Rajamony and Ronald Lynn Rockhold", |
| title="Scalable Interruptible Queue Locks for Shared-Memory Multiprocessor", |
| institution="Assigned to International Business Machines Corporation", |
| address="Washington, DC", |
| year="2002", |
| type="US Patent", |
| number="6,473,819", |
| month="October", |
| url="https://www.google.com/patents/US6473819", |
| lastchecked="December 7, 2016", |
| } |
| |
| @techreport{McKenney02d, |
| author="Paul E. McKenney and Kevin A. Closson and Raghupathi Malige", |
| title="Lingering Locks with Fairness Control for Multi-Node Computer Systems", |
| institution="Assigned to International Business Machines Corporation", |
| address="Washington, DC", |
| year="2002", |
| type="US Patent", |
| number="6,480,918", |
| month="November", |
| url="https://www.google.com/patents/US6480918", |
| lastchecked="December 7, 2016", |
| } |
| |
| @inproceedings{McKenney02e, |
| author={S. Swaminathan and John Stultz and Jack Vogel and Paul E. McKenney}, |
| title="Fairlocks -- A High Performance Fair Locking Scheme", |
| booktitle="Proceedings of the 14\textsuperscript{th} {IASTED} International |
| Conference on Parallel and Distributed Computing and Systems", |
| pages={246--251}, |
| year=2002, |
| address="Cambridge, MA, USA", |
| month="November", |
| url="https://www.researchgate.net/publication/221569047_Fairlocks_A_High_Performance_Fair_Locking_Scheme", |
| lastchecked="November 16, 2016", |
| } |
| |
| @inproceedings{radovic02efficient, |
| author="Zoran Radovi{\'c} and Erik Hagersten", |
| title="Efficient Synchronization for Nonuniform Communication Architectures", |
| booktitle="Proceedings of the 2002 ACM/IEEE Conference on Supercomputing", |
| publisher="The Institute of Electrical and Electronics Engineers, Inc.", |
| year=2002, |
| pages="1-13", |
| address="Baltimore, Maryland, USA", |
| month="November", |
| doi="10.1109/SC.2002.10038", |
| } |
| |
| @inproceedings{radovic03hierarchical, |
| author={Zoran Radovi{\'c} and Erik Hagersten}, |
| title="Hierarchical Backoff Locks for Nonuniform Communication Architectures", |
| booktitle="Proceedings of the Ninth International Symposium on |
| High Performance Computer Architecture ({HPCA-9})", |
| year=2003, |
| address="Anaheim, California, USA", |
| month="February", |
| pages="241-252", |
| doi="10.1109/HPCA.2003.1183542", |
| } |
| |
| @techreport{LukeBrowning2005SimpleLockNUMAAware, |
| author="Luke Browning and Thomas Mathews and Paul E. McKenney and James Moody", |
| title="Apparatus, Method, and Computer Program Product for Converting |
| Simple Locks in a Multiprocessor System", |
| institution="Assigned to International Business Machines Corporation", |
| address="Washington, DC", |
| year="2005", |
| type="US Patent", |
| number="6,842,809", |
| month="January", |
| url="https://www.google.com/patents/US6842809", |
| lastchecked="December 7, 2016", |
| } |
| |
| @inproceedings{YossiLev2009SNZIrwlock, |
| author = {Yossi Lev and Victor Luchangco and Marek Olszewski}, |
| title = {Scalable reader-writer locks}, |
| booktitle = {SPAA '09: Proceedings of the twenty-first annual symposium on Parallelism in algorithms and architectures}, |
| year = {2009}, |
| isbn = {978-1-60558-606-9}, |
| pages = {101--110}, |
| location = {Calgary, AB, Canada}, |
| doi = {10.1145/1583991.1584020}, |
| publisher = {ACM}, |
| address = {New York, NY, USA}, |
| } |
| |
| @inproceedings{SilasBoyd-Wickizer2012scalablelocks, |
| author="Silas Boyd-Wickizer and M. Frans Kaashoek and Robert Morris and Nickolai Zeldovich", |
| title="Non-scalable locks are dangerous", |
| booktitle="Proceedings of the Linux Symposium (OLS 2012)", |
| pages={???-???}, |
| year=2012, |
| address="Ottawa, Canada", |
| month="July", |
| url={http://pdos.csail.mit.edu/papers/linux:lock.pdf}, |
| } |
| |
| |
| |
| @article{Courtois71, |
| author="P. J. Courtois and F. Heymans and D. L. Parnas", |
| title="Concurrent Control with ``Readers'' and ``Writers''", |
| Year="1971", |
| Month="October", |
| journal="Communications of the {ACM}", |
| volume="14", |
| number="10", |
| pages="667--668", |
| doi="10.1145/362759.362813", |
| } |
| |
| @article{Snaman87, |
| author="William E. Snaman and David W. Thiel", |
| title="The {VAX/VMS} Distributed Lock Manager", |
| Year="1987", |
| Month="September", |
| journal="Digital Technical Journal", |
| volume="5", |
| pages="29-44", |
| } |
| |
| @article{Reiman91, |
| author="Martin I. Reiman and Paul E. Wright", |
| title="Performance Analysis of Concurrent-Read Exclusive-Write", |
| Year="1991", |
| Month="February", |
| journal="{ACM}", |
| pages="168-177", |
| } |
| |
| @techreport{Hsieh91, |
| author="Wilson C. Hsieh and William E. Weihl", |
| title="Scalable Reader-Writer Locks for Parallel Systems", |
| institution="MIT Laboratory for Computer Science", |
| address="Cambridge, MA", |
| year="1991", |
| number="MIT/LCS/TR-521", |
| note="Available: |
| \url{http://www.lcs.mit.edu/publications/pubs/pdf/MIT-LCS-TR-521.pdf} |
| [Viewed January 26, 2009]", |
| } |
| |
| @article{Andrews91, |
| author="Gregory R. Andrews", |
| title="Paradigms for Process Interaction in Distributed Programs", |
| Year="1991", |
| journal="ACM Computing Surveys:", |
| volume="23", |
| number="1", |
| issn="0360-0300", |
| pages="49-90", |
| publisher="{ACM Press}", |
| } |
| |
| @inproceedings{WilsonCHsieh92a, |
| author={Wilson C. Hsieh and William E. Weihl}, |
| title="Scalable Reader-Writer Locks for Parallel Systems", |
| booktitle="Proceedings of the 6\textsuperscript{th} International Parallel |
| Processing Symposium", |
| pages={216--230}, |
| year=1992, |
| address="Beverly Hills, CA, USA", |
| month="March", |
| doi="10.1109/IPPS.1992.222989", |
| } |
| |
| @article{Slingwine93, |
| author="Jack Slingwine and Mark Sweiger and Dave Wolfe and Catharine Kristian", |
| title="Sequent Distributed Lock Manager Adds High Availability for ORACLE7 |
| Parallel Server on UNIX", |
| Year="1987", |
| Month="September", |
| journal="??????????", |
| } |
| |
| |
| |
| @inproceedings{10.1145/800212.806505, |
| author = {Easton, William B.}, |
| title = {Process Synchronization without Long-Term Interlock}, |
| year = {1971}, |
| isbn = {9781450378604}, |
| publisher = {Association for Computing Machinery}, |
| address = {New York, NY, USA}, |
| url = {https://doi.org/10.1145/800212.806505}, |
| doi = {10.1145/800212.806505}, |
| booktitle = {Proceedings of the Third ACM Symposium on Operating Systems Principles}, |
| pages = {95--100}, |
| numpages = {6}, |
| location = {Palo Alto, California, USA}, |
| series = {SOSP '71} |
| } |
| |
| @article{10.1145/359863.359878, |
| author = {Lamport, Leslie}, |
| title = {Concurrent Reading and Writing}, |
| year = {1977}, |
| issue_date = {Nov. 1977}, |
| publisher = {Association for Computing Machinery}, |
| address = {New York, NY, USA}, |
| volume = {20}, |
| number = {11}, |
| issn = {0001-0782}, |
| url = {https://doi.org/10.1145/359863.359878}, |
| doi = {10.1145/359863.359878}, |
| journal = {Commun. ACM}, |
| month = nov, |
| pages = {806--811}, |
| numpages = {6}, |
| keywords = {readers/writers problem, shared data, multiprocess synchronization, asynchronous multiprocessing} |
| } |
| |
| @unpublished{JonathanCorbet2003seqlock, |
| Author="Jonathan Corbet", |
| Title="Driver porting: mutual exclusion with seqlocks", |
| month="February", |
| day="14", |
| year="2003", |
| note="\url{https://lwn.net/Articles/22818/}", |
| } |
| |
| @unpublished{SamyAlBahra2011ckseqlock, |
| author="Samy Al Bahra", |
| title="ck\_sequence.h", |
| Year="2011", |
| Month="February", |
| Day="20", |
| Note="Sequence locking: \url{https://github.com/concurrencykit/ck/blob/master/include/ck_sequence.h}", |
| } |
| |
| @unpublished{HansBoehm2012seqlockC11, |
| author="Hans-J. Boehm", |
| title="Can Seqlocks Get Along With Programming Language Memory Models?", |
| Year="2012", |
| Month="June", |
| Day="6", |
| Note="HPL-2012-68", |
| url={http://www.hpl.hp.com/techreports/2012/HPL-2012-68.pdf}, |
| } |
| |
| @unpublished{PaoloBonzini2013QEMUseqlock, |
| author="Paolo Bonzini", |
| title="seqlock: introduce read-write seqlock", |
| Year="2013", |
| Month="September", |
| Day="24", |
| Note="\url{https://git.qemu.org/?p=qemu.git;a=commit;h=ea753d81e8b085d679f13e4a6023e003e9854d51}", |
| } |
| |
| @unpublished{AlexisMenard2016ChromiumSeqLock, |
| author="Alexis Menard", |
| title="Move {OneWriterSeqLock} and {SharedMemorySeqLockBuffer} from content/ to device/base/synchronization", |
| Year="2016", |
| Month="September", |
| Day="30", |
| Note="\url{https://source.chromium.org/chromium/chromium/src/+/b39a3082846d5877a15e8b7e18d66cb142abe8af}", |
| } |
| |
| @unpublished{DavidGoldblatt2018seqlock, |
| author="David Goldblatt", |
| title="Add the {Seq} module, a simple seqlock implementation", |
| Year="2018", |
| Month="April", |
| Day="18", |
| Note="\url{https://github.com/jemalloc/jemalloc/tree/06a8c40b36403e902748d3f2a14e6dd43488ae89}", |
| } |
| |
| @unpublished{DmitryVyukov2019, |
| author="Dmitry Vyukov", |
| title="Improved Lockfree {SeqLock}", |
| Year="2019", |
| Month="March", |
| Day="12", |
| Note="\url{http://www.1024cores.net/home/lock-free-algorithms/reader-writer-problem/improved-lock-free-seqlock}", |
| } |
| |
| |
| |
| @manual{Windows2008FlushProcessWriteBuffers, |
| title="{FlushProcessWriteBuffers} function", |
| organization="Microsoft", |
| year="2008", |
| number="nf-processthreadsapi-flushprocesswritebuffers", |
| note="\url{https://docs.microsoft.com/en-us/windows/desktop/api/processthreadsapi/nf-processthreadsapi-flushprocesswritebuffers}", |
| } |
| |
| @unpublished{JonathanCorbet2010sys-membarrier, |
| Author="Jonathan Corbet", |
| Title="sys\_membarrier()", |
| month="January", |
| day="13", |
| year="2010", |
| note="\url{https://lwn.net/Articles/369567/}", |
| } |
| |
| @unpublished{Linuxmanpage2018sys-membarrier, |
| Author="Jonathan Corbet", |
| Title="membarrier(2)", |
| month="October", |
| day="22", |
| year="2018", |
| note="\url{http://man7.org/linux/man-pages/man2/membarrier.2.html}", |
| } |
| |
| @unpublished{DavidGoldblatt2018asymmetricFences, |
| Author="David Goldblatt", |
| Title="P1202: Asymmetric fences", |
| month="October", |
| day="10", |
| year="2018", |
| note="\url{http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1202r0.pdf}", |
| } |
| |
| |
| |
| @article{HerbSutter2005FreeLunchOver, |
| author="Herb Sutter", |
| title="The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software", |
| Year="2005", |
| Month="March", |
| journal="Dr. Dobb's Journal", |
| volume="30", |
| number="3", |
| note="Available: |
| \url{http://www.gotw.ca/publications/concurrency-ddj.htm} |
| [Viewed January 1, 2009]", |
| } |
| |
| @article{Cantrill:2008:RC:1454456.1454462, |
| author = {Cantrill, Bryan and Bonwick, Jeff}, |
| title = {Real-World Concurrency}, |
| journal = {Queue}, |
| issue_date = {September 2008}, |
| volume = {6}, |
| number = {5}, |
| month = sep, |
| year = {2008}, |
| issn = {1542-7730}, |
| pages = {16--25}, |
| numpages = {10}, |
| url = {http://doi.acm.org/10.1145/1454456.1454462}, |
| doi = {10.1145/1454456.1454462}, |
| acmid = {1454462}, |
| publisher = {ACM}, |
| address = {New York, NY, USA}, |
| } |
| |
| @techreport{PaulEMcKenney2009ProgrammingHard, |
| author="Paul E. McKenney and Manish Gupta and Maged M. Michael and Phil Howard and Joshua Triplett and Jonathan Walpole", |
| title="Is Parallel Programming Hard, And If So, Why?", |
| institution="Portland State University", |
| address="Portland, OR, USA", |
| year="2009", |
| number="TR-09-02", |
| month="February", |
| pages="5", |
| note="URL: |
| \url{https://archives.pdx.edu/ds/psu/10386} |
| [Viewed February 13, 2021]", |
| } |
| |
| @unpublished{PaulEMcKenney2009Supercomputing, |
| author="Paul E. McKenney", |
| title="Teach Parallel", |
| Year="2009", |
| Month="December", |
| Day="15", |
| Note="http://blip.tv/intel-software-network-tv/paul-mckenney-teach-parallel-at-sc09-2997461", |
| } |
| |
| @article{DavidAPatterson2010TroubleMulticore, |
| author = {David Patterson}, |
| title = {The Trouble With Multicore}, |
| journal = {IEEE Spectrum}, |
| volume = {2010}, |
| issue = {7}, |
| month = {July}, |
| year = {2010}, |
| pages = {28--32, 52--53}, |
| numpages = {?}, |
| url = {http://spectrum.ieee.org/computing/software/the-trouble-with-multicore}, |
| publisher = {IEEE}, |
| address = {Los Alamitos, CA, USA}, |
| } |
| |
| @unpublished{PaulEMcKenney2011ASDF:IPPHAISWCYDAI, |
| author="Paul E. McKenney", |
| title="Is Parallel Programming Hard, And If So, What Can You Do About It?", |
| Year="2011", |
| Month="April", |
| Day="29", |
| Note="http://www.rdrop.com/users/paulmck/scalability/paper/IsParallelProgrammingHard.ASDF.2011.04.27a.pdf", |
| } |
| |
| @unpublished{PaulEMcKenney2011SeidnerInterview, |
| author="Rich Seidner", |
| title="Why Is Parallel Programming So Hard", |
| Year="2011", |
| Month="August", |
| Note="http://intelligenceinsoftware.com/feature/expert_insight/why_is_parallel_programming_so_hard/", |
| } |
| |
| @unpublished{PaulEMcKenney2011WhyIsParallelProgrammingSoHard, |
| Author="Tom Dunlap", |
| title = "Why Is Parallel Programming So Hard", |
| month="September", |
| day="2", |
| year="2011", |
| note="Available: |
| \url{http://intelligenceinsoftware.com/feature/expert_insight/why_is_parallel_programming_so_hard/} |
| [Viewed September 2, 2011]", |
| } |
| |
| @inproceedings{DavidUngar2011unsync, |
| author={David Ungar}, |
| title="Everything You Know (about Parallel Programming) Is Wrong!: A Wild Screed about the Future", |
| booktitle="Dynamic Languages Symposium 2011", |
| year=2011, |
| address="Portland, OR, USA", |
| month="October", |
| url="http://dynamic-languages-symposium.org/dls-11/program/media/Ungar_2011_EverythingYouKnowAboutParallelProgrammingIsWrongAWildScreedAboutTheFuture_Dls.pdf", |
| lastchecked="November 23, 2016", |
| note="Invited talk presentation", |
| } |
| |
| @unpublished{PaulEMcKenney2012EmptyLocks, |
| Author="Paul E. McKenney", |
| Title="Transactional Memory Everywhere: Hardware Transactional Lock Elision", |
| month="May", |
| year="2012", |
| day="19", |
| note="Available: |
| \url{https://paulmck.livejournal.com/32267.html} |
| [Viewed January 28, 2021]", |
| } |
| |
| @inproceedings{PaulEMcKenney2012HOTPARsuboptimal, |
| author={Paul E. McKenney}, |
| title="Retrofitted Parallelism Considered Grossly Sub-Optimal", |
| booktitle="4\textsuperscript{th} USENIX Workshop on Hot Topics on Parallelism", |
| pages={7}, |
| year=2012, |
| address="Berkeley, CA, USA", |
| month="June", |
| url={https://www.usenix.org/conference/hotpar12/retro%EF%AC%81tted-parallelism-considered-grossly-sub-optimal}, |
| } |
| |
| @inproceedings{McKenney:2012:BEP:2414729.2414734, |
| author = {McKenney, Paul E.}, |
| title = {Beyond expert-only parallel programming?}, |
| booktitle = {Proceedings of the 2012 ACM workshop on Relaxing synchronization for multicore and manycore scalability}, |
| series = {RACES '12}, |
| year = {2012}, |
| isbn = {978-1-4503-1632-3}, |
| location = {Tucson, Arizona, USA}, |
| pages = {25--32}, |
| numpages = {8}, |
| url = {http://doi.acm.org/10.1145/2414729.2414734}, |
| doi = {10.1145/2414729.2414734}, |
| acmid = {2414734}, |
| publisher = {ACM}, |
| address = {New York, NY, USA}, |
| keywords = {acculturation, economics, linux kernel, tooling}, |
| } |
| |
| |
| @unpublished{LucMaranget2012Tutorial, |
| author="Luc Maranget and Susmit Sarkar and Peter Sewell", |
| title="A Tutorial Introduction to the ARM and POWER Relaxed Memory Models", |
| Year="2012", |
| Month="October", |
| Note="\url{http://www.cl.cam.ac.uk/~pes20/ppc-supplemental/test7.pdf}", |
| } |