Department of Computer Science and Technology – Course pages 2021–22: Multicore Semantics and Programming skip to primary navigationskip to content Study at Cambridge About the University Research at Cambridge Search site Home Study at Cambridge Undergraduate Courses Applying Events and open days Fees and finance Student blogs and videos Graduate Why Cambridge Course directory How to apply Fees and funding Frequently asked questions International students Continuing education Executive and professional education Courses in education About the University How the University and Colleges work History Visiting the University Term dates and calendars Map For media Video and audio Find an expert Publications Global Cambridge News Events Public engagement Jobs Give to Cambridge Research at Cambridge For staff For current students For alumni For business Colleges & departments Libraries & facilities Museums & collections Email & phone search Computer Laboratory Teaching Courses 2021–22 Multicore Semantics and Programming Department of Computer Science and Technology Masters Course pages 2021–22 Computer Laboratory Teaching Courses 2021–22 Masters Multicore Semantics and Programming Advanced Graphics and Image Processing Advanced Topics in Computer Architecture Automated Reasoning Category Theory Computer Security: Principles and Foundations Digital Signal Processing Digital Signal Processing with Computer Music Distributed Ledger Technologies: Foundations and Applications Interactive Formal Verification Introduction to Natural Language Syntax and Parsing Introduction to networking and systems measurements Introduction to Robotics Large-scale data processing and optimisation Machine Learning and the Physical World Machine Learning for Language Processing Machine Visual Perception Natural Language Processing Network Architectures Principles of Machine Learning Systems Probabilistic Machine Learning Research Skills Programme Theory of Deep Learning Advanced Operating Systems Advanced Robotics Advanced Topics in Category Theory Advanced Topics in Computer Systems Advanced topics in machine learning Cybercrime Interaction with Machine Learning Introduction to Computational Semantics Representation Learning on Graphs and Networks Technology, law and society Topics in Logic and Complexity Multicore Semantics and Programming Syllabus Course materials Assessment Recordings Principal lecturers: Prof Peter Sewell, Dr Timothy Harris Taken by: MPhil ACS, Part III Code: L304 Hours: 16 (8 x 2h blocks, including 2 x 1h practical sessions) Class limit: max. 10 students Prerequisites: Some familiarity with discrete mathematics (sets, partial orders, etc.) and with sequential Java programming will be assumed. Experience with operational semantics and with some concurrent programming would be helpful. Aims In recent years multiprocessors have become ubiquitous, but building reliable concurrent systems with good performance remains very challenging. The aim of this module is to introduce some of the theory and the practice of concurrent programming, from hardware memory models and the design of high-level programming languages to the correctness and performance properties of concurrent algorithms. Lectures Part 1: Introduction and relaxed-memory concurrency [Professor P. Sewell] Introduction. Sequential consistency, atomicity, basic concurrent problems. [1 block] Concurrency on real multiprocessors: the relaxed memory model(s) for x86, ARM, and IBM Power, and theoretical tools for reasoning about x86-TSO programs. [2 blocks] High-level languages. An introduction to C/C++11 and Java shared-memory concurrency. [1 block] Part 2: Concurrent algorithms [Dr T. Harris] Concurrent programming. Simple algorithms (readers/writers, stacks, queues) and correctness criteria (linearisability and progress properties). Advanced synchronisation patterns (e.g. some of the following: optimistic and lazy list algorithms, hash tables, double-checked locking, RCU, hazard pointers), with discussion of performance and on the interaction between algorithm design and the underlying relaxed memory models. [3 blocks] Research topics, likely to include one hour on transactional memory and one guest lecture. [1 block] Objectives By the end of the course students should: have a good understanding of the semantics of concurrent programs, both at the multprocessor level and the C/Java programming language level; have a good understanding of some key concurrent algorithms, with practical experience. Assessment Two assignments each worth 50% Recommended reading Herlihy, M. and Shavit, N. (2008). The art of multiprocessor programming. Morgan Kaufmann. Coursework Coursework will consist of assessed exercises. Practical work Part 2 of the course will include a practical exercise sheet. The practical exercises involve building concurrent data structures and measuring their performance. The work can be completed in C, Java, or similar languages. Assessment - Part III and MPhil Students Assignment 1, for 50% of the overall grade. Written coursework comprising a series of questions on the design of mutual exclusion locks and shared-memory data structures. Assignment 2, for 50% of the overall grade. Written coursework comprising a series of questions on hardware and software relaxed-memory concurrency semantics. Further Information Due to COVID-19, the method of teaching for this module will be adjusted to cater for physical distancing and students who are working remotely. We will confirm precisely how the module will be taught closer to the start of term. Current Cambridge undergraduate students who are continuing onto Part III or the MPhil in Advanced Computer Science may only take this module if they did NOT take it as a Unit of Assessment in Part II. This module is shared with Part II of the Computer Science Tripos. Assessment will be adjusted for the two groups of students to be at an appropriate level for whichever course the student is enrolled on. Further information about assessment and practicals will follow at the first lecture. © 2021 Department of Computer Science and Technology, University of Cambridge Information provided by Prof Peter Sewell – edit page University A-Z Contact the University Accessibility Freedom of information Terms and conditions Study at Cambridge Undergraduate Graduate International students Continuing education Executive and professional education Courses in education About the University How the University and Colleges work Visiting the University Map News Events Jobs Give to Cambridge Research at Cambridge News Features Discussion Spotlight on... About research at Cambridge