Postgraduate Course: Advanced Parallel Techniques (INFR11170)
|School||School of Informatics
||College||College of Science and Engineering
|Credit level (Normal year taken)||SCQF Level 11 (Postgraduate)
||Availability||Available to all students
|Summary||The majority of current HPC applications are parallelised using a combination of message-passing (the MPI library) or threading (OpenMP directives). As HPC systems grow in size and complexity, other software approaches are now being used to aid performance portability, scalability and maintainability.
This course will cover a range of more advanced and upcoming technologies for parallel computing. Key paradigms include:
- programming of accelerators including graphics processing units (GPUs);
- threading approaches other than OpenMP;
- partitioned global address space (PGAS) approaches;
- programming languages important in HPC; and,
- understanding how to select the appropriate techniques given the problem and hardware at hand.
Example of topics that will be covered include:
Languages: modern C++, Python (and interfacing with compiled code)
Threading: pthreads, C++ & boost threads, Intel TBB
Accelerators/GPUs: CUDA, OpenCL, OpenMP target directives, OpenACC
PGAS: Fortran coarrays, OpenSHMEM, MPI single sided
Information for Visiting Students
|Pre-requisites||REQUIRED: Message-Passing Programming, Threaded Programming. Ability to program in C and Fortran.
|High Demand Course?
Course Delivery Information
|Academic year 2018/19, Available to all students (SV1)
|Learning and Teaching activities (Further Info)
Lecture Hours 22,
Supervised Practical/Workshop/Studio Hours 11,
Programme Level Learning and Teaching Hours 2,
Directed Learning and Independent Learning Hours
|Assessment (Further Info)
|Additional Information (Assessment)
||Provided by in-class discussion during practical sessions by lecturers and demonstrators.
||Hours & Minutes
|Main Exam Diet S2 (April/May)||Advanced Parallel Techniques||2:00|
On completion of this course, the student will be able to:
- Understand advanced paradigms for parallelism used in HPC
- Have knowledge of several implementations of these paradigms
- Be able to write correct and performant programs
- Use established and emerging programming languages to express parallel programs
- Understand how to select the appropriate tools and techniques for various parallel architectures and algorithms
|Provided via Learn|
|Graduate Attributes and Skills
Effective written and diagrammatic communication.
Reflection on learning and practice.
Adaptation to circumstances.
||There are limited spaces on this course. Students not on the MSc in High Performance Computing or MSc High Performance Computing with Data Science should contact the course secretary to confirm availability and confirm that they have the required prerequisites before being enrolled on the course.
The course is available to PhD students for class-only study. PhD students requiring a form of assessment (e.g. SUPA/School of Physics and Astronomy CDT students) must contact the course secretary to confirm method of enrolment.
|Additional Class Delivery Information
||2 lectures, 1 practical per week.
|Keywords||Advanced Parallel Techniques,HPC,APT,EPCC,Parallelism,HPC,High Performance Computing,PGAS
|Course organiser||Dr Rupert Nash
Tel: (0131) 6 517 112
|Course secretary||Mr Ben Morse
Tel: (0131 6)51 3398