任意算法中是否存在并行性以及如何以最佳方式使用它

当前,数据处理的并行化主要用于通过同时处理许多不同计算设备上的部分数据,然后组合结果来减少计算时间。并行执行可以“绕过” Rayleigh勋爵在1871年制定的基本定律,根据该定律(适用于处理器的散热),它们的散热功率与处理器时钟频率的四次方成正比(将频率加倍会增加16倍的散热量),实际上可以用并行计算机的数量-同时保持时钟频率)。没有什么是免费的-揭示(通常对于未启动的观察者来说是隐藏的,[1])算法中并行性的潜力并不在于表面,以及(并行)使用的有效性-甚至更多。

下面是最简单的评估表达式axb + a / c(a,b,c-输入数据)的并行性检测过程的说明。

a)-“操作员云”(未定义执行顺序),b)-完全顺序执行,未定义),b)-完全顺序执行,c)-并行执行

, . ( ) ( – ., ). .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.

该图显示了用于以实数形式以规范形式求解完整二次方程的算法的层并行形式(LPF的层数位于右侧)
- - ( )

( “ ”,  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-分别是程序文件和分析程序的信息图文件,* .mvr,* .med-分别是算法图的顶点和弧度的度量文件,* .cls,* .ops-计算器和程序运算符的参数文件,* .lua-Lua语言的文本文件,包含重组方法
- (*.set *.gv  –   , *.mvr, *.med – , *.cls, *.ops – , *.lua – Lua,

  (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”, , “” “”.

在图。 显示了当SPF @ home系统运行时,屏幕副本中的实际IPF层的宽度的条形图(该宽度的算术平均值由虚线a表示)和“推土机”方法的符号方案-b)
.   SPF@home (-   , a) “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.




All Articles