Parallelization of data processing is currently used mainly to reduce computational time by simultaneously processing data in parts on many different computing devices, and then combining the results. Parallel execution makes it possible to βbypassβ the fundamental law formulated by Lord Rayleigh in 1871, according to which (as applied to the heat dissipation of processors) their heat dissipation power is proportional to the fourth power of the processor clock frequency (doubling the frequency increases the heat dissipation 16 times) and actually replace it with a linear one from the number of parallel computers - while maintaining the clock frequency). Nothing is given for free - the problem of revealing (usually hidden for the uninitiated observer, [1]) the potential of parallelism in algorithms is not lying on the surface,and the effectiveness of its (parallelism) use - even more so.
Below is an illustration of the parallelism detection process for the simplest case of evaluating the expression axb + a / c (a, b, c - input data).
a) - "operator cloud" (sequence of execution is not defined), b) - completely sequential execution, not defined), b) - completely sequential execution, c) - parallel execution
, . ( ) ( β ., ). .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.