产品
产品概览
Mathematica
Mathematica 学生版
Mathematica Home Edition
Wolfram
CDF Player
(免费下载)
可计算文档格式(CDF)
web
Mathematica
grid
Mathematica
Wolfram
Workbench
Wolfram
SystemModeler
Wolfram
Finance Platform
Mathematica
附加程序包
Wolfram|Alpha 产品
解决方案
解决方案概览
工程
航空航天与国防
化学工程
控制系统
电气工程
图像处理
工业工程
材料科学
机械工程
运筹学
光学
石油工程
生物技术与医药
生物信息学
医学影像
金融、统计、商业分析
精算科学
数据分析与挖掘
计量经济学
经济学
金融工程与数学
金融风险管理
统计
软件工程、内容传递
创作与出版
界面开发
软件工程
网页开发
科学
天文学
生物科学
化学
环境科学
地球科学
社会与行为科学
设计、艺术以及娱乐
游戏设计、特殊效果及衍生艺术
教育
STEM 教育倡议
高等教育
高职高专院校
中小学教育
学生
科技
可计算文档格式(CDF)
高性能并行计算(HPC)
参见:技术指南
购买
网上商店
其它购买方式
批量许可及站点许可证
联络销售部
软件
服务
升级
培训
书籍
Merchandise
技术支持
技术支持概览
Mathematica
参考资料
知识库
学习中心
技术服务
社区与论坛
培训
查看站点是否有许可证授权
Wolfram 用户门户
公司概况
关于 Wolfram Research
新闻与活动
Wolfram 博客
合作伙伴
工作机会
Mathematica
的历史
Stephen Wolfram 主页
联系我们
公司网站
全部站点
Wolfram|Alpha
演示项目
MathWorld
Integrator
Wolfram Functions Site
Mathematica Journal
Wolfram Media
Wolfram
Tones
Wolfram Science
Stephen Wolfram
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE
DOCUMENTATION CENTER
FOR THE LATEST INFORMATION.
DOCUMENTATION CENTER SEARCH
New to
Mathematica
?
Find your learning path
»
Mathematica
>
系统界面与配置
>
并行计算
>
数据并行化
>
ParallelCombine
>
Mathematica
>
核心语言
>
调整和调试
>
并行计算
>
数据并行化
>
ParallelCombine
>
MATHEMATICA 内置符号
ParallelMap
Parallelize
ParallelSum
ParallelProduct
Fold
参见 »
|
数据并行化
并行计算
7.0版本的新功能概要
7.0的新功能: 字母列表
更多关于 »
ParallelCombine
ParallelCombine
并行计算
,将计算分配到所有并行内核上,并用
comb
组合产生的部分结果.
ParallelCombine
如果
h
有属性
Flat
,等价于
ParallelCombine
,其它情况下等价于
ParallelCombine
[
f
,
h
[
e
1
,
e
2
,
...
],
Join
]
.
更多信息
ParallelCombine
形成表达式
,
, ...,
,在所有内核上计算这些表达式,并用
组合结果
.
缺省组合运算
Join
适用于函数
f
,这样
的结果中包含头部
h
. 这包含有属性
Listable
的所有函数.
对于有属性
Flat
的头部
h
,缺省组合运算
h
实际上执行结合率
.
若选择相兼容的
comb
,
ParallelCombine
等价于
.
如果没有内核,
ParallelCombine
通常计算
.
ParallelCombine
采用的
Method
选项和
Parallelize
相同.
ParallelCombine
采用的
DistributedContexts
选项与
Parallelize
相同;默认值为
DistributedContexts
:>
$DistributedContexts
.
范例
关闭所有单元
例
(2)
将
f
并行作用到列表的4个块中 (存在4个并行内核):
显示每次计算发生的位置:
默认情况下,
Join
作为一个组合器(combiner)函数使用:
执行一次并行过滤操作:
将
f
并行作用到列表的4个块中 (存在4个并行内核):
In[1]:=
Out[1]=
显示每次计算发生的位置:
In[2]:=
Out[2]=
默认情况下,
Join
作为一个组合器(combiner)函数使用:
In[1]:=
Out[1]=
执行一次并行过滤操作:
In[2]:=
Out[2]=
范围
(9)
所有
Listable
函数可以使用
ParallelCombine
并行化:
如果该函数不是
Listable
,则使用一个显式的
Map
:
许多函数型程序结构可以使用
ParallelCombine
并行化:
该结果不必具有与输入相同的长度:
并行计算列表元素:
匹配元素的完全统计等于部分统计的和:
如果一个元素出现在至少一个块中,则它出现在列表中:
如果一个元素不出现在任何块中,则它不出现在列表中:
每个子内核执行较少的加法运算,而组合器把结果组合起来:
自动为
Flat
函数挑选组合器:
典型
Flat
函数:
推广和延伸
(1)
一些变量组成的可列表函数:
选项
(11)
把计算分成与可使用内核相同数目的块:
对于整个任务,把计算分成最多每个内核两次计算:
把计算分成每次计算最多5个元素:
默认选项设置权衡计算规模和计算次数:
可视化每个内核的计算次数和每次计算的项:
默认情况下,当前上下文的定义会自动分配:
没有分配任何函数的定义:
分配出现在并行计算中的所有上下文中的符号定义:
只分配给定上下文的定义:
恢复
DistributedContexts
选项的值为默认值:
应用
(3)
并行化简一个可结合的表达式:
求出一个计算是如何在内核中分配的:
MapThread
的一个并行版本:
属性和关系
(5)
ParallelMap
的一次执行结果:
对于可列表函数,
ParallelCombine
和
ParallelMap
是等价的:
Parallelize
通过关于
ParallelCombine
实现:
许多数据并行命令的并行版本可以使用
ParallelCombine
轻松地编写:
当需要时,互动定义的函数自动分配到所有内核中:
手动分配定义且禁止自动分布:
现在,函数在并行内核中计算:
可能存在的问题
(2)
组合器(combiner)必须与部分结果兼容:
默认组合器是
Join
,它对于类列表的结果是适当的:
函数可以简化短的参数列表,但不能简化长的参数列表:
部分表达式的这种简化可能导致不能进行并行计算:
为了阻止部分表达式的这种简化,只能在最后应用想要的函数:
参见
ParallelMap
Parallelize
ParallelSum
ParallelProduct
Fold
更多关于
数据并行化
并行计算
7.0版本的新功能概要
7.0的新功能: 字母列表
版本 7 的新功能 | 版本 8 修改功能