Module Details

Module Code: PROG
Module Title: Concurrent Programming
Title: Concurrent Programming
Module Level:: 8
Credits:: 5
Module Coordinator: Nigel Whyte
Module Author:: Philip Bourke
Domains:  
Module Description: Analyse, evaluate and implement concurrent algorithms which allow computational processes to be executed efficiently within digital games.

Design and develop programs to perform tasks in parallel on single, multi?core and distributed CPU's and GPU's
 
Learning Outcomes
On successful completion of this module the learner will be able to:
# Learning Outcome Description
LO1 Evaluate methods for synchronising concurrent processes and assess effects of concurrency in specific domains, applied to games development and title execution environments
LO2 Design algorithms that execute on multiple processes with core or processor affinity
LO3 Develop functional programs that express the logic of a computation (without defining flow) and integrate into a digital game
Dependencies
Module Recommendations

This is prior learning (or a practical skill) that is recommended before enrolment in this module.

No recommendations listed
Co-requisite Modules
No Co-requisite modules listed
Additional Requisite Information
No Co Requisites listed
 
Indicative Content
Concurrent programming
Processes and Threads, Microchip Architectures (multicore, NUMA, hUMA) , GPU Architectures (SIMD, SIMT) Mutual Exclusion (Mutex, Semaphore), APIs (Pthreads, OpenMP, MPI, OpenCL, CUDA) and implementations
Functional Programming
Definition, process creation, message passing, registering processes
Module Content & Assessment
Assessment Breakdown%
Continuous Assessment30.00%
Project20.00%
End of Module Formal Examination50.00%

Assessments

Full Time

Continuous Assessment
Assessment Type Written Report % of Total Mark 30
Timing Every Week Learning Outcomes 1,2,3
Non-marked No
Assessment Description
Reading and criticism of industry/academic papers. Personal research/educational essay writing
Project
Assessment Type Project % of Total Mark 20
Timing Sem 1 End Learning Outcomes 1
Non-marked No
Assessment Description
Complete a project which includes games programming patterns and concurrency
No Practical
End of Module Formal Examination
Assessment Type Formal Exam % of Total Mark 50
Timing End-of-Semester Learning Outcomes 1,2
Non-marked No
Assessment Description
End of year exam
Reassessment Requirement
Repeat examination
Reassessment of this module will consist of a repeat examination. It is possible that there will also be a requirement to be reassessed in a coursework element.
Reassessment Description
Decided by module academic in conjunction with programme board. Repeat of coursework and/or written examination or other repeat mechanism as appropriate dependent on students performance and module engagement.

SETU Carlow Campus reserves the right to alter the nature and timings of assessment

 

Module Workload

Workload: Full Time
Workload Type Workload Category Contact Type Workload Description Frequency Average Weekly Learner Workload Hours
Lecture Contact Lecture 12 Weeks per Stage 2.00 24
Laboratory Contact Laboratory 12 Weeks per Stage 4.00 48
Estimated Learner Hours Non Contact Estimated Learner Hours 15 Weeks per Stage 3.53 53
Total Weekly Contact Hours 6.00
 
Module Resources
Recommended Book Resources
  • Manning Publications. (2012), C++ Concurrency in Action, 1. Manning Publications, [ISBN: 978-19339887].
  • Simon Marlow. (2013), Parallel and Concurrent Programming in Haskell, O'Reilly Media, [ISBN: 978-144933594].
  • Joe Armstrong. (2013), Programming Erlang: Software for a Concurrent World, 2. Pragmatic Bookshelf, [ISBN: 978-19377855].
Supplementary Book Resources
  • David R. Kaeli et al. Heterogeneous Computing with OpenCL 2.0, 3. Morgan Kaufmann, [ISBN: 978-01280141].
This module does not have any article/paper resources
This module does not have any other resources
Discussion Note: