产品
产品概览
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
>
系统界面与配置
>
Mathematica 系统设置
>
并行计算安装和配置
>
DistributeDefinitions
>
Mathematica
>
系统界面与配置
>
并行计算
>
并行计算安装和配置
>
DistributeDefinitions
>
Mathematica
>
核心语言
>
调整和调试
>
并行计算
>
并行计算安装和配置
>
DistributeDefinitions
>
MATHEMATICA 内置符号
ParallelNeeds
ParallelEvaluate
Parallelize
SetSharedVariable
SetSharedFunction
DistributedContexts
参见 »
|
数据并行化
并行计算安装和配置
并行计算
并行计算中的资源共享
7.0版本的新功能概要
7.0的新功能: 字母列表
7.0的新功能: 系统界面和配置
8.0的新功能:核心语言
8.0的新功能:系统界面和部署
更多关于 »
DistributeDefinitions
DistributeDefinitions
将符号
的所有定义分配给所有并行内核.
DistributeDefinitions
分配指定上下文下的所有符号定义.
更多信息
DistributeDefinitions
实际上应用
ParallelEvaluate
到符号
的所有值和属性的分配上,不仅包括OwnValues,还包括 DownValues、UpValues 及其它类型的值.
DistributeDefinitions
将其自身递归地应用于符号
的定义中出现的任何符号.
DistributeDefinitions
有属性
HoldAll
.
DistributeDefinitions
实际上"记录"符号
的定义,这样它们可以自动的分配到可能登陆的每个新并行内核中.
对于任何表达式
expr
,
DistributeDefinitions
[
expr
]
分配所有
expr
中出现的符号定义.
范例
关闭所有单元
例
(1)
必须首先分配在子内核中使用的函数:
高层次的并行命令自动分配需要的定义:
必须首先分配在子内核中使用的函数:
In[1]:=
In[2]:=
In[3]:=
Out[3]=
高层次的并行命令自动分配需要的定义:
In[4]:=
In[5]:=
Out[5]=
范围
(5)
变量值:
函数:
超值:
属性:
分配当前上下文中所有符号的定义:
推广和延伸
(1)
已分配的定义所依赖的辅助定义也被自动分配:
属性和关系
(6)
DistributeDefinitions
覆盖任何前面出现的值和属性:
通过清除该函数并且再次分配它,删除一个已分配的定义:
DistributeDefinitions
使用
ParallelEvaluate
来把定义传输给所有内核:
一个明确的
ParallelEvaluate
做同样的事情:
对新内核记录分配好的定义;
ParallelEvaluate
的效果则不是:
对于高层次的并行命令,自动分配交互式定义的函数:
手动分配定义,并且禁止使用自动分配:
仅仅在子内核上具有数值的符号不被分配:
在子内核上的数值不改动:
一旦一个符号得到一个局部值,它将在下一次并行计算中被分配:
使用
ParallelNeeds
在所有并行内核中设置程序包:
使用
DistributeDefinitions
设置您自己的定义:
可能存在的问题
(3)
所使用的并行内核上未知的一个函数可能导致串行计算:
在所有并行内核上定义函数:
现在在并行内核上计算该函数:
DistributeDefinitions
的使用并不会阻止定义的自动分配:
修改定义:
自动分配修改好的定义:
阻止定义的自动分配:
仅仅在子内核上定义的符号不被自动分配:
当分配时,某些具有内部状态的对象可能无法有效工作:
重新在所有子内核中计算以获得更好的性能:
巧妙范例
(1)
快速可视化高斯素数:
参见
ParallelNeeds
ParallelEvaluate
Parallelize
SetSharedVariable
SetSharedFunction
DistributedContexts
更多关于
数据并行化
并行计算安装和配置
并行计算
并行计算中的资源共享
7.0版本的新功能概要
7.0的新功能: 字母列表
7.0的新功能: 系统界面和配置
8.0的新功能:核心语言
8.0的新功能:系统界面和部署
版本 7 的新功能 | 版本 8 修改功能