Computer Science and Mathematics (3 Years) [BSc]
|Unit level:||Level 3|
|Teaching period(s):||Semester 2|
|Offered by||School of Computer Science|
|Available as a free choice unit?:||N
- COMP25212 - System Architecture (Compulsory)
Additional RequirementsStudents who are not from the School of Computer Science must have permission from both Computer Science and their home School to enrol.
Due to technological limitations, it is proving increasingly difficult to maintain a continual increase in the performance of individual processors. Therefore, the current trend is to integrate multiple processors on to a single chip and exploit the resulting parallel resources to achieve higher computing power. However, this may require significantly different approaches to both hardware and software particularly for general purpose applications. This course will explore these issues in detail.
Learning outcomes are detailed on the COMP35112 course unit syllabus page on the School of Computer Science's website for current students.
- Analytical skills
- Problem solving
- Written communication
- Written exam - 75%
- Written assignment (inc essay) - 25%
Trends in technology, limitations and consequences. The move to multi-coreParallelism in programs, ILP, Thread Level, Data Parallelism.
SIMD, MIMD, Shared Memory, Distributed Memory, strengths and weaknesses.
Multithreaded programming, Data parallel programming, Explicit vs Implicit parallelism, automatic parallelisation. The Case for Shared Memory. When to share?
Shared Memory Multiprocessors
Basic structures, the cache coherence problem. The MESI protocol. Limitations. Directory based coherence.
Programming with Locks and Barriers
The need for synchronisation. Problems with explicit synchronisation
Other Parallel Programming Approaches
MPI and OpenMP
The easy route to automatic parallelisation?
Principles. Hardware and Software approaches
Memory system design. Memory consistency
Other Architectures and Programming Approaches
Data Driven Parallelism
Dataflow principles and Functional Programing
COMP35112 reading list can be found on the School of Computer Science website for current students.
Written feedback on reports for laboratory exercises. Students who attempt previous exam questions can get feedback on their answers.
- Lectures - 24 hours
- Independent study hours - 76 hours