Matematické Fórum


1. 8. 2026 (L) Fórum bude brzy uzavřeno 😿

Nejste přihlášen(a). Přihlásit

#1 27. 02. 2015 00:27 — Editoval Katsushiro (27. 02. 2015 00:33)

Katsushiro
Místo: Rožnov pod Radhoštěm
Příspěvky: 144
Škola: VŠB TUO - FEI
Pozice: student
Reputace:   
 

Paralelní distribuce matice

Ahoj!

Potřebuji poradit s paralelní distribucí matice. Jde mi o to, že neznám algoritmus, který by nějak univerzálně dokázal rozdistribuovat matici pro libovolný počet procesů. Uvedu příklad:

Matice:
$ 
\begin{pmatrix}
   1 & 2 &  7 & 8\\
   3 & 4 & 9 & 4\\
   2 & 6 & 7 & 5\\
   8 & 2 & 1 & 3\\ 
 \end{pmatrix}
$

Pokud mám jeden proces, je situace jasná - s celou maticí bude pracovat sám. Pokud mám 2 procesy, mám již 2 možnosti - rozdělit matici "podélně" a "příčně". Tedy, že každý z procesů má 2 řádky nebo 2 sloupce.

Pro 3 procesy je situace ještě horší, protože tam už nerozdělím matici rovnoměrně ($16 / 3 \doteq 5.3$ ).

Pro 4 procesy je situace asi ideální, matici lze rozdělit na čtvrtinové bloky, pro 5 pak opět případ s nerovnoměrným rozdělením.

Jde mi o to, že bych rád realizoval něco podobného, jako je popsáno ZDE na snímku 18. Tedy nějakou Coarse-grain distribuci, abych pak mohl počítat v jednom procesu s několika čísly z matice.

Je trochu jasné, o čem mluvím? Zajímá mě, jestli někdo neznáte algoritmus, který se v této situaci používá - sám jsem to nikdy neřešil, a veškeré moje pokusy o algoritmus (v případě zájmu můžu dodat) skončily u toho, že bych se dopočetl nějakého čísla procesů vzhledem k velikosti matice a to by nešlo změnit, tedy, každá matice by měla svoje "ideální" číslo procesů a pro jiný počet by algoritmus nefungoval. Potřebuji však testovat výkonnost pro různé počty procesů, a tak takové řešení není ideální.

Velmi vám všem děkuji za odpovědi,
Katsu

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson