Logo UAB
2022/2023

Programació Paral·lela

Codi: 43481 Crèdits: 6
Titulació Tipus Curs Semestre
4313136 Modelització per a la Ciència i l'Enginyeria / Modelling for Science and Engineering OB 0 1

Professor/a de contacte

Nom:
Tomás Manuel Margalef Burrull
Correu electrònic:
tomas.margalef@uab.cat

Utilització d'idiomes a l'assignatura

Llengua vehicular majoritària:
anglès (eng)

Equip docent

Juan Carlos Moure Lopez
Anna Bàrbara Sikora

Prerequisits

No hi ha prerequisits

Objectius

L'objectiu del mòdul és:

  • Desenvolupar programes de c
  • Identificar les dificultats relacionades amb la programació paral·lela.
  • Aplicar una metodologia adequada per al desenvolupament d'aplicacions paral·leles.
  • Comprendre les diferències dels enfocaments de programació en paral·lel: memòria compartida, pas de missatges
  • Determinar l'enfocament de programació paral·lela més convenient per desenvolupar una aplicació particular
  • Desenvolupar aplicacions paral·leles.
  • Avaluar el rendiment de l'aplicació paral·lela i recopili les mesures necessàries per ajustar l'aplicació per tal de millorar el seu rendiment


Al final d'aquest mòdul, els estudiants han de tenir coneixements, mètodes i habilitats tècniques suficients per desenvolupar aplicacions paral·leles utilitzant un model de programació adequat i avaluar el rendiment de l'aplicació.

Competències

  • Analitzar i avaluar arquitectures de computadors paral·lels i distribuïts, així com desenvolupar i optimitzar programari avançat per a les mateixes
  • Analitzar, sintetitzar, organitzar i planificar projectes del seu camp d'estudi. 
  • Aplicar la metodologia de recerca, tècniques i recursos específics per investigar en un determinat àmbit d'especialització.
  • Assegurar, gestionar, auditar i certificar la qualitat dels desenvolupaments, processos, sistemes i productes informàtics avançats.
  • Innovar en la cerca de nous espais / àmbits en el seu camp de treball.
  • Participar en projectes de recerca i equips de treball en l'àmbit de l'enginyeria de la informació i el còmput d'altes prestacions.
  • Que els estudiants tinguin les habilitats d'aprenentatge que els permetin continuar estudiant, en gran manera, amb treball autònom a autodirigit
  • Tenir coneixements que aportin la base o l'oportunitat de ser originals en el desenvolupament o l'aplicació d'idees, sovint en un context de recerca

Resultats d'aprenentatge

  1. Analitzar, sintetitzar, organitzar i planificar projectes del seu camp d'estudi. 
  2. Aplicar la metodologia de recerca, tècniques i recursos específics per investigar en un determinat àmbit d'especialització.
  3. Desenvolupar la solució paral·lela a un problema computacional triant les eines més adequades
  4. Dissenyar la solució paral·lela a un problema computacional prenent en compte les característiques del maquinari disponible
  5. Identificar les fonts de paral·lelisme en un problema computacional
  6. Innovar en la cerca de nous espais / àmbits en el seu camp de treball.
  7. Interpretar la informació donada per les eines d'anàlisis de rendiment i transformar-la en accions que millorin l'aplicació paral·lela
  8. Planificar i desenvolupar projectes de recerca amb continguts relacionats amb la programació paral·lela
  9. Que els estudiants tinguin les habilitats d'aprenentatge que els permetin continuar estudiant, en gran manera, amb treball autònom a autodirigit
  10. Tenir coneixements que aportin la base o l'oportunitat de ser originals en el desenvolupament o l'aplicació d'idees, sovint en un context de recerca
  11. Utilitzar les eines adequades per analitzar el rendiment d'una aplicació.

Continguts

  1. Introducció al curs
  2. Programació en c
  3. Programació OpenMP
  4. Programació MPI
  5. Anàlisi de rendiment
  6. Programació GPU

Metodologia

L'assignatura es desenvoluparà en classes teòriques i exercicis de pràctics.

Es recomanable que l'alumnat assisteixi a totes les classes de l'assignatura amb un ordinador portatil amb la bateria ben carregada.

Nota: es reservaran 15 minuts d'una classe, dins del calendari establert pel centre/titulació, per a la complementació per part de l'alumnat de les enquestes d'avaluació de l'actuació del professorat i d'avaluació de l'assignatura/mòdul.

Activitats formatives

Títol Hores ECTS Resultats d'aprenentatge
Tipus: Dirigides      
Assistència a classe de teoria i exercicis pràctics 14 0,56 2, 3, 4, 5, 8, 10
Pràctiques de laboratori 24 0,96 3, 4, 7, 8
Tipus: Autònomes      
Disseny i desenvolupament d'exercisis pràctics 52 2,08 1, 3, 4, 5, 7, 8, 9, 10, 11
Estudi 36 1,44 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11

Avaluació

Hi ha 4 notes corresponents als exercicis de Programació en C, Programació en OpenMP, Programació en MPI i Programació amb GPUs realitzats en grup. També hi ha un examen final individual.

Activitats d'avaluació

Títol Pes Hores ECTS Resultats d'aprenentatge
Examen Final 30 2 0,08 3, 4, 5, 9, 10
Exercicis pràctics amb GPUs 15 4 0,16 3, 4, 5
Exercicis pràctics en C 20 6 0,24 9, 10
Exercicis pràctics en MPI 20 8 0,32 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
Exercicis pràctics en OpenMP 15 4 0,16 1, 2, 4, 5, 6, 8

Bibliografia

Parallel Programming : Techniques and Applications using Networked Workstations and Parallel Computers. Barry Wilkinson. Prentice Hall, 1999.

 

Designing and Building Parallel Programs: Concepts and Tools for Parallel Software Engineering. Ian Foster . Addison Wesley,1995.

 

Introduction to Parallel Computing. A. Grama et alter. Addison Wesley, Second Edition, 2003.

 

Parallel Program Development For Cluster Computing: Methodology, Tools and Integrated  Environments. Edited by J. C. Cunha, P. Kacsuk, S. C. Winter. Nova Science Publishers, Inc., 2001.

 

High Performance Cluster Computing (Vols. 1 y 2), Rajkumar Buyya ed., Prentice Hall, 1999.

 

Parallel Programming with MPI, Peter Pacheco, Morgan Kauffman, 1996

 

Using MPI-2, William Gropp, Ewing Lusk and Rajeev Thakur, MIT Press, 1999.

 

Programming Massively Parallel Processors: A Hands-on Approach. David Kirk and Wen-mei Hwu. ISBN: 978-0-12-381472-2. Published by Elsevier Inc. 2010.

 

http://www.elsevierdirect.com/morgan_kaufmann/kirk/

Programari

C

OpenMP

MPI

OpenACC