Universitat Politècnica de Catalunya · BarcelonaTech

Programació Científica i Computació d'Alt Rendiment (250COD006) – Curs 2026/27 PDF

Syllabus

Objectius d'aprenentatge

Aquest curs introdueix els principis i les pràctiques necessàries per desenvolupar programari científic eficient, escalable i mantenible per a aplicacions d'enginyeria computacional i assistida per dades. Se centra en la implementació de mètodes numèrics mitjançant paradigmes de programació moderns i tècniques de computació d'alt rendiment dins d'un ecosistema basat en Python. El curs cobreix tot el flux de treball de l'enginyeria computacional, des del disseny de programari i la robustesa numèrica fins a l'optimització del rendiment i l'execució paral·lela. Els temes centrals inclouen l'àlgebra lineal densa i esporàdica d'alt rendiment i conceptes d'enginyeria del rendiment com ara la jerarquia de memòria, la vectorització i el perfilatge. Aquests s'estenen als paradigmes de computació paral·lela, incloent-hi el paral·lelisme de memòria compartida, la programació de memòria distribuïda amb MPI i l'acceleració per GPU. A més, el curs aborda els reptes moderns de l'enginyeria assistida per dades, com ara la gestió de conjunts de dades a gran escala mitjançant enfocaments fora de nucli (out-of-core) i distribuïts, i la integració de fluxos de treball de simulació amb canonades de processament de dades. A través d'una combinació de sessions teòriques i tasques pràctiques, els estudiants desenvolupen la capacitat de dissenyar, implementar, analitzar i optimitzar solucions computacionals per a problemes d'enginyeria a gran escala.

Hores totals de dedicació de l'estudiantat

Hores Percentatge
Aprenentatge dirigit Grup gran 45h 100.00 %
Aprenentatge autònom 80h

Metodologia docent

El curs adopta un enfocament interactiu i pràctic en què els conceptes teòrics s'integren estretament amb la implementació. Per tant, cada sessió combina: - Explicacions conceptuals sobre programació científica i principis de computació d'alt rendiment. - Demostracions de programació en directe, on les idees clau es desenvolupen pas a pas, mostrant com els conceptes teòrics es tradueixen en implementacions computacionals eficients. - Exercicis pràctics, que els estudiants duen a terme durant la sessió, i que permeten l'aplicació immediata dels conceptes utilitzant Python. Una part significativa del curs s'imparteix mitjançant quaderns interactius (per exemple, Google Colab), que permeten l'experimentació, la reproducibilitat i la iteració ràpida sense una configuració complexa. Aquest enfocament facilita l'aprenentatge actiu i permet als estudiants explorar variacions dels mètodes en temps real. Al llarg del curs, els estudiants treballen en tasques pràctiques i en un projecte progressiu. Aquestes activitats posen èmfasi en l'anàlisi de rendiment, l'escalabilitat i la integració de components numèrics i basats en dades. El treball autònom complementa les activitats a l'aula, i se centra a completar els deures, millorar les implementacions i analitzar el rendiment computacional, fomentant l'autonomia i una comprensió més profunda.

Mètode de qualificació

El calendari d'avaluació i el mètode de qualificació s'aprovaran abans de l'inici de curs.

L'avaluació del curs es basa en una avaluació contínua i un projecte final: - Avaluació contínua (40 %): avaluació mitjançant treballs pràctics i tasques manuals. Els criteris d'avaluació inclouen la correcció, la qualitat del codi i les consideracions bàsiques de rendiment. - Projecte final (45 %): desenvolupament d'un projecte computacional que integri els conceptes del curs, com ara mètodes numèrics, informàtica paral·lela i optimització del rendiment. Els lliurables del projecte inclouen el codi font (sota control de versions), així com un informe tècnic que inclogui una anàlisi de rendiment i una demostració dels resultats. Els criteris d'avaluació inclouen la correcció tècnica, l'escalabilitat, l'anàlisi de rendiment i la qualitat del disseny del programari. - Defensa oral (15 %): avaluació oral individual basada en el projecte final, que avalua la comprensió dels mètodes implementats, les decisions de disseny i de paral·lelització, i la capacitat d'analitzar el rendiment.

Horari d'atenció

Les sessions de consulta s'organitzaran en un horari convenient tant per a l'estudiant com per al professor.

Bibliografia

Bàsica