| 
 Postgraduate Course: Advanced Parallel Techniques (EPCC11011)
Course Outline
| School | School of Informatics | College | College of Science and Engineering |  
| Credit level (Normal year taken) | SCQF Level 11 (Postgraduate) | Availability | Available to all students |  
| SCQF Credits | 10 | ECTS Credits | 5 |  
 
| 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.
 |  
| Course description | 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: Ability to program in C/C++ and Fortran. Message-Passing Programming and Threaded Programming courses or equivalent knowledge. |  
Course Delivery Information
| Not being delivered |  
Learning Outcomes 
| On completion of this course, the student will be able to: 
        Understand advanced paradigms for parallelism used in HPCHave knowledge of several implementations of these paradigmsBe able to write correct and performant programsUse established and emerging programming languages to express parallel programsUnderstand how to select the appropriate tools and techniques for various parallel architectures and algorithms |  
Reading List 
| Provided via Learn/Leganto |  
Additional Information
| Graduate Attributes and Skills | Collaborative working. Effective written and diagrammatic communication.
 Reflection on learning and practice.
 Adaptation to circumstances.
 |  
| Keywords | Advanced Parallel Techniques,HPC,APT,EPCC,Parallelism,HPC,High Performance Computing,PGAS |  
Contacts 
| Course organiser | Dr Rupert Nash Tel: (0131) 6 517 112
 Email:
 | Course secretary | Mr James Richards Tel: 90131 6)51 3578
 Email:
 |  |  |