ParallelCombine
ParallelCombine[f,h[e1,e2,…],comb]
并行计算 f[h[e1,e2,…]],将计算分配到所有并行内核上,并用 comb 组合产生的部分结果.
ParallelCombine[f,h[e1,e2, …]]
如果 h 有属性 Flat,等价于 ParallelCombine[f,h[e1,e2,…],h] ,其它情况下等价于ParallelCombine[f,h[e1,e2,…],Join].
更多信息和选项
- ParallelCombine[f,h[e1,…,en],comb] 形成表达式 f[h[e1,…,ek]],f[h[ek+1,…]], …, f[h[…,en]],在所有内核上计算这些表达式,并用 comb[r1,r2,…] 组合结果 ri.
- 缺省组合运算 Join 适用于函数 f,这样 f[h[e1,…,ek]] 的结果中包含头部 h. 这包含有属性 Listable 的所有函数.
- 对于有属性 Flat 的头部 h,缺省组合运算 h 实际上执行结合率 h[e1,…,en] = h[h[e1,…,ek],h[ek+1,…],…,h[…,en]].
- 若选择相兼容的 comb,ParallelCombine[f,h[e1,e2,…],comb] 等价于 f[h[e1,e2,…]].
- 如果没有内核,ParallelCombine 通常计算 f[h[e1,e2,…]].
- ParallelCombine 采用与 Parallelize 相同的 Method 选项. 可能的设置包括:
-
"CoarsestGrained" 将计算分解成尽可能多的可用内核 "FinestGrained" 将计算分解成尽可能小的子单元 "EvaluationsPerKernel"->e 将计算分解成每个内核最多 e 个部分 "ItemsPerEvaluation"->m 将计算分解成每个子单元最多 m 个运算 Automatic 在开销和负载均衡之间折中 - ParallelCombine 采用的 DistributedContexts 选项与 Parallelize 相同;默认值为 DistributedContexts:>$DistributedContexts.
- ProgressReporting 选项指定是否报告并行计算的进度.
- 默认值是 ProgressReporting:>$ProgressReporting.
范例
打开所有单元关闭所有单元基本范例 (2)
范围 (9)
可列表函数 (1)
所有 Listable 函数可以使用 ParallelCombine 并行化:
保结构函数 (3)
选项 (11)
Method (6)
DistributedContexts (5)
恢复 DistributedContexts 选项的值为默认值:
应用 (3)
属性和关系 (5)
ParallelMap 的一次执行结果:
对于可列表函数,ParallelCombine 和 ParallelMap 是等价的:
Parallelize 通过关于 ParallelCombine 实现:
许多数据并行命令的并行版本可以使用 ParallelCombine 轻松地编写:
可能存在的问题 (2)
默认组合器是 Join,它对于类列表的结果是适当的:
文本
Wolfram Research (2008),ParallelCombine,Wolfram 语言函数,https://reference.wolfram.com/language/ref/ParallelCombine.html (更新于 2010 年).
CMS
Wolfram 语言. 2008. "ParallelCombine." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2010. https://reference.wolfram.com/language/ref/ParallelCombine.html.
APA
Wolfram 语言. (2008). ParallelCombine. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/ParallelCombine.html 年