Identifying Data 2019/20
Subject (*) Heterogeneous Programming Code 614973103
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 1st four-month period
First Obligatory 6
Language
Teaching method Face-to-face
Prerequisites
Department Departamento profesorado máster
Enxeñaría de Computadores
Coordinador
Amor Lopez, Margarita
E-mail
margarita.amor@udc.es
Lecturers
Amor Lopez, Margarita
González Domínguez, Jorge
López Vilariño, David
E-mail
margarita.amor@udc.es
jorge.gonzalezd@udc.es
Web
General description

Study programme competencies
Code Study programme competences
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
B6 CG1 - Be able to search and select useful information to solve complex problems, using the bibliographic sources of the field
B7 CG2 - Elaborate adqueately and originally written essays or motivated reasonings, write planings, work projects, scientific papers and formulate reasonable hypothesis
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
Analyze and improve the performance of a given architecture or software AJ2
BJ1
BJ2
CJ1
Deepen the knowledge of programming tools and different languages in the field of high performance computing AJ4
BJ6
CJ1
Analyze, design and implement efficient parallel algorithms and applications AJ5
BJ2
Know the technologies and tools available for computing in distributed systems over a network AJ7
BJ7

Contents
Topic Sub-topic
Structure of a heterogeneous system with general purpose processor + accelerator. Joint integration -
Multi-core systems in general-purpose processors and many-core in accelerators such as Xeon-Phi or GPU. -
Architecture of usual heterogeneous systems. -
Programming models and compilers for heterogeneous systems. -
General purpose programming in heterogeneous systems. -
Optimizations for heterogeneous systems. -
Hardware-software codesign over CPU-FPGA architectures. -

Planning
Methodologies / tests Competencies Ordinary class hours Student’s personal work hours Total hours
Workbook B6 0 16 16
Objective test A7 B7 4 0 4
Supervised projects A4 A5 B1 B2 B7 C1 0 82 82
Laboratory practice A2 A4 B2 2 38 40
 
Personalized attention 8 0 8
 
(*)The information in the planning table is for guidance only and does not take into account the heterogeneity of the students.

Methodologies
Methodologies Description
Workbook Reading of teaching material, viewing videos and consulting multimedia material. Sklli worked: B6
Objective test Examination on the contents of the subject that will combine theory questions with problem solving. Skills worked: A7, B7
Supervised projects Consultation of bibliography, autonomous study, development of program activities, preparation of presentations and works. Competencies worked: A4, A5, B1, B2, B7, C1
Laboratory practice n the laboratory practice, problem-based learning and case studies will be conducted. An introduction to the programming of heterogeneous systems logical processor on Zynq-7000 architecture will be made with the development environment Vivado de Xilinx. The GPUs with CUDA will be programmed on the cluster of the CESGA or of the GAC-UDC; and, will be compared with other programming methods such as OpenCL. Competencies worked: A2, A4, B2

Personalized attention
Methodologies
Laboratory practice
Description
Laboratory practices: Attend and resolve student doubts in relation to the practices proposed or performed in the laboratory.

Tutored work: Address and resolve doubts of students in relation to the proposed tutelage.

Assessment
Methodologies Competencies Description Qualification
Laboratory practice A2 A4 B2 In the laboratory sessions, the development of practical dunes is proposed. At the end of these sessions, the correct functioning of the practice, the structuring of the code and the understanding of the concepts worked through a written test are valued. 50
Objective test A7 B7 Corresponds to knowledge imparted in the lectures. 20
Supervised projects A4 A5 B1 B2 B7 C1 The student has to solve a job where he will present a memory and the correct functioning of the work in the laboratory is valued. 30
 
Assessment comments

The students with recognition of part-time dedication and academic exemption of exemption of assistance teniente exemption of attendance would follow the same criteria as the non-attendance modality.


Sources of information
Basic Pong P. Chu (2011). Embedded SoPC Design with Nios II Processor and VHDL Examples. Wiley-IEEE Press
David Kirk and Wen-mei Hwu (2016). Programming Massively Parallel Processors. Morgran Kauffmann

Complementary Jason Sanders (2010). CUDA by Example: An Introduction to General-Purpose GPU Programming. Addison Wesley
B. R. Gaster, L. Howes, D. R. Kaeli, P. Mistry, D. Schaa (2013). Heterogeneous Computing with OpenCL. Morgan Kaufmann
L. H. Crokett, R. Elliot and M. Ederwitz (2014). The Zynq Book: Embedded Processing with the ARM Cortex-A9 on the Xilinx Zynq-7000. All Programmable SoC. Strathclyde Academic Media


Recommendations
Subjects that it is recommended to have taken before

Subjects that are recommended to be taken simultaneously
High Performance Architecture/614473101
Parallel Programming/614473102

Subjects that continue the syllabus
Advanced Parallel Programming/614473107

Other comments
<p>It is advisable to read the assigned material for each theory class before attending it.</p><p>Those students who submit papers or perform evaluation tests in a non-contact manner, may also request their dixital signature and / or a sworn statement about the authorship of the same.</p>


(*)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.