Skip to main content

Trinity College Dublin, The University of Dublin

Menu Search

Module Descriptor School of Computer Science and Statistics

Module CodeCS3014
Module NameConcurrent Systems I
Module Short TitleN/a
Semester TaughtHilary Term
Contact HoursLecture hours: 33
Lab hours: 0
Tutorial hours: 0

Total hours: 33
Module PersonnelDr David Gregg
Learning Outcomes

When students have successfully completed this module they should be able to:

  • Explain trends in computer architecture (power wall, memory wall, diminishing returns from ILP) that have led to the development of multi-core processors
  • Explain and compare the major categories of parallel architecture that have appeared over the last 40 years from instruction level parallelism to distributed memory machines
  • Classify new, previously unseen architectures into these categories
  • Evaluate the suitability of parallel architectures for efficiently running a given piece of code
  • Design and construct efficient parallel programs in C/C++ using OpenMP
  • Design and construct routines using vector instructions sets, such as Intel SSE
Learning Aims

The goal of this module is to provide students with a deep understanding of parallel and multi-core architectures and to provide students with necessary architecture background for careers in professional software development and/or further research on these emerging platforms.

Module Content

Specific topics addressed in this module include:

  • State of technology driving the architecture
  • Memory Hierarchy
  • Instruction-level Parallelism
  • Superscalar processors
  • VLIW architectures
  • Multithreaded architectures
  • Vector architectures and programming in SSE
  • SIMD multimedia instructions
  • Design and implementation of programs using OpenMP
  • Bus multiprocessors
  • Network multiprocessors and multi-computers , and an introduction to MPI
Recommended Reading List

Computer Architecture: A quantitative approach by Hennessey and Patterson

Module PrerequisitesCS 2014, CS 2015, A good knowledge of C programming
Assessment Details

The module will be assessed through a combination of course work (20%) and end of semester exam (80%). The course work involves the students constructing parallel programs, and experiment with the parallelization and optimization techniques that work best for modern multi-core processors.

In the supplemental examinations, assessment is by written examination only, which contributes 100% of the overall mark.

Module Website
Academic Year of DataN/a