CMU-CS-20-126 August 26, 2020

Total Page:16

File Type:pdf, Size:1020Kb

CMU-CS-20-126 August 26, 2020 Theoretical Foundations for Practical Concurrent and Distributed Computation Naama Ben-David CMU-CS-20-126 August 26, 2020 Computer Science Department School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 Thesis Committee: Guy Blelloch, Chair Umut Acar Phillip Gibbons Mor Harchol-Balter Erez Petrank (Technion) Submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy. Copyright c 2020 Naama Ben-David This research was sponsored by the National Science Foundation award numbers: CCF1919223, CCF1533858, and CCF1629444; by a Microsoft Research PhD Fellowship; and by a National Sciences and Engineering Research Council of Canada (NSERC) Postgraduate Scholarship-Doctoral (PGS-D) fellowship. The views and conclusions contained in this document are those of the author and should not be interpreted as representing the official policies, either expressed or implied, of any sponsoring institution, the U.S. government or any other entity. Keywords: Multiprocessor hardware, NUMA, contention, shared memory, NVRAM, RDMA Abstract Many large-scale computations are nowadays computed using several processes, whether on a single multi-core machine, or distributed over many machines. This wide-spread use of concurrent and distributed technology is also driving innovations in their underlying hardware. To design fast and correct algorithms in such settings, it is important to develop a theory of concurrent and distributed computing that is faithful to practice. Unfortunately, it is difficult to abstract practical problems into approachable theoretical ones, leading to theoretical models that are too far removed from reality to be easily applied in practice. This thesis aims to bridge this gap by building a strong theoretical foundation for practical concurrent and distributed computing. The thesis takes a two-pronged approach toward this goal; improving theoretical analysis of well-studied settings, and modeling new technologies theoretically. In the first vein, we consider the problem of analyzing shared-memory concur- rent algorithms such that the analysis reflects their performance in practice. A new shared memory model that accounts for contention costs is presented, as well as a tool for uncovering the way that a machine interleaves concurrent instructions. We also show that the analysis of concurrent algorithms in more restricted settings can be easy and accurate, by designing and analyzing a concurrent algorithm for nested parallelism. The second approach explored in this thesis to bridge the theory-practice gap considers and models two emerging technologies. Firstly, we study non-volatile random access memories (NVRAM) and develop a general simulation that can adapt many classic concurrent algorithms to a setting in which memory is non-volatile and can recover after a system fault. Finally, we study remote direct memory access (RDMA) as a tool for replication in data centers. We develop a model that captures the power of RDMA and demonstrate that RDMA supports heightened performance and fault tolerance, thereby uncovering its practical relevance by formally reasoning about it theoretically. iv Acknowledgements I would like to express my deep gratitude to my incredible advisor, Guy Blelloch. Being a good researcher and a good advisor are two very different skill-sets, and I feel extremely fortunate to have worked with someone who is so profoundly great at both. I’ve had the privilege of working closely with Guy over the five years of my PhD, allowing me to learn from his wide breadth of technical knowledge and his critical way of choosing worthy problems. At the same time, Guy has always allowed me to explore my own research interests, supporting and encouraging my various internships, visits, and other collaborations. I cannot think of a better role model, and I can only hope to continue to learn from him in the future. I’d also like to thank my other thesis committee members, Umut Acar, Phil Gibbons, Mor Harchol-Balter, and Erez Petrank, for their time, their wisdom, and their advice. I especially thank Erez for his friendship, relentless support, and complete confidence in my ability as a researcher. He has made the Technion feel like a second home-base for me, welcoming me with office space, regular research meetings, and frequent lunch excursions whenever I visit. During my PhD, I’ve had the opportunity to work with many amazing researchers, who have inspired me and made my research more enjoyable. I therefore thank my collaborators, Umut Acar, Marcos Aguilera, Guy Blelloch, Irina Calciu, David Yu Cheng Chan, Jeremy Fine- man, Michal Friedman, Phil Gibbons, Yan Gu, Rachid Guerraoui, Vassos Hadzilacos, Virendra Marathe, Charles McGuffey, Erez Petrank, Mike Rainey, Ziv Scully, Julian Shun, Yihan Sun, Sam Toueg, Yuanhao (Hao) Wei, Athanasios (Thanasis) Xygkis, and Igor Zablotchi. I’ve espe- cially enjoyed my collaborations with Hao; I thank him for the many insightful conversations, brainstorming sessions, and long deadline-fueled nights. I would like to thank my internship/visit hosts, Marcos Aguilera and Rachid Guerraoui. Mar- cos hosted me during my internship at VMware, and introduced me to an exciting research area and to many opportunities that have enriched my PhD experience, even long after my internship ended. Throughout it all, Marcos has been a great collaborator and a reliable source of support and advice. Rachid invited me to visit him at EPFL, which became one of the most fun and productive semesters of my degree. I thank him for this opportunity, for his encouragement and for the examples he sets, both in research and in life. The years spent working on my PhD have been the best in my life. This would not have been possible without my incredible friends. While there are too many friends to name here, I am grateful for each office chat, coffee break, walk, talk, lunch, dinner, karaoke night, library and coffee shop work session, work party, and real party. You have made Pittsburgh my home; the place I feel most comfortable and miss when I am away. I’d like to especially thank Bailey Flanigan and Ram Raghunathan. Bailey has kept me sane during the quarantine, providing com- v pany, laughter, support, good food, and overall close friendship whenever I needed it. Ram is an extraordinary friend whom I feel lucky to have in my life. I am looking forward to finally living in the same metropolitan area as him again! My fiance, David Wajc, is both a family member and a friend. He has been there for me through the day-to-day frustrations and joys, making my successes more rewarding and my fail- ures less discouraging. I thank him for the inexpressible comfort in the knowledge that despite leaving Pittsburgh behind, I will feel at home anywhere with him. Finally, I thank my mother Shoham Ben-David, my father Shai Ben-David, my two brothers Shalev and Sheffi Ben-David, and my sister Lior Hochman, for their unconditional love and support. They provided encour- agement to pursue my passion, confidence that I can achieve anything, and the reassurance that research is not the most important thing in life. I dedicate this thesis to them. vi Contents 1 Introduction 1 1.1 Part 1: Contention in Shared Memory . .3 1.1.1 Analyzing Backoff . .4 1.1.2 Measuring Real Schedules . .5 1.1.3 Leveraging Structure in Nested Parallel Programs . .6 1.2 Part 2: Non Volatile Memory . .7 1.2.1 Delay-Free Persistent Simulations . .8 1.3 Part 3: Remote Direct Memory Access . .9 1.3.1 Scaling to Large Networks . 10 1.3.2 Dynamic Permissions in Small Networks . 11 1.3.3 State Machine Replication with RDMA . 12 1.4 Summary of Contributions . 13 1.5 Model and Preliminaries . 14 1.6 Bibliographic Note . 17 I Contention in Shared Memory 19 2 Analyzing Backoff 21 2.1 Introduction . 21 2.2 Model . 23 2.3 Exponential Backoff . 26 2.3.1 Analyzing Exponential Delay . 27 2.4 A New Approach: Adaptive Probability . 31 2.4.1 Analysis . 32 2.5 Related Work: Other Contention Models . 37 3 Measuring Scheduling Patterns under Contention 39 3.1 Introduction . 39 3.1.1 Our Contributions . 40 3.2 Background and Machine Details . 41 3.2.1 NUMA Architectures . 41 3.2.2 Lock-Free Algorithms and Scheduling . 41 3.2.3 Machines Used . 42 vii 3.3 The Benchmark . 43 3.3.1 Implementation Details . 44 3.3.2 Experiments Shown . 45 3.4 Inferring Scheduling Models . 46 3.4.1 AMD Scheduling Model . 46 3.4.2 Intel Scheduling Model . 48 3.5 Takeaways for Fairness and Focus . 52 3.5.1 Fairness . 53 3.5.2 Focus . 55 3.6 Related Work . 58 3.7 Chapter Discussion . 59 4 Contention-Bounded Series-Parallel DAGs 61 4.1 Introduction . 61 4.2 Background and Peliminaries . 63 4.2.1 SP-DAGs . 63 4.2.2 The SNZI Data Structure . 64 4.3 The Series-Parallel Dag Data Structure . 65 4.3.1 Incounters . 66 4.3.2 Dynamic SNZI . 68 4.3.3 Choosing Handles to the In-Counter . 69 4.4 Correctness and Analysis . 72 4.4.1 Running Time . 72 4.4.2 Space Bounds . 76 4.5 Experimental Evaluation . 77 4.6 Related Work . 81 II Non Volatile Random Access Memory 83 5 Delay-Free Simulations on NVRAM 85 5.1 Introduction . 85 5.2 Model and Preliminaries . 88 5.2.1 Capsules . 89 5.3 k-Delay Simulations . 89 5.4 Building Blocks . 91 5.4.1 Capsule Implementation . 91 5.4.2 Recoverable Primitives . 92 5.5 Persisting Concurrent Programs . 96 5.6 Optimizing the Simulation . 97 5.6.1 CAS-Read Capsules . 97 5.6.2 Normalized Data Structures . 100 5.7 Practical Concerns . 102 5.8 Experiments . 105 viii III Remote Direct Memory Access 109 6 Introduction and Preliminaries 111 6.1 RDMA in Practice .
Recommended publications
  • ACM SIGACT News Distributed Computing Column 28
    ACM SIGACT News Distributed Computing Column 28 Idit Keidar Dept. of Electrical Engineering, Technion Haifa, 32000, Israel [email protected] Sergio Rajsbaum, who edited this column for seven years and established it as a relevant and popular venue, is stepping down. This issue is my first step in the big shoes he vacated. I would like to take this opportunity to thank Sergio for providing us with seven years’ worth of interesting columns. In producing these columns, Sergio has enjoyed the support of the community at-large and obtained material from many authors, who greatly contributed to the column’s success. I hope to enjoy a similar level of support; I warmly welcome your feedback and suggestions for material to include in this column! The main two conferences in the area of principles of distributed computing, PODC and DISC, took place this summer. This issue is centered around these conferences, and more broadly, distributed computing research as reflected therein, ranging from reviews of this year’s instantiations, through influential papers in past instantiations, to examining PODC’s place within the realm of computer science. I begin with a short review of PODC’07, and highlight some “hot” trends that have taken root in PODC, as reflected in this year’s program. Some of the forthcoming columns will be dedicated to these up-and- coming research topics. This is followed by a review of this year’s DISC, by Edward (Eddie) Bortnikov. For some perspective on long-running trends in the field, I next include the announcement of this year’s Edsger W.
    [Show full text]
  • Fast and Correct Load-Link/Store-Conditional Instruction Handling in DBT Systems
    Fast and Correct Load-Link/Store-Conditional Instruction Handling in DBT Systems Abstract Atomic Read Memory Dynamic Binary Translation (DBT) requires the implemen- Operation tation of load-link/store-conditional (LL/SC) primitives for guest systems that rely on this form of synchronization. When Equals targeting e.g. x86 host systems, LL/SC guest instructions are YES NO typically emulated using atomic Compare-and-Swap (CAS) expected value? instructions on the host. Whilst this direct mapping is efficient, this approach is problematic due to subtle differences between Write new value LL/SC and CAS semantics. In this paper, we demonstrate that to memory this is a real problem, and we provide code examples that fail to execute correctly on QEMU and a commercial DBT system, Exchanged = true Exchanged = false which both use the CAS approach to LL/SC emulation. We then develop two novel and provably correct LL/SC emula- tion schemes: (1) A purely software based scheme, which uses the DBT system’s page translation cache for correctly se- Figure 1: The compare-and-swap instruction atomically reads lecting between fast, but unsynchronized, and slow, but fully from a memory address, and compares the current value synchronized memory accesses, and (2) a hardware acceler- with an expected value. If these values are equal, then a new ated scheme that leverages hardware transactional memory value is written to memory. The instruction indicates (usually (HTM) provided by the host. We have implemented these two through a return register or flag) whether or not the value was schemes in the Synopsys DesignWare® ARC® nSIM DBT successfully written.
    [Show full text]
  • A DATA-ORIENTED NETWORK ARCHITECTURE Doctoral Dissertation
    TKK Dissertations 140 Espoo 2008 A DATA-ORIENTED NETWORK ARCHITECTURE Doctoral Dissertation Teemu Koponen Helsinki University of Technology Faculty of Information and Natural Sciences Department of Computer Science and Engineering TKK Dissertations 140 Espoo 2008 A DATA-ORIENTED NETWORK ARCHITECTURE Doctoral Dissertation Teemu Koponen Dissertation for the degree of Doctor of Science in Technology to be presented with due permission of the Faculty of Information and Natural Sciences for public examination and debate in Auditorium T1 at Helsinki University of Technology (Espoo, Finland) on the 2nd of October, 2008, at 12 noon. Helsinki University of Technology Faculty of Information and Natural Sciences Department of Computer Science and Engineering Teknillinen korkeakoulu Informaatio- ja luonnontieteiden tiedekunta Tietotekniikan laitos Distribution: Helsinki University of Technology Faculty of Information and Natural Sciences Department of Computer Science and Engineering P.O. Box 5400 FI - 02015 TKK FINLAND URL: http://cse.tkk.fi/ Tel. +358-9-4511 © 2008 Teemu Koponen ISBN 978-951-22-9559-3 ISBN 978-951-22-9560-9 (PDF) ISSN 1795-2239 ISSN 1795-4584 (PDF) URL: http://lib.tkk.fi/Diss/2008/isbn9789512295609/ TKK-DISS-2510 Picaset Oy Helsinki 2008 AB ABSTRACT OF DOCTORAL DISSERTATION HELSINKI UNIVERSITY OF TECHNOLOGY P. O. BOX 1000, FI-02015 TKK http://www.tkk.fi Author Teemu Koponen Name of the dissertation A Data-Oriented Network Architecture Manuscript submitted 09.06.2008 Manuscript revised 12.09.2008 Date of the defence 02.10.2008 Monograph X Article dissertation (summary + original articles) Faculty Information and Natural Sciences Department Computer Science and Engineering Field of research Networking Opponent(s) Professor Jon Crowcroft Supervisor Professor Antti Ylä-Jääski Instructor(s) Dr.
    [Show full text]
  • Edsger Dijkstra: the Man Who Carried Computer Science on His Shoulders
    INFERENCE / Vol. 5, No. 3 Edsger Dijkstra The Man Who Carried Computer Science on His Shoulders Krzysztof Apt s it turned out, the train I had taken from dsger dijkstra was born in Rotterdam in 1930. Nijmegen to Eindhoven arrived late. To make He described his father, at one time the president matters worse, I was then unable to find the right of the Dutch Chemical Society, as “an excellent Aoffice in the university building. When I eventually arrived Echemist,” and his mother as “a brilliant mathematician for my appointment, I was more than half an hour behind who had no job.”1 In 1948, Dijkstra achieved remarkable schedule. The professor completely ignored my profuse results when he completed secondary school at the famous apologies and proceeded to take a full hour for the meet- Erasmiaans Gymnasium in Rotterdam. His school diploma ing. It was the first time I met Edsger Wybe Dijkstra. shows that he earned the highest possible grade in no less At the time of our meeting in 1975, Dijkstra was 45 than six out of thirteen subjects. He then enrolled at the years old. The most prestigious award in computer sci- University of Leiden to study physics. ence, the ACM Turing Award, had been conferred on In September 1951, Dijkstra’s father suggested he attend him three years earlier. Almost twenty years his junior, I a three-week course on programming in Cambridge. It knew very little about the field—I had only learned what turned out to be an idea with far-reaching consequences. a flowchart was a couple of weeks earlier.
    [Show full text]
  • IEEE TCDP Editorial Notes, June 2020 1. IEEE TCDP Awards
    IEEE TCDP Editorial Notes, June 2020 TCDP Editor: Palden Lama, University of Texas at San Antonio TCDP Chair: Xiaobo Zhou, University of Colorado, Colorado Springs Welcome to the June 2020 edition of the IEEE Distributed Processing Technical Committee’s Newsletter. This volume includes awards, interesting articles, job advertisements, upcoming conferences. The IEEE Computer Society Technical Committee on Distributed Processing (TCDP) is the ideal and appropriate organization to: • Foster and provide a fertile ground of our conferences. • Provide a forum for discussing all activities related to distributed processing. • Accept and publish through newsletters short articles from TCDP members. • Announce job advertisements. • Distribute to this community call for papers. • Announce upcoming conferences. 1. IEEE TCDP Awards 2020 IEEE TCDP Outstanding Technical Achievement Awards https://tc.computer.org/tcdp/awardrecipients/ The IEEE Computer Society Technical Committee on Distributed Processing (TCDP) has named Professor John Ousterhout from Stanford University and Professor Miron Livny from University of Wisconsin as the recipients of the 2020 Outstanding Technical Achievement Award. John Ousterhout is the Bosack Lerner Professor of Computer Science at Stanford University. He received a BS in Physics from Yale University and a PhD in Computer Science from Carnegie Mellon University. He was a Professor of Computer Science at U.C. Berkeley for 14 years, followed by 14 years in industry, where he founded two companies (Scriptics and Electric Cloud), before returning to academia at Stanford. He is a member of the National Academy of Engineering, a Fellow of the ACM, and has received numerous awards, including the ACM Software System Award, the ACM Grace Murray Hopper Award, the National Science Foundation Presidential Young Investigator Award, and the U.C.
    [Show full text]
  • NSDI '11: 8Th USENIX Symposium on Networked Systems Design And
    NSDI ’11: 8th USENIX Symposium on Networked Systems Design and Implementation Boston, MA March 30–April 1, 2011 Opening Remarks and Awards Presentation Summarized by Rik Farrow ([email protected]) David Andersen (CMU), co-chair with Sylvia Ratnasamy (Intel Labs, Berkeley), presided over the opening of NSDI. David told us that there were 251 attendees by the time of the opening, three short of a record for NSDI; 157 papers were submitted and 27 accepted. David joked that they used a Bayesian ranking process based on keywords, and that using the word “A” in your title seemed to increase your chances of having your paper accepted. In reality, format checking and Geoff Voelker’s Banal paper checker were used in a first pass, and all surviving papers received three initial reviews. By the time of the day-long program committee meeting, there were 56 papers left. In the end, there were no invited talks at NSDI ’11, just paper presentation sessions. David announced the winners of the Best Paper awards: “ServerSwitch: A Programmable and High Performance Platform for Datacenter Networks,” Guohan Lu et al. (Microsoft Research Asia), and “Design, Implementation and Evaluation of Congestion Control for Multipath TCP,” Damon Wischik et al. (University College London). Patrick Wendell (Princeton University) was awarded a CRA Undergraduate Research Award for outstanding research potential in CS for his work on DONAR, a system for selecting the best online replica, a service he deployed and tested. Patrick also worked at Cloudera in the summer of 2010 and become a committer for the Apache Avro system, the RPC networking layer to be used in Hadoop.
    [Show full text]
  • Mastering Concurrent Computing Through Sequential Thinking
    review articles DOI:10.1145/3363823 we do not have good tools to build ef- A 50-year history of concurrency. ficient, scalable, and reliable concur- rent systems. BY SERGIO RAJSBAUM AND MICHEL RAYNAL Concurrency was once a specialized discipline for experts, but today the chal- lenge is for the entire information tech- nology community because of two dis- ruptive phenomena: the development of Mastering networking communications, and the end of the ability to increase processors speed at an exponential rate. Increases in performance come through concur- Concurrent rency, as in multicore architectures. Concurrency is also critical to achieve fault-tolerant, distributed services, as in global databases, cloud computing, and Computing blockchain applications. Concurrent computing through sequen- tial thinking. Right from the start in the 1960s, the main way of dealing with con- through currency has been by reduction to se- quential reasoning. Transforming problems in the concurrent domain into simpler problems in the sequential Sequential domain, yields benefits for specifying, implementing, and verifying concur- rent programs. It is a two-sided strategy, together with a bridge connecting the Thinking two sides. First, a sequential specificationof an object (or service) that can be ac- key insights ˽ A main way of dealing with the enormous challenges of building concurrent systems is by reduction to sequential I must appeal to the patience of the wondering readers, thinking. Over more than 50 years, more sophisticated techniques have been suffering as I am from the sequential nature of human developed to build complex systems in communication. this way. 12 ˽ The strategy starts by designing —E.W.
    [Show full text]
  • A Separation Logic for Refining Concurrent Objects
    A Separation Logic for Refining Concurrent Objects Aaron Turon ∗ Mitchell Wand Northeastern University {turon, wand}@ccs.neu.edu Abstract do { tmp = *C; } until CAS(C, tmp, tmp+1); Fine-grained concurrent data structures are crucial for gaining per- implements inc using an optimistic approach: it takes a snapshot formance from multiprocessing, but their design is a subtle art. Re- of the counter without acquiring a lock, computes the new value cent literature has made large strides in verifying these data struc- of the counter, and uses compare-and-set (CAS) to safely install the tures, using either atomicity refinement or separation logic with new value. The key is that CAS compares *C with the value of tmp, rely-guarantee reasoning. In this paper we show how the owner- atomically updating *C with tmp + 1 and returning true if they ship discipline of separation logic can be used to enable atomicity are the same, and just returning false otherwise. refinement, and we develop a new rely-guarantee method that is lo- Even for this simple data structure, the fine-grained imple- calized to the definition of a data structure. We present the first se- mentation significantly outperforms the lock-based implementa- mantics of separation logic that is sensitive to atomicity, and show tion [17]. Likewise, even for this simple example, we would prefer how to control this sensitivity through ownership. The result is a to think of the counter in a more abstract way when reasoning about logic that enables compositional reasoning about atomicity and in- its clients, giving it the following specification: terference, even for programs that use fine-grained synchronization and dynamic memory allocation.
    [Show full text]
  • Lecture Notes in Computer Science 2584 Edited by G
    Lecture Notes in Computer Science 2584 Edited by G. Goos, J. Hartmanis, and J. van Leeuwen 3 Berlin Heidelberg New York Barcelona Hong Kong London Milan Paris Tokyo André Schiper Alex A. Shvartsman Hakim Weatherspoon Ben Y. Zhao (Eds.) Future Directions in Distributed Computing Research and Position Papers 13 Series Editors Gerhard Goos, Karlsruhe University, Germany Juris Hartmanis, Cornell University, NY, USA Jan van Leeuwen, Utrecht University, The Netherlands Volume Editors André Schiper École Polytechnique Fédérale de Lausanne, Faculté Informatique et Communication IN-Ecublens, 1015 Lausanne, Switzerland E-mail: andre.schiper@epfl.ch Alex A. Shvartsman University of Connecticut, Computer Science and Engineering Unit 3155, Storrs, CT 06269, USA E-mail: [email protected] and [email protected] Hakim Weatherspoon Ben Y. Zhao University of California at Berkeley, Computer Science Division 447/443 Soda Hall, Berkeley, CA 94704-1776, USA E-mail: {hweather, ravenben}@cs.berkeley.edu Cataloging-in-Publication Data applied for A catalog record for this book is available from the Library of Congress Bibliographic information published by Die Deutsche Bibliothek Die Deutsche Bibliothek lists this publication in the Deutsche Nationalbibliographie; detailed bibliographic data is available in the Internet at <http://dnb.ddb.de>. CR Subject Classification (1998): C.2.4, D.1.3, D.2.12, D.4.3-4, F.1.2 ISSN 0302-9743 ISBN 3-540-00912-4 Springer-Verlag Berlin Heidelberg New York This work is subject to copyright. All rights are reserved, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, re-use of illustrations, recitation, broadcasting, reproduction on microfilms or in any other way, and storage in data banks.
    [Show full text]
  • Lock-Free Programming
    Lock-Free Programming Geoff Langdale L31_Lockfree 1 Desynchronization ● This is an interesting topic ● This will (may?) become even more relevant with near ubiquitous multi-processing ● Still: please don’t rewrite any Project 3s! L31_Lockfree 2 Synchronization ● We received notification via the web form that one group has passed the P3/P4 test suite. Congratulations! ● We will be releasing a version of the fork-wait bomb which doesn't make as many assumptions about task id's. – Please look for it today and let us know right away if it causes any trouble for you. ● Personal and group disk quotas have been grown in order to reduce the number of people running out over the weekend – if you try hard enough you'll still be able to do it. L31_Lockfree 3 Outline ● Problems with locking ● Definition of Lock-free programming ● Examples of Lock-free programming ● Linux OS uses of Lock-free data structures ● Miscellanea (higher-level constructs, ‘wait-freedom’) ● Conclusion L31_Lockfree 4 Problems with Locking ● This list is more or less contentious, not equally relevant to all locking situations: – Deadlock – Priority Inversion – Convoying – “Async-signal-safety” – Kill-tolerant availability – Pre-emption tolerance – Overall performance L31_Lockfree 5 Problems with Locking 2 ● Deadlock – Processes that cannot proceed because they are waiting for resources that are held by processes that are waiting for… ● Priority inversion – Low-priority processes hold a lock required by a higher- priority process – Priority inheritance a possible solution L31_Lockfree
    [Show full text]
  • 31 International Symposium on Distributed Computing Andréa W
    31 International Symposium on Distributed Computing DISC 2017, October 16–20, Vienna, Austria Edited by Andréa W. Richa LIPIcs – Vol. 91 – DISC2017 www.dagstuhl.de/lipics Editor Andréa W. Richa Computer Science and Engineering School of Computing, Informatics and Decision Systems Engineering (CIDSE) Arizona State University Tempe, AZ, USA [email protected] ACM Classification 1998 C.2 Computer-Communication Networks, C.2.4 Distributed Systems, D.1.3 Concurrent Programming, E.1 Data Structures, F Theory of Computation, F.1.1 Models of Computation, F.1.2 Modes of Computation ISBN 978-3-95977-053-8 Published online and open access by Schloss Dagstuhl – Leibniz-Zentrum für Informatik GmbH, Dagstuhl Publishing, Saarbrücken/Wadern, Germany. Online available at http://www.dagstuhl.de/dagpub/978-3-95977-053-8. Publication date October, 2017 Bibliographic information published by the Deutsche Nationalbibliothek The Deutsche Nationalbibliothek lists this publication in the Deutsche Nationalbibliografie; detailed bibliographic data are available in the Internet at http://dnb.d-nb.de. License This work is licensed under a Creative Commons Attribution 3.0 Unported license (CC-BY 3.0): http://creativecommons.org/licenses/by/3.0/legalcode. In brief, this license authorizes each and everybody to share (to copy, distribute and transmit) the work under the following conditions, without impairing or restricting the authors’ moral rights: Attribution: The work must be attributed to its authors. The copyright is retained by the corresponding authors. Digital Object Identifier: 10.4230/LIPIcs.DISC.2017.0 ISBN 978-3-95977-053-8 ISSN 1868-8969 http://www.dagstuhl.de/lipics 0:iii LIPIcs – Leibniz International Proceedings in Informatics LIPIcs is a series of high-quality conference proceedings across all fields in informatics.
    [Show full text]
  • Multithreading for Gamedev Students
    Multithreading for Gamedev Students Keith O’Conor 3D Technical Lead Ubisoft Montreal @keithoconor - Who I am - PhD (Trinity College Dublin), Radical Entertainment (shipped Prototype 1 & 2), Ubisoft Montreal (shipped Watch_Dogs & Far Cry 4) - Who this is aimed at - Game programming students who don’t necessarily come from a strict computer science background - Some points might be basic for CS students, but all are relevant to gamedev - Slides available online at fragmentbuffer.com Overview • Hardware support • Common game engine threading models • Race conditions • Synchronization primitives • Atomics & lock-free • Hazards - Start at high level, finish in the basement - Will also talk about potential hazards and give an idea of why multithreading is hard Overview • Only an introduction ◦ Giving a vocabulary ◦ See references for further reading ◦ Learn by doing, hair-pulling - Way too big a topic for a single talk, each section could be its own series of talks Why multithreading? - Hitting power & heat walls when going for increased frequency alone - Go wide instead of fast - Use available resources more efficiently - Taken from http://www.karlrupp.net/2015/06/40-years-of-microprocessor- trend-data/ Hardware multithreading Hardware support - Before we use multithreading in games, we need to understand the various levels of hardware support that allow multiple instructions to be executed in parallel - There are many more aspects to hardware multithreading than we’ll look at here (processor pipelining, cache coherency protocols etc.) - Again,
    [Show full text]