blob: 1b96a55a6097d43477c933f2e286b09da73ff691 [file] [log] [blame]
@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}",
}