Note: This unit is an archived version! See Overview tab for delivered versions.
SOFT3410: Concurrency for Software Development (2018 - Semester 2)
Unit: | SOFT3410: Concurrency for Software Development (6 CP) |
Mode: | Normal-Day |
On Offer: | Yes |
Level: | Senior |
Faculty/School: | School of Computer Science |
Unit Coordinator/s: |
Dr Gramoli, Vincent
|
Session options: | Semester 2 |
Versions for this Unit: |
Campus: | Camperdown/Darlington |
Pre-Requisites: | (INFO1105 OR INFO1905) OR ((INFO1103 OR INFO1113) AND (COMP2123 OR COMP2823)). |
Brief Handbook Description: | The manufacturing industry has experienced a radical shift in the way they design computers, with the integration of multiple processors on the same chip. This hardware shift now requires software developers to acquire the skills that will allow them to write efficient concurrent software. Software developers used to wait for manufacturers to increase the clock frequency of their processors to see increases in the performance of their programs, the challenge is now to exploit, in the same program, more and more processing resources rather than faster processing resources. In this unit, you will learn how to tackle the problems underlying this challenge, including developing and testing concurrent programs, synchronizing resources between concurrent threads, overcoming fairness issues and guaranteeing progress, and ensuring scalability in the level of concurrency. |
Assumed Knowledge: | None. |
Lecturer/s: |
Dr Gramoli, Vincent
|
||||||||||||||||||||
Timetable: | SOFT3410 Timetable | ||||||||||||||||||||
Time Commitment: |
|
Attributes listed here represent the key course goals (see Course Map tab) designated for this unit. The list below describes how these attributes are developed through practice in the unit. See Learning Outcomes and Assessment tabs for details of how these attributes are assessed.
Attribute Development Method | Attribute Developed |
Ability to design concurrent software by taking an object oriented approach. | Design (Level 3) |
A technology for enabling concurrency in a program running on multi-core machines. | Engineering/IT Specialisation (Level 4) |
A deep understanding of synchronization in concurrent software. | Maths/Science Methods and Tools (Level 3) |
For explanation of attributes and levels see Engineering & IT Graduate Outcomes Table 2018.
Learning outcomes are the key abilities and knowledge that will be assessed in this unit. They are listed according to the course goal supported by each. See Assessment Tab for details how each outcome is assessed.
Engineering/IT Specialisation (Level 4)Assessment Methods: |
|
||||||||||||||||||||||||||||||||||||
Assessment Description: |
Two assignments 10%, 20% - One mid-term exam 20% - One final exam, 50% |
Prescribed Text/s: |
Note: Students are expected to have a personal copy of all books listed.
|
Note that the "Weeks" referred to in this Schedule are those of the official university semester calendar https://web.timetable.usyd.edu.au/calendar.jsp
Week | Description |
Week 1 | Lecture: Concurrent Programming Intro: Amdahl's law |
Week 2 | Lecture: Concurrency, threads, processes |
Lab: Contention | |
Week 3 | Lecture: Mutual exclusion, deadlocks |
Lab: Deadlock | |
Week 4 | Lecture: Transactional memory, starvation |
Lab: Livelock | |
Week 5 | Lecture: Synchrobench, consistency criteria |
Synchrobench | |
Week 6 | Lecture: Hand-over-hand locking |
Assessment Due: Mid-term | |
Week 7 | Lecture: Lazy and Versioned locking |
Lab: Coarse-grained locking | |
Week 8 | Lecture: Spinlocks, test-and-test-and-set locks |
Lab: Read/write locking | |
Assessment Due: Programming assignment | |
Week 9 | Lecture: Lock-freedom |
Lab: Hand-over-hand locking | |
Week 10 | Lecture: Elastic transactions |
Lab: Optimistic locking | |
Assessment Due: Programming assignment 2 | |
Week 11 | Lecture: The No-Hot-Spot Skip List |
Lab: Lock freedom | |
Week 12 | Lecture: Reproducibility of concurrent experiments |
Lab: Versioned lock | |
Week 13 | Lecture: Review |
Assessment Due: Programming assignment 3 | |
Exam Period | Assessment Due: Final exam |
Course Relations
The following is a list of courses which have added this Unit to their structure.
Course Goals
This unit contributes to the achievement of the following course goals:
Attribute | Practiced | Assessed |
Professional Conduct (Level 2) | No | 0% |
Project and Team Skills (Level 2) | No | 0% |
Communication (Level 2) | No | 0% |
Information Seeking (Level 3) | No | 0% |
Engineering/IT Specialisation (Level 4) | Yes | 40% |
Maths/Science Methods and Tools (Level 3) | Yes | 60% |
Design (Level 3) | Yes | 0% |
These goals are selected from Engineering & IT Graduate Outcomes Table 2018 which defines overall goals for courses where this unit is primarily offered. See Engineering & IT Graduate Outcomes Table 2018 for details of the attributes and levels to be developed in the course as a whole. Percentage figures alongside each course goal provide a rough indication of their relative weighting in assessment for this unit. Note that not all goals are necessarily part of assessment. Some may be more about practice activity. See Learning outcomes for details of what is assessed in relation to each goal and Assessment for details of how the outcome is assessed. See Attributes for details of practice provided for each goal.