Anar a: Buscar
FIB > Els estudis > Pàgines de les assignatures > Departament AC > PCA Castellano | English
ASO
PCA
EC2
USO
PIAM
XC
EDSO
PXCSO
SODX
DM
SPD
PXC
SSI
CARS
IC
MP
EC1
SO
PROSO
XCA
AC
ACA



Programació Conscient de l'Arquitectura ( PCA )

Crèdits: Departament: Tipus: Requisits:
7.5 AC
  • Optativa per l'EI
  • Optativa per l'ETIS
  • AC - Pre-requisit per l' EI , ETIS
    SO - Pre-requisit per l' EI , ETIS

    Professors

    Responsable:  Enrique Morancho Llena (enricmac.upc.edu).
    Altres:Alejandro Ramírez Bellido (aramirezac.upc.edu)
    Daniel Jiménez González (djimenezac.upc.edu).

    Objectius Generals

    L'alumne sera capaç de generar codi, o optimitzar codi ja existent, per adaptar-lo a les caracteristiques particulas de l'arquitectura on s'hagi d'executar, i aprofitar-ne millor els recursos disponibles.

    Objectius Específics

    Coneixements

    1. Eines de prograació i optimització de codi. Opcions de compilació.
    2. Optimitzacions de codi independents de l'arquitectura.
    3. Optimitzacions depenents de la jerarquia de memoria.
    4. Optimitzacions depenents de'extensions del llenguatge màquina (extensions vectorials i multimedia).
    5. Optimitzacions de codi per multiprocessadors i processadors multithreaded.

    Habilitats

    1. Detectar les parts d'un programa més executades, i les parts que no s'executen de forma eficient.
    2. Generar codi que s'executi de forma eficient sobre una arquitectura determinada.
    3. Aprofitar la presencia d'extensions vectorials i multimedia.
    4. Aprofitar les capacitats multithreaded de l'arquitectura.

    Competències

    (Informació no introduïda)

    Continguts

    Hores estimades de:

    T P L Alt L Ext. Est A Ext.
    Teoria Problemes Laboratori Altres activitats Laboratori extern Estudi Altres hores fora d'horari fixat

    1. Introducció: Programació conscient de l'arquitectura
      T     P     L    Alt  L Ext  Est  A Ext Total
     1,0   0   0   0   0   0   0   1,0 
    Que entenem per programació consicent de l'arquitectura i en quins casos val la pena fer-ho. Estratègies d'optimització. Avaluació del rendiment.

    2. Eines de programació i optimització
      T     P     L    Alt  L Ext  Est  A Ext Total
     1,0   0   4,0   0   4,0   2,0   0   11,0 
    Mesura del rendiment dels programes. Opcions de compilació. Estudi del comportament dinàmic dels programes.
    • Activitats de laboratori addicionals:
      Estudi de la documentació relativa a les eines que es faran servir al laboratori.

    3. Operacions de llarga latència
      T     P     L    Alt  L Ext  Est  A Ext Total
     1,0   0   4,0   0   4,0   2,0   0   11,0 
    Alternatives a algunes operacions de cost d'execució elevat i/o llarga latència. Substitució d'operacions complexes per operacions més senzilles. Memorització de resultats. Detecció de casos trivials. Us dels recursos sistema operatiu.
    • Activitats de laboratori addicionals:
      Estudi de la documentació relativa a les optimitzacions que es faran servir al laboratori.

    4. Optimització del control de fluxe
      T     P     L    Alt  L Ext  Est  A Ext Total
     1,0   0   4,0   0   4,0   2,0   0   11,0 
    Predicció de salts. Detecció i eliminació de salts crítics. Inlining. Desenrollat de bucles.
    • Activitats de laboratori addicionals:
      Estudi de la documentació relativa a les optimitzacions que es faran servir al laboratori.

    5. Optimització de la memòria
      T     P     L    Alt  L Ext  Est  A Ext Total
     2,0   0   8,0   0   8,0   4,0   0   22,0 
    Tamany i alineació de dades. Divisió de les dades en blocs de tamany proporcional a la memoria cache. Desambiguació de memòria.
    • Activitats de laboratori addicionals:
      Estudi de la documentació relativa a les optimitzacions que es faran servir al laboratori.

    6. Extensions vectorials
      T     P     L    Alt  L Ext  Est  A Ext Total
     1,0   0   4,0   0   4,0   2,0   0   11,0 
    Instruccions del llenguatge màquina. Inserció de codi vectorial en codi C.
    • Activitats de laboratori addicionals:
      Estudi de la documentació relativa a les optimitzacions que es faran servir al laboratori.

    7. Pràctiques d'optimització
      T     P     L    Alt  L Ext  Est  A Ext Total
     7,0   0   32,0   0   32,0   0   0   71,0 
    • Laboratori:
      Aplicació de les tècniques d'optimització desenvolupades durant el curs a un treball d'optimització sobre una (o varies) aplicacions complertes. Discusió dels problemes i dubtes que puguin apareixer.
    • Activitats de laboratori addicionals:
      Plantejament de canvis a nivell algorismic i d'estructures de dades sobre l'aplicació que calgui optimitzar. Planificació de les optimitzacions a realitzar basada en estudi del codi font.


    - Total per tipus
      T     P     L    Alt  L Ext  Est  A Ext Total
     14,0   0   56,0   0   56,0   12,0   0   138,0 
    - Hores addicionals dedicades a l'avaluació:
    10,0
    - Total hores de treball per l'estudiant
    148,0

    Metodologia docent

    L'assignatura te una vessant majorment pràctica, recolzada sobre una base teòrica.

    La base teòrica es desenvolupara en classes de discusió entre el professor i els alumnes. El professor proporcionarà referencies bibliogràfiques i documentació sobre el tema a discutir, que haurà de ser treballat pels alumnes fora d'hores de classe. Aquest material serà discutit en la següent sessió de teoria.

    La vessant pràctica de l'assignatura es desenvoluparà als laboratoris docents, mitjançant la realització d'un seguit de pràctiques tutelades. La realització d'aquestes pràctiques es farà íntegrament en les hores de laboratori assignades.
    Les pràctiques es dicidiran en dos grups: experiments d'abast limitat per il.lustrar aplicacions i optimitzacions determinades, i altres en que caldrà aplicar tots els coneixements adquirits per optimitzar una aplicació complerta.

    Mètode d'avaluació

    Seguiment del treball realitzat durant el curs en base als informes periòdics que hauran d'entregar, i participació en les discusions a classe (60%).
    Defensa pública d'un dels treballs d'optimització (40%).

    Bibliografía bàsica

    (Informació no introduïda)

    Bibliografía complementària

    (Informació no introduïda)

    Enllaços web

    (Informació no introduïda)

    Capacitats prèvies

    Coneixements d'arquitectura de computadors: jerarquies de memòria, llenguatge màquina, processadors segmentats. (Assignatures EC i AC)

    Coneixements de programació en C. (EC)

    Coneixements de UNIX a nivell d'usuari. (SO)



    versió per imprimir