Identifying Data 2019/20
Subject (*) Advanced Parallel Programming Code 614973107
Study programme
Mestrado Universitario en Computación de Altas Prestacións / High Performance Computing (Mod. Virtual)
Descriptors Cycle Period Year Type Credits
Official Master's Degree 2nd four-month period
First Optional 6
Language
Spanish
Galician
English
Teaching method Face-to-face
Prerequisites
Department Departamento profesorado máster
Enxeñaría de Computadores
Coordinador
Fraguela Rodriguez, Basilio Bernardo
E-mail
basilio.fraguela@udc.es
Lecturers
Cabaleiro Domínguez, José Carlos
Darriba López, Diego
Fraguela Rodriguez, Basilio Bernardo
E-mail
diego.darriba@udc.es
basilio.fraguela@udc.es
Web http://aula.cesga.es
General description Nesta materia incrementaranse os coñecementos de programación paralela adquiridos polos alumnos no cuadrimestre anterior nas materias "Programación paralela" e "Programación de arquitecturas heteroxéneas". O obxectivo será que os alumnos aprendan a optimizar códigos paralelos para grandes arquitecturas paralelas ou supercomputadores actuais, usando como base para as súas probas os recursos proporcionados polo Centro de Supercomputación de Galicia (CESGA) e o Grupo de Arquitectura de Computadores (GAC) da Universidade dá Coruña (UDC). Centrarase naqueles aspectos das aplicacións paralelas que adoitan penalizar o rendemento, como son as comunicacións, o abalo de carga, o acceso a memoria ou o manexo de entrada/saída. Tamén se abordará a computación multiplataforma que permita aproveitar o paralelismo a nivel de tarefas entre varios aceleradores hardware, así como a computación híbrida onde una mesma aplicación faga uso de varias paradigmas de programación paralela co fin de obter un bo rendemento en clústers de sistemas multinúcleo e/ou aceleradores hardware.

Study programme competencies
Code Study programme competences
A1 CE1 - Define, evaluate and select the most appropriate architecture and software to solve a problem
A2 CE2 - Analyze and improve the performance of a given architecture or software
A4 CE4 - Deepen in the knowledge of different programming tools and programming languages in the field of the high performance computing
A5 CE5 - Analyze, design and implement efficient parallel algorithms and applications
A7 CE7 - Know the emerging technologies in the supercomputing field
B1 CB6 - Possess and understand the knowledge that give a baseline or opportunity to be original in the development and/or application of ideas, often in a research environment
B2 CB7 - The students have to know how to apply the acquired knowledge and their capacity to solve problems in new or hardly explored environment inside wider contexts (or multidiscipinary) related to its area of development
B5 CB10 - The students have to possess learning skills that allows them to continue to study in a mainly self-driven or autonomous manner
B6 CG1 - Be able to search and select useful information to solve complex problems, using the bibliographic sources of the field
B9 CG4 - Be able to plan and do research, development and innovation tasks in high performance computing related environments
C1 CT1 - Use the basic technologies of the information and computing technology field required for the professional development and the long-life learning

Learning aims
Learning outcomes Study programme competences
Know advanced techniques for the optimization of parallel codes AJ1
AJ2
AJ5
BJ1
BJ2
BJ5
BJ6
BJ9
Control the affinity and load balance of tasks AJ5
BJ1
BJ2
BJ5
BJ6
BJ9
CJ1
Optimize communications in distributed memory systems AJ2
AJ4
AJ5
BJ1
BJ2
BJ5
BJ6
BJ9
CJ1
Perform parallel input/output operations AJ4
AJ5
BJ1
BJ2
BJ5
BJ6
BJ9
CJ1
Program systems with several hardware accelerators AJ4
AJ5
AJ7
BJ1
BJ2
BJ5
BJ6
BJ9
CJ1
Program systems with shared/distributed memory AJ4
AJ5
AJ7
BJ1
BJ2
BJ5
BJ6
BJ9
CJ1

Contents
Topic Sub-topic
1- Advanced techniques for the optimization of parallel codes -
2- Affinity control and load balance -
3- Optimization of communications in distributed memory systems -
4- Parallel input/output -
5- Hybrid programming for systems with several hardware accelerators -
6- Hybrid programming for systems with shared/distributed memory -

Planning
Methodologies / tests Competencies Ordinary class hours Student’s personal work hours Total hours
Laboratory practice A2 A5 C1 4 80 84
Supervised projects A1 A2 A4 A5 A7 B1 B2 B5 B6 B9 C1 0 45 45
Mixed objective/subjective test A2 A5 B2 2 0 2
Workbook A1 A4 A7 B1 0 18 18
 
Personalized attention 1 0 1
 
(*)The information in the planning table is for guidance only and does not take into account the heterogeneity of the students.

Methodologies
Methodologies Description
Laboratory practice In this activity autonomous tasks guided by instructions from the teacher are carried out which allow the student to become familiar from a practical point of view with the contents exposed in the reading materials on the contents of the subject.
Supervised projects They consist in the development of projects in which the student has to use the acquired knowledge to solve different problems in an autonomous way.
Mixed objective/subjective test An evaluation test of the subject is conducted in this activity.
Workbook Reading and viewing material related to the content of each topic. The student will have all the necessary material according to the calendar of the subject. The teacher will promote an active attitude, encouraging the student to ask questions that clarify specific aspects. The material will leave open questions for the reflection of the student.

Personalized attention
Methodologies
Supervised projects
Laboratory practice
Description
Both in the practices carried out autonomously as well as during the development of the supervised projects, the students will be able to present questions, doubts, etc. The teacher, in response to these requests, will review concepts, solve new problems or use any activity that considers appropriate to resolve the issues raised.

Assessment
Methodologies Competencies Description Qualification
Supervised projects A1 A2 A4 A5 A7 B1 B2 B5 B6 B9 C1 Quality of the work developed and progress of the student during its completion 70
Mixed objective/subjective test A2 A5 B2 Correction and quality of the solutions proposed by the students to the questions raised in the test 30
 
Assessment comments

In the activities of distance evaluation students may be required to apply mechanisms that guarantee their identity as well as the authorship of the evaluable elements presented.



All the evaluation activities included in this guide conform the process of continuous evaluation of the subject. Neither the classes nor most of the evaluation activities require the student's presence, with the exception of the mixed test, of a maximum of 2 hours. This, together with the fact that all the materials of the subject are available in the education web platform of the degree, favors the work and the evaluation of the students enrolled part-time and with academic allowance of teaching exemption.


Sources of information
Basic

- Using Advanced MPI: Modern Features of the Message-Passing Interface. 2014. W. Gropp, T. Hoefler, R. Thakur, E. Lusk. MIT Press
- Using OpenMP: The Next Step: Affinity, Accelerators, Tasking, and SIMD (Scientific and Engineering Computation). 2017. R. van der Pas, E. Stotzer, C. Terboven . MIT Press
- OpenCL Programming Guide. 2011. A. Munshi, B. Gaster, T. G. Mattson, J. Fung, D. Ginsburg. Addison-Wesley/Pearson Education

Complementary

- Multi-core programming. 2006. S. Akhter e J. Roberts. Intel Press.
- Professional CUDA C Programming. 2014. J. Cheng, M. Grossman, T. McKercher. Wross.


Recommendations
Subjects that it is recommended to have taken before
Parallel Programming/614473102
Heterogeneous Programming/614473103

Subjects that are recommended to be taken simultaneously

Subjects that continue the syllabus
Master's Thesis/614473111

Other comments

Due to the strong interrelation between the theoretical part and the practical part, and the progressiveness in the presentation of concepts closely related to each other in the theoretical part, it is advisable to dedicate a time of study or daily review.


In this subject, intensive use of online communication tools will be made: videoconference, email, chat, etc.



(*)The teaching guide is the document in which the URV publishes the information about all its courses. It is a public document and cannot be modified. Only in exceptional cases can it be revised by the competent agent or duly revised so that it is in line with current legislation.