Avís important
La guia docent és provisional.
La versió en PDF de la guia docent pot tardar uns dies en estar disponible al DDD.

Programació Paral·lela
Codi: 43481Crèdits: 6
| Titulació | Tipus | Curs |
|---|---|---|
| Modelling for Science and Engineering | OB | 1 |
Professor/a de contacte
- Nom :
- Christian Guzman Ruiz
- Correu electrònic :
- christian.guzman@uab.cat
Equip docent
- Sandra Adriana Mendez
Idiomes dels grups
Podeu consultar aquesta informació al final del document.
Prerequisits
No hi ha prerequisits.
Objectius
L'objectiu del mòdul és:
- Desenvolupar programes en 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 recopilar 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ó.
Resultats d'aprenentatge
- CA04 (Comunicar els resultats derivats del tractament de problemes de programació paral·lela un públic expert.) Comunicar els resultats derivats del tractament de problemes de programació paral·lela un públic expert.
- CA05 (Treballar en equips multidisciplinaris en l'aplicació de la programació en paral·lel a la modelització de processos reals.) Treballar en equips multidisciplinaris en l'aplicació de la programació en paral·lel a la modelització de processos reals.
- KA03 (Identificar els entorns de programació que permeten el desenvolupament d’algorismes de paral·lelització.) Identificar els entorns de programació que permeten el desenvolupament d’algorismes de paral·lelització.
- KA04 (Identificar les principals arquitectures de computadors paral·lels i distribuïts.) Identificar les principals arquitectures de computadors paral·lels i distribuïts.
- KA05 (Descriure el funcionament i els paràmetres en què es basen les eines d'anàlisi del rendiment d'una estructura de programació en paral·lel.) Descriure el funcionament i els paràmetres en què es basen les eines d'anàlisi del rendiment d'una estructura de programació en paral·lel.
- SA04 (Fer servir el programari específic per a la programació en paral·lel.) Fer servir el programari específic per a la programació en paral·lel.
- SA05 (Desenvolupar la solució paral·lela a un problema computacional i triar les eines més adequades.) Desenvolupar la solució paral·lela a un problema computacional i triar les eines més adequades.
- SA06 (Fer servir les eines apropiades per analitzar el rendiment d'una aplicació de programació en paral·lel.) Fer servir les eines apropiades per analitzar el rendiment d'una aplicació de programació en paral·lel.
Continguts
- Introducció al curs.
- Programació en C.
- Introducció als sistemes d’altes prestacions, sistemes paral·lels, multiprocessadors i multicomputadors. Execució d’aplicacions paral·leles en sistemes d’altes prestacions.
- Programació OpenMP - Aplicacions basades en memòria compartida. Estàndard OpenMP (Open Multiprocessing)
- Programació MPI - Aplicacions basades en pas de missatges. Estàndard MPI (Message Passing Interface).
- Anàlisi de rendiment - Anàlisi de prestacions de sistemes paral·lels. Avaluació de prestacions de sistemes paral·lels. Exemples d’eines d’avaluació de prestacions.
- Programació GPU.
Activitats formatives i Metodologia
| Títol | Hores | ECTS | Resultats d'aprenentatge |
|---|---|---|---|
| Disseny i desenvolupament d'exercisis pràctics | 52 | 2,08 | KA03, KA04, KA05 |
| Assistència a classe de teoria i exercicis pràctics | 14 | 0,56 | KA03, KA04, KA05 |
| Estudi | 36 | 1,44 | KA03, KA04 |
| Pràctiques de laboratori | 24 | 0,96 | CA05, SA04, SA05, SA06 |
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 portàtil amb la bateria ben carregada.
El plantejament del treball està orientat a promoure un aprenentatge actiu i a desenvolupar les competències de capacitat d'organització iplanificació, comunicació oral i escrita, treball en equip i raonament crític. La qualitat dels exercicis realitzats, de la seva presentació i del seu funcionament es valorarà especialment.
La gestió de la docència de l'assignatura es farà a través del Campus Virtual (https://cv.uab.cat/), que servirà per poder veure els materials, gestionar els grups de pràctiques, fer els lliuraments corresponents, veure les notes, comunicar-vos amb els professors, etc.
Avaluació
Activitats d'avaluació continuada
| Títol | Pes | Hores | ECTS | Resultats d'aprenentatge |
|---|---|---|---|---|
| Exercicis pràctics en MPI | 20 | 6 | 0,24 | CA05, SA04, SA05, SA06 |
| Examen Final | 30 | 2 | 0,08 | CA04, KA03, KA04, KA05 |
| Exercicis pràctics en C | 15 | 6 | 0,24 | CA05, SA04, SA05, SA06 |
| Exercicis pràctics amb GPUs | 20 | 6 | 0,24 | CA05, SA04, SA05, SA06 |
| Exercicis pràctics en OpenMP | 15 | 4 | 0,16 | CA05, SA04, SA05, SA06 |
L'objectiu del procés d'avaluació és verificar que l'alumne ha assolit els coneixements i habilitats definits en els objectius de l'assignatura, així com les competències.
S’avaluaran cinc tipus d’activitats de manera independent on la suma ponderada d’elles donarà la nota final. Aquestes cinc activitats són:
- Programació en C (15%)
- Programació en OpenMP (15%)
- Programació en MPI (20%)
- Programació amb GPUs (20%)
- Examen final individual (30%)
Les avaluacions de la programació seràn realitzades en grups de 2 persones. Examen final serà individual i escrit.
Nota sobre plagis: Sense perjudici d'altres mesures disciplinàries que s'estimin oportunes, i d'acord amb la normativa acadèmica vigent, les irregularitats comeses per un o una estudiant que puguin conduir a una variació de la qualificació en una activitat avaluable es qualificaran amb un zero (0). Les activitats d'avaluació qualificades d'aquesta forma i per aquest procediment no seran recuperables. Si és necessari superar qualsevol d'aquestes activitats d'avaluació per aprovar l'assignatura, aquesta assignatura quedarà suspesa directament, sense oportunitat de recuperar-la en el mateix curs. Aquestes irregularitats inclouen, entre d'altres:
|
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.
Programari
C
OpenMP
MPI
OpenACC
gestor de cues (SLURM)
eines per a avaluació de rendiment (perf, TAU, nvcc)
connexió remota amb laboratori (e.g. MobaTex, Eclipse, Visual Studio, etc.)
Grups i idiomes de l'assignatura
La informació proporcionada és provisional fins al 30 de novembre. A partir d'aquesta data, podreu consultar l'idioma de cada grup a través d'aquest enllaç. Per accedir a la informació, caldrà introduir el CODI de l'assignatura
| Tipus de docència | Grup | Idioma | Semestre | Torn |
|---|---|---|---|---|
| (TEm) Teoria (màster) | 1 | Anglès | primer quadrimestre | tarda |
| (PLABm) Pràctiques de laboratori (màster) | 1 | Anglès | primer quadrimestre | tarda |
| (PLABm) Pràctiques de laboratori (màster) | 2 | Anglès | primer quadrimestre | tarda |