Timetable information in the Course Catalogue may be subject to change.

University Homepage
DRPS Homepage
DRPS Search
DRPS Contact
DRPS : Course Catalogue : School of Informatics : EPCC on-campus

Postgraduate Course: Programming Languages for HPC (EPCC11019)

Course Outline
SchoolSchool of Informatics CollegeCollege of Science and Engineering
Credit level (Normal year taken)SCQF Level 11 (Postgraduate) AvailabilityAvailable to all students
SCQF Credits10 ECTS Credits5
SummaryCompiled languages are the key building block in achieving good performance on modern computers, and underpin key methods in High Performance Computing such as large-scale parallelism and use of accelerated systems. Understanding how to write efficient compiled programs is therefore a core skill for all HPC practitioners This course will provide a strong foundation in compiled languages and cover associated techniques such as use of standard libraries and native vectorisation and parallelisation features. All topics are illustrated by programming examples, enabling students to develop practical skills that are widely applicable to a range of other disciplines.
Course description The exact set of languages and methods explored in the course may vary slightly from year to year, but will include many of the following:

- principles of compiled vs interpreted languages

- performance comparison of the two approaches

- essentials of the C language

- compiler fundamentals

- an exposure to compiler optimisations

- array processing and use of standard libraries

- C++ core principles for HPC (templates, resource management, standard library), and additional features (polymorphic structures and inheritance)

- overview of other languages such as Fortran, Java and Rust

- threading approaches
Entry Requirements (not applicable to Visiting Students)
Pre-requisites Co-requisites
Prohibited Combinations Other requirements None
Information for Visiting Students
Course Delivery Information
Academic year 2024/25, Available to all students (SV1) Quota:  60
Course Start Semester 1
Timetable Timetable
Learning and Teaching activities (Further Info) Total Hours: 100 ( Lecture Hours 11, Supervised Practical/Workshop/Studio Hours 22, Programme Level Learning and Teaching Hours 2, Directed Learning and Independent Learning Hours 65 )
Assessment (Further Info) Written Exam 0 %, Coursework 100 %, Practical Exam 0 %
Additional Information (Assessment) Coursework (100%) : Comprised of two formative quizzes, one summative quiz, and a final coursework assessment
Feedback Not entered
No Exam Information
Learning Outcomes
On completion of this course, the student will be able to:
  1. Characterise and evaluate the need for compiled programming languages in HPC.
  2. Implement and critique solutions for high performance code using appropriate programming language concepts and techniques.
  3. Analyse, interpret and explain the different approaches, principles and interactions of different levels of parallelism in programming languages.
  4. Appreciate how hardware and systems can impact the software programming techniques from a performance perspective.
Reading List
Additional Information
Graduate Attributes and Skills -Problem-solving

-Critical analysis

-Knowledge Integration

-Planning and Organising

-Independent Learning

-Self-awareness and reflection


-Written Communication

-Writing effective software
Special Arrangements Students should have familiarity with at least one programming language, and ability to demonstrate knowledge of programming essentials, such as loops, conditional statements, functions and data structures.
KeywordsHPC,parallelism,complied programming languages
Course organiserMr Ludovic Capelli
Tel: (01316) 506709
Course secretaryMr James Richards
Tel: 90131 6)51 3578
Help & Information
Search DPTs and Courses
Degree Programmes
Browse DPTs
Humanities and Social Science
Science and Engineering
Medicine and Veterinary Medicine
Other Information
Combined Course Timetable
Important Information