Salta al contingut

    ↑ ↓ per moure't↵ per obrir

    Descomposició de dades · 5.4

    Descomposicions 2D

    Les matrius es reparteixen amb les mateixes estratègies, per files o per columnes. Com que es guarden per files (row-major), repartir per files dona millor localitat.

    Conceptes clau

    • Block, cyclic i block-cyclic per files
    • Les mateixes estratègies per columnes
    • Matrius row-major i localitat

    Per descompondre matrius, podem aplicar les mateixes estratègies per files, o bé per columnes:

    Block, cyclic i block-cyclic per files (a dalt) i per columnes (a sota), amb quatre processadors. (figura al dossier, p. 27)

    Estratègia 2D Localitat False sharing Imbalance elements Imbalance temps
    Block per files Bona (files contigües) Baix ≤ 1 fila Alt
    Cyclic per files Acceptable (tot i anar saltant) Baix ≤ 1 fila Baix
    Block-Cyclic per files Bona (files contigües) Baix ≤ BS files Mig
    Block per columnes Dolenta Baix ≤ 1 col Alt
    Cyclic per columnes Molt dolenta Molt alt ≤ 1 col Baix
    Block-Cyclic per columnes Dolenta Depèn de BS ≤ BS cols Mig

    La diferència clau entre files i columnes és la disposició en memòria. Les matrius es guarden per files (row-major), de manera que elements consecutius d’una fila són contigus en memòria. Per això qualsevol estratègia per files té millor localitat que la seva equivalent per columnes.