Skip to main content
Unit of study_

SOFT3410: Concurrency for Software Development

2022 unit information

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.

Unit details and rules

Managing faculty or University school:

Engineering

Study level Undergraduate
Academic unit Computer Science
Credit points 6
Prerequisites:
? 
COMP2017 OR COMP2129
Corequisites:
? 
None
Prohibitions:
? 
None
Assumed knowledge:
? 
None

At the completion of this unit, you should be able to:

  • LO1. Understanding the landscape of modern multi-core and many-core computer systems, real-world examples and how this class can be used in reality
  • LO2. Understanding the basic system programming, Linux, C basic programming knowledge, C system programming, C pointers and memory management, safety issues with memory management.
  • LO3. Understanding the concurrent programming fundamentals, memory hierarchy and optimisations, and contemporary multi-core hardware
  • LO4. Understanding the challenges in developing concurrent data structures and algorithms, and contemporary multi-core hardware
  • LO5. Understanding "process" in the context of concurrent and parallel programming
  • LO6. Understanding threads and synchronisation; demonstrate ability to synchronize concurrent threads
  • LO7. demonstrate ability to program using low level atomic instructions
  • LO8. understand the concept of sharing memory across concurrent executions.
  • LO9. Understanding different locks mechanism and how to use them in parallel programming
  • LO10. Understanding shared memory programming in multi-core environment, able to write safe and efficient multithreading programs using pthread and OpenMP
  • LO11. Understanding the concept of message passing in parallel programming; able to write basic parallel codes on distributed systems using message passing interface
  • LO12. Understanding SIMD programming for GPU and GPU architecture basics.

Unit availability

This section lists the session, attendance modes and locations the unit is available in. There is a unit outline for each of the unit availabilities, which gives you information about the unit including assessment details and a schedule of weekly activities.

The outline is published 2 weeks before the first day of teaching. You can look at previous outlines for a guide to the details of a unit.

There are no availabilities for this year.
Session MoA ?  Location Outline ? 
Semester 2 2020
Normal day Camperdown/Darlington, Sydney
Semester 2 2021
Normal day Remote
Semester 2 2022
Normal day Camperdown/Darlington, Sydney
Semester 2 2022
Normal day Remote

Find your current year census dates

Modes of attendance (MoA)

This refers to the Mode of attendance (MoA) for the unit as it appears when you’re selecting your units in Sydney Student. Find more information about modes of attendance on our website.