Skip to main content
 

COMP3741: PARALLEL SCIENTIFIC COMPUTING

Please ensure you check the module availability box for each module outline, as not all modules will run in each academic year. Each module description relates to the year indicated in the module availability box, and this may change from year to year, due to, for example: changing staff expertise, disciplinary developments, the requirements of external bodies and partners, and student feedback. Current modules are subject to change in light of the ongoing disruption caused by Covid-19.

Type Open
Level 3
Credits 20
Availability Available in 2024/2025
Module Cap
Location Durham
Department Computer Science

Prerequisites

  • COMP1071 Computer Systems AND COMP2221 Programming Paradigms AND (COMP1021 Maths for Computer Science OR MATH1551 Maths for Engineers and Scientists OR (MATH1561 Single Mathematics A AND MATH1571 Single Mathematics B) OR (MATH1061 Calculus I AND MATH1017 Linear Algebra I))

Corequisites

  • None

Excluded Combinations of Modules

  • MATH3081 Numerical Differential Equations III AND MATH4221 Numerical Differential Equations IV

Aims

  • To develop an understanding of current hardware architectures and how they affect programming models, application performance and security
  • Introduce and familiarise students with parallel programming approaches
  • Introduce scientific computing techniques for the numerical solution of problems in science and engineering
  • To develop practical skills in application development, server provisioning and orchestration in the context of large scale computing

Content

  • Characteristics and design of current processor architectures
  • Memory systems: cache design and performance
  • Processor architecture and security
  • Data parallel programming for shared memory, distributed memory and heterogeneous systems
  • Fundamentals of algorithmic accuracy and performance engineering for applications in scientific computing
  • Fundamentals of numerical algorithms for ordinary differential equations
  • System administration

Learning Outcomes

Subject-specific Knowledge:

  • On completion of the module, students will be able to demonstrate:
  • an understanding of typical approaches to the numerical solution of problems in science and engineering.
  • knowledge and appreciation of some of the research challenges in scientific computing
  • an understanding of basic parallelisation strategies and when to apply them
  • the relationship between hardware architectures and high level programming languages
  • complex performance issues of current computers, and the selection of processors for specific applications

Subject-specific Skills:

  • On completion of the module, students will be able to demonstrate:
  • an awareness of current technology, design analysis, and commercial practice and the ability to bring these together to provide innovative solutions for digital systems
  • an ability to apply numerical techniques to solve ordinary differential equations
  • an ability to develop appropriate parallelisation schemes
  • an ability to critically evaluate how the subject knowledge could be applied to various applications

Key Skills:

  • On completion of the module, students will be able to demonstrate:
  • an ability to propose appropriate solutions to problems in scientific computing
  • an ability to communicate technical information
  • capacity for self-learning in familiar and unfamiliar situations

Modes of Teaching, Learning and Assessment and how these contribute to the learning outcomes of the module

  • Lectures provide the students with the theoretical background of the material, and aid understanding with examples.
  • Practicals enable students to acquire the necessary coding skills, learn about the relevant programming models, libraries and packages and receive feedback on their work.
  • Summative assessments assess the knowledge of relevant libraries and application of methods and techniques.

Teaching Methods and Learning Hours

ActivityNumberFrequencyDurationTotalMonitored
lectures261 per week1 hour26 
practicals151 per week2 hour30 
preparation and reading144 
total200 

Summative Assessment

Component: CourseworkComponent Weighting: 75%
ElementLength / DurationElement WeightingResit Opportunity
Summative Assignment100No
Component: ExaminationComponent Weighting: 25%
ElementLength / DurationElement WeightingResit Opportunity
Examination1 hour100No

Formative Assessment

Example formative exercises are given during the course. The lab practicals contain formative assignments. Feedback will be provided to the students on the summative assignments and lecture materials during the practicals.

More information

If you have a question about Durham's modular degree programmes, please visit our FAQ webpages, Help page or our glossary of terms. If you have a question about modular programmes that is not covered by the FAQ, or a query about the on-line Undergraduate Module Handbook, please contact us.

Prospective Students: If you have a query about a specific module or degree programme, please Ask Us.

Current Students: Please contact your department.