Module Specification

The information contained in this module specification was correct at the time of publication but may be subject to change, either during the session because of unforeseen circumstances, or following review of the module at the end of the session. Queries about the module should be directed to the member of staff with responsibility for the module.
1. Module Title Multi-Core and Multi-Processor Programming
2. Module Code COMP528
3. Year Session 2023-24
4. Originating Department Computer Science
5. Faculty Fac of Science & Engineering
6. Semester First Semester
7. CATS Level Level 7 FHEQ
8. CATS Value 15
9. Member of staff with responsibility for the module
Dr JD Alcock Computer Science J.D.Alcock@liverpool.ac.uk
10. Module Moderator
11. Other Contributing Departments  
12. Other Staff Teaching on this Module
Mrs J Birtall School of Electrical Engineering, Electronics and Computer Science Judith.Birtall@liverpool.ac.uk
Mr HJ Forbes Computer Science H.J.Forbes@liverpool.ac.uk
13. Board of Studies
14. Mode of Delivery
15. Location Main Liverpool City Campus
    Lectures Seminars Tutorials Lab Practicals Fieldwork Placement Other TOTAL
16. Study Hours 24

  6

12

    42
17.

Private Study

108
18.

TOTAL HOURS

150
 
    Lectures Seminars Tutorials Lab Practicals Fieldwork Placement Other
19. Timetable (if known)            
 
20. Pre-requisites before taking this module (other modules and/or general educational/academic requirements):

 
21. Modules for which this module is a pre-requisite:

 
22. Co-requisite modules:

 
23. Linked Modules:

 
24. Programme(s) (including Year of Study) to which this module is available on a mandatory basis:

25. Programme(s) (including Year of Study) to which this module is available on a required basis:

26. Programme(s) (including Year of Study) to which this module is available on an optional basis:

27. Aims
 

To provide students with a deep, critical and systematic understanding of key issues and effective solutions for parallel programming for systems with multi-core processors and parallel architectures.
To develop students appreciation of a variety of approaches to parallel programming, including using MPI, OpenMP and CUDA. 
To develop the students skills in parallel programming using MPI, OpenMP and CUDA.
To develop the students skills in parallelization of existing serial code.

 
28. Learning Outcomes
 

(LO1) At the end of the module students should be able to:  Explain the concepts of multi-core processors and systems and parallel architectures,  their advantages and challenges of their programming.

 

(LO2) Appraise the differences between various programming techniques and programming patterns available for parallel programming for multi-core systems and parallel architectures. 

 

(LO3) Design parallel multi-threaded programs using the most appropriate for a particular application approach, using one of MPI, OpenMP, CUDA, or a combination of thereof.  

 

(LO4) Design and implement reasonably sophisticated parallel multi-threaded programs demonstrating reasonable scalability on multi-core and parallel systems  using MPI, OpenMP, or CUDA, or the combination of thereof. 

 

(LO5) Analyse and evaluate the efficiency and scalability of parallel multi-threaded programs for multi-core parallel systems.

 

(S1) Improving own learning/performance - Personal action planning

 

(S2) Communication (oral, written and visual) - Presentation skills

 

(S3) Communication (oral, written and visual) - Report writing

 

(S4) Critical thinking and problem solving

 

(S5) Information skills - Critical reading

 

(S6) Numeracy/computational skills - Reason with numbers/mathematical concepts

 

(S7) Numeracy/computational skills - Problem solving

 
29. Teaching and Learning Strategies
 

Teaching Method 1 - Lecture
Description:
Teaching Method 2 - Tutorial
Description:
Teaching Method 3 - Laboratory Work
Description:

Standard on-campus delivery
Teaching Method 1 - Lecture
Description: Mix of on-campus/on-line synchronous/asynchronous sessions
Teaching Method 2 - Tutorial/Laboratory Work
Description: On-campus synchronous sessions

 
30. Syllabus
   

Introduction to multi-core processors and parallel architectures, symmetric multiprocessing (SMP), computer clustered multiprocessing, Intel Many-Integrated Core architecture: opportunities and challenges (3 lectures); applications of high-performance parallel computing and business benefits of HPC: an overview (1 lecture); Elements of parallel programming: decomposition; scaling and speedup; threads; synchronization (3 lectures); MPI Overwiew (1 lecture); Principles of MPI programming for clustered multiprocessing (4 lectures); OpenMP Overview (1 lecture); Principles of OpenMP programming for SMP architectures (4 lectures); graphics processing units (GPU) and programming for compute unified device architecture (CUDA) (4 lectures); comparison of parallel programming languages, including MATHLAB, X10, Chapel, UPC, XcalableMP (1 lecture); combining MPI, OpenMP and CUDA (2 lecture); performance and scalability evaluation and testing (3 lectures) parallel debugging ( 1 lecture); parallelization of existing serial code: opportunities and challenges (2 lectures).

The Continuous Assessment elements require computing programming in the language C, and course labs and examples are also in C

 
31. Recommended Texts
  Reading lists are managed at readinglists.liverpool.ac.uk. Click here to access the reading lists for this module.
 

Assessment

32. EXAM Duration Timing
(Semester)
% of
final
mark
Resit/resubmission
opportunity
Penalty for late
submission
Notes
   
33. CONTINUOUS Duration Timing
(Semester)
% of
final
mark
Resit/resubmission
opportunity
Penalty for late
submission
Notes
  (528.2) CA1: Theory Quiz There is a resit opportunity. Standard UoL penalty applies for late submission. This is not an anonymous assessment. Assessment Schedule (When): Semester 1 0 25
  (528.1) CA2: Programming assessment There is a resit opportunity. Standard UoL penalty applies for late submission. This is not an anonymous assessment. Assessment Schedule (When): Semester 1 0 35
  (528) CA3: Programming Assessment There is a resit opportunity. Standard UoL penalty applies for late submission. This is not an anonymous assessment. Assessment Schedule (When): Semester 1 0 40