Programació Científica i Computació d'Alt Rendiment (250COD006) – Curs 2026/27 PDF
Temari
- Programació procedural vs orientada a objectes (OOP) - Conceptes de programació funcional - OOP en codis de computació a gran escala (encapsulació, abstracció) - Patrons funcionals en càlcul numèric (mapa, reducció, inmutabilitat) - Llenguatges compilats vs interpretats - Tipus estàtics vs dinàmics - Introducció a la sintaxi y entorns virtuals de Python
Dedicació
3h Grup gran + 4h 30m Aprenentatge autònom- Complexitat algorítmica & estructures de dades - Disseny modular amb Python (funcions, classes, tipus) - Visualització amb Python (matplotlib i PyVista)
Dedicació
3h Grup gran + 4h 30m Aprenentatge autònom- Control de versions - Desenvolupament professional: qualitat del codi i revisió del codi - Estratègies de test (integració contínua i desenvolupament basat en tests - Entorns de programació assistits per IA (IDEs)
Dedicació
3h Grup gran + 4h 30m Aprenentatge autònom- Aritmètica en coma flotant - Condicionament dels problemes vs estabilitat algorítmica - Complexitat algorítmica en fluxos de treball de simulació - Jerarquia de memòria i comportament de la memòria cache - Model Roofline - Vectorització i disposició de les dades en memòria - Identificació de colls d'ampolla en bucles tipus elements finits
Dedicació
3h Grup gran + 4h 30m Aprenentatge autònom- Conceptes de BLAS/LAPACK subjacents a NumPy - Operacions denses eficients i avaluació del rendiment (benchmarking) - Formats de matrius disperses (CSR, COO) - Assemblatge eficient de matrius disperses - Anàlisi de l'empremta de memòria - Breu introducció als mètodes de Krylov i a la seva implementació - Estratègies de precondicionament - Solucionadors iteratius: convergència versus escalabilitat - Solucionadors iteratius: robustesa numèrica
Dedicació
3h Grup gran + 4h 30m Aprenentatge autònom- Llei d'Amdahl - Escalabilitat forta versus escalabilitat feble - Paral·lelisme en CPU i disposició de les dades en memòria: paral·lelisme en memòria compartida vs paral·lelisme en memòria distribuïda - Paral·lelisme en GPU
Dedicació
3h Grup gran + 4h 30m Aprenentatge autònom- Paralelisme en memòria compartida en Python (GIL i multiprocessing, fonamentals de asyncio, task orchestration) - Treball de SMP
Dedicació
3h Grup gran + 4h 30m Aprenentatge autònom- Estructures de dades distribuides - Patrons de comunicació - Producte matriu-vector distribuit
Dedicació
6h Grup gran + 9h Aprenentatge autònom- Introducció a l'acceleració en GPU amb PyTorch - Treball de GPU
Dedicació
3h Grup gran + 4h 30m Aprenentatge autònom- Sessió pràctica per a treballar en els projectes de DMP, MPI i GPU.
Dedicació
3h Activitats dirigides + 4h 30m Aprenentatge autònom- Experiència pràctica amb un cicle de vida de desenvolupament "corromput" - Eines de depuració (debugging) - Colls d'ampolla en operacions de reducció - Experiència pràctica amb eines de perfilatge (profiling)
Dedicació
3h Grup gran + 4h 30m Aprenentatge autònom- Arranjaments fora de memòria (out-of-core arrays) - Estratègies de particionament en blocs (chunking) - Grafs de tasques i avaluació diferida (lazy evaluation) - Planificador distribuït de Dask - Paradigmes MPI vs Dask - Entrada/sortida científica eficient (HDF5)
Dedicació
3h Grup gran + 4h 30m Aprenentatge autònom