Mathematica 9 is now available
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE DOCUMENTATION CENTER FOR THE LATEST INFORMATION.
Mathematica > 系统界面与配置 > 并行计算 > 数据并行化 > ParallelCombine >
Mathematica > 核心语言 > 调整和调试 > 并行计算 > 数据并行化 > ParallelCombine >

ParallelCombine

ParallelCombine
并行计算 ,将计算分配到所有并行内核上,并用 comb 组合产生的部分结果.
ParallelCombine
如果 h 有属性 Flat,等价于 ParallelCombine ,其它情况下等价于ParallelCombine[f, h[e1, e2, ...], Join].
  • ParallelCombine 形成表达式 , ..., ,在所有内核上计算这些表达式,并用 组合结果 .
  • 缺省组合运算 Join 适用于函数 f,这样 的结果中包含头部 h. 这包含有属性 Listable 的所有函数.
  • 对于有属性 Flat 的头部 h,缺省组合运算 h 实际上执行结合率 .
f 并行作用到列表的4个块中 (存在4个并行内核):
显示每次计算发生的位置:
默认情况下,Join 作为一个组合器(combiner)函数使用:
执行一次并行过滤操作:
f 并行作用到列表的4个块中 (存在4个并行内核):
In[1]:=
Click for copyable input
Out[1]=
显示每次计算发生的位置:
In[2]:=
Click for copyable input
Out[2]=
 
默认情况下,Join 作为一个组合器(combiner)函数使用:
In[1]:=
Click for copyable input
Out[1]=
执行一次并行过滤操作:
In[2]:=
Click for copyable input
Out[2]=
所有 Listable 函数可以使用 ParallelCombine 并行化:
如果该函数不是 Listable,则使用一个显式的 Map
许多函数型程序结构可以使用 ParallelCombine 并行化:
该结果不必具有与输入相同的长度:
并行计算列表元素:
匹配元素的完全统计等于部分统计的和:
如果一个元素出现在至少一个块中,则它出现在列表中:
如果一个元素不出现在任何块中,则它不出现在列表中:
每个子内核执行较少的加法运算,而组合器把结果组合起来:
自动为 Flat 函数挑选组合器:
典型 Flat 函数:
一些变量组成的可列表函数:
把计算分成与可使用内核相同数目的块:
对于整个任务,把计算分成最多每个内核两次计算:
把计算分成每次计算最多5个元素:
默认选项设置权衡计算规模和计算次数:
可视化每个内核的计算次数和每次计算的项:
默认情况下,当前上下文的定义会自动分配:
没有分配任何函数的定义:
分配出现在并行计算中的所有上下文中的符号定义:
只分配给定上下文的定义:
恢复 DistributedContexts 选项的值为默认值:
并行化简一个可结合的表达式:
求出一个计算是如何在内核中分配的:
MapThread 的一个并行版本:
ParallelMap 的一次执行结果:
对于可列表函数,ParallelCombineParallelMap 是等价的:
Parallelize 通过关于 ParallelCombine 实现:
许多数据并行命令的并行版本可以使用 ParallelCombine 轻松地编写:
当需要时,互动定义的函数自动分配到所有内核中:
手动分配定义且禁止自动分布:
现在,函数在并行内核中计算:
组合器(combiner)必须与部分结果兼容:
默认组合器是 Join,它对于类列表的结果是适当的:
函数可以简化短的参数列表,但不能简化长的参数列表:
部分表达式的这种简化可能导致不能进行并行计算:
为了阻止部分表达式的这种简化,只能在最后应用想要的函数:
版本 7 的新功能 | 版本 8 修改功能
Ask a question about this page  |  Suggest an improvement  |  Leave a message for the team
格式:   HTML  |  CDF