next up previous contents
Next: Paralelní práce procesorů Up: Distribuce dat Previous: !HPF$ ALIGN   Obsah

!HPF$ DISTRIBUTE

Direktivou DISTRIBUTE stanovíme způsob rozložení dat na jednotlivé procesory. Každá dimenze pole může být distribuována třemi způsoby:

* data nebudou rozložena
BLOCK(N) rozklad na bloky (implicitní velikost bloku $N = vel / proc$)
CYCLIC(N) cyklický rozklad (implicitní krok $N = 1$
kde $vel$ značí počet prvků pole v dané dimenzi a $proc$ počet procesorů. Na obrázku 2 je znázorněno několik možností pravidelné distribuce pole velikosti $8 \times 16$ na čtyři procesory. Tmavě vyznačená data budou zpracovávána na prvním procesoru.

Obrázek: Různé způsoby distribuce pole $8 \times 16$ na čtyři procesory pomocí direktivy DISTRIBUTE.
\includegraphics {pic_02.eps}

Vybereme-li si například variantu III, objeví se v programu postupně řádky:

!HPF$ PROCESSORS P(4)
      REAL POLE (8,16) 
!HPF$ DISTRIBUTE POLE (BLOCK,BLOCK) ONTO P
Jestliže parametrem ONTO nespecifikujeme procesory, na které se má pole rozložit, rozhodne za nás kompilátor.



Pavel Vachal
2001-05-31