Salta al contingut

    ↑ ↓ per moure't↵ per obrir

    PAR · Tema 3

    Descomposició de tasques

    Com s'expressa el paral·lelisme amb OpenMP. Regions paral·leles, tasques, dependències, privacitat de variables i les estratègies per descompondre bucles i algorismes recursius.

    Descarrega el dossier en PDF

    Capítols

    1. 3.1
      Regió paral·lelaEsborrany

      Passes de la teoria al codi amb OpenMP. Tot comença a la regió paral·lela: un bloc que crea un team de threads, amb una barrera implícita al final.

      Llegit
    2. 3.2
      Models d'execució: tasques implícites i explícitesEsborrany

      Un cop tens el team, OpenMP et dona dos models: tasques implícites (cada thread executa el bloc) i tasques explícites (un thread crea tasques a una pool i tots les agafen).

      Llegit
    3. 3.3
      Instruccions bàsiques d'OpenMPEsborrany

      Les directives que faràs servir sempre: `parallel`, `single`, `task` i `taskloop` per crear tasques, i `taskwait` i `taskgroup` per esperar-les.

      Llegit
    4. 3.4
      Dependències en OpenMPEsborrany

      Amb `depend` indiques quines dades llegeix o escriu cada tasca, i OpenMP ordena les germanes sense que hagis de posar barreres a mà.

      Llegit
    5. 3.5
      Privacitat de variablesEsborrany

      Cada variable ha de ser compartida o privada. `private`, `firstprivate` i `shared` ho controlen, i les regles per defecte canvien entre `parallel` i `task`.

      Llegit
    6. 3.6
      Protegir problemes de concurrènciaEsborrany

      Quan molts threads actualitzen la mateixa variable apareixen data races. Veuràs `critical`, els locks, `atomic`, la reducció manual i `reduction`, de menys a més eficient.

      Llegit
    7. 3.7
      Descomposició iterativa de buclesEsborrany

      Per paral·lelitzar un bucle reparteixes les iteracions entre threads. Ho veuràs amb tasques implícites (atomic per iteració o reducció manual) i amb tasques explícites (`task` i `taskloop`).

      Llegit
    8. 3.8
      Descomposició recursivaEsborrany

      Els algorismes divide-and-conquer es paral·lelitzen creant tasques a la recursió. Veuràs les estratègies Leaf i Tree, els seus problemes i com el cut-off (a mà o amb `final`) els controla.

      Llegit
    9. 3.9
      ConsolidacióEsborrany

      Repàs del tema 3: les directives d'OpenMP, les dependències, la privacitat de variables, com protegir les data races i com paral·lelitzar bucles i recursivitat.

      Llegit