La parallélisation du traitement des données est actuellement utilisée principalement pour réduire le temps de calcul en traitant simultanément des données par parties sur de nombreux appareils informatiques différents, puis en combinant les résultats. L'exécution parallÚle permet de «contourner» la loi fondamentale formulée par Lord Rayleigh en 1871, selon laquelle (appliquée à la dissipation thermique des processeurs) leur puissance de dissipation thermique est proportionnelle à la quatriÚme puissance de la fréquence d'horloge du processeur (doubler la fréquence augmente la dissipation thermique 16 fois) et la remplacer par une le nombre d'ordinateurs parallÚles - tout en maintenant la fréquence d'horloge). Rien n'est donné gratuitement - le problÚme de révéler (généralement caché pour l'observateur non initié, [1]) le potentiel de parallélisme dans les algorithmes n'est pas à la surface,et l'efficacité de son utilisation (parallélisme) - encore plus.
Vous trouverez ci-dessous une illustration du processus de détection de parallélisme pour le cas le plus simple de l'évaluation de l'expression axb + a / c (a, b, c - données d'entrée).
a) - "nuage d'opérateurs" (la séquence d'exécution n'est pas définie), b) - exécution complÚtement séquentielle, non définie), b) - exécution complÚtement séquentielle, c) - exécution parallÚle
, . ( ) ( â ., ). .1 â â, ( ) .
(- ), . , . () . NP- [2], ( ) ( -). , â â (Data Science).
AlgoWiki [3].
, , c ILP (Instruction-Level Parallelism, , EPIC (Explicitly Parallel Instruction Computing, ). , .
() ( , ). (). â - â, ( ) , â () ). , (- ).
( ) - (), [4]. ( ).
( ) O(N2) , N â ( ), ( ) . ( ). .. , . , .
, , .
. ax2+bx+c=0.
( â â, 6 4- ). ( ) â 1- 4, 2,3,4 - 5- 6 . , ( ) ( ) ! â ( ).
( ) , - D-F SPF@home. http://vbakanov.ru/dataflow/content/installdf.exe http://vbakanov.ru/spf@home/content/installspf.exe ( - http://vbakanov.ru/dataflow/dataflow.htm http://vbakanov.ru/spf@home/spf@home.htm).
(set-) â gv- ( â - â, ( ) , â () ). , (- ).
() . ââ .
Lua (Lua ANSI C, , - , ).
++, GUI Winâ32- ( ) GIT-. ( ).
(Lua- ââ API- SPF@home).
( D-F SPF@home ).
D-F (Data-Flow) , . 1 âData-Flowâ ( ), (), ; . - , , , ââ . D-F , .
D-F , , . ( set- D-F, ):
, . D-F , - SPF@home. SPF@home gv- ( ), , Lua- ( API- , ):
CreateTiersByEdges("EdgesData.gv") -- EdgesData.gv
-- ââ
-- CreateTiersByEdges_Bottom("EdgesData.gv") -- EdgesData.gv
-- ââ
--
OpsOnTiers={} -- 1D- OpsOnTiers
for iTier=1,GetCountTiers() do --
OpsOnTiers[iTier]={} -- iTier- 2D- OpsOnTiers
for nOp=1,GetCountOpsOnTier(iTier) do -- iTier
OpsOnTiers[iTier][nOp]=GetOpByNumbOnTier(nOp,iTier) -- nOp
end end -- for iTier for nOp
gv- mvr med-, cls ops- . ( â-â, ) . , .
SPF@home â â , / ( ). med-.
, c ILP (Instruction-Level Parallelism, ), SPF@home .
.. Lua-, . ( ) :
I. ââ ( ).
II. ( ).
III. .
( ) ; ( ).
, (, ) , , ( â ).
:
1) ( ) .
2) .
- . ( , , , ). ââ API- ââ ( , ).
ââ ( ) ( ). ââ ââ ( ; ââ ââ).
( ) - â â, , ââ . ( ). ââ Windows- WinExec, ShellExecute CreateProcess, (, METIS -), Lua.
.6 ( ) âBulldozerâ, , ââ ââ.
, ( 1,5-2 ) , (- ).
.. ( Lua) (., c , , .).
SPF@home ( ) . , . ( ) ( , , ). , .
, ( ) .
1. .., .. . â .: -, 2002. â 608 c.
2. ., . . : â , , 2012. â 420 c.
3. AlgoWiki. . URL: http://algowiki-project.org ( 31.07.2020).
4. .. . . â .: -, 2018. â 390 .
5. Roberto Ierusalimschy. Programming in Lua. Third Edition. PUC-Rio, Brasil, Rio de Janeiro, 2013. â 348 p.