Parallelize

Parallelize[expr]

自动并行计算 expr.

更多信息和选项

范例

打开所有单元关闭所有单元

基本范例  (4)

并行对一个函数进行映射:

并行地产生一个表格:

交互式定义的函数可以立即被并行使用:

耗时更长的计算显示有关其进度和估计完成时间的信息:

范围  (23)

可列的函数  (1)

当应用到一个列表时,所有具有一个变量的可列表函数将自动地并行化:

隐式定义列表:

保结构函数  (8)

许多保存列表结构的函数型程序结构并行处理:

f@@@list 等价于 MapApply[f,list]

结果不一定有和输入相同的长度:

没有函数,Parallelize 仅简单并行计算元素:

化简  (4)

统计直到一百万的素数的数量:

检测93是否出现在前100个素数的列表中:

检查一个列表是否不含有5:

该变量不一定是一个显式的 List

内积和外积  (2)

内积自动地并行化:

外积自动地并行化:

迭代  (3)

并行计算一个表,在迭代变量和无迭代变量下:

并行产生一个数组:

并行计算和与积:

函数的计算并行出现:

在子内核上局部扩展文件名列表:

相关函数  (1)

具有属性 Flat 的函数自动并行化:

关联函数  (4)

并行运行 AssociationMap

并行运行 KeyMap

并行运行 KeySelect

并行运行 KeyValueMap

推广和延伸  (4)

由一些变量组成的可列表函数:

只有赋值的右边被并行化:

一个复合表达式的并行是一个接一个:

并行生成视频帧:

选项  (13)

DistributedContexts  (5)

默认情况下,当前上下文的定义会自动分配:

没有分配任何函数的定义:

分配出现在并行计算中的所有上下文中的符号定义:

只分配给定上下文的定义:

恢复 DistributedContexts 选项的值为默认值:

Method  (6)

把计算分成最小可能的子单元:

把计算分成与可利用内核相同数目的块:

对于整个任务,把计算分成每个内核最多两次计算:

把计算分成每次计算最多含有5个元素:

默认选项设置在计算规模和计算次数之间取折中:

具有很大差异的运行时间的计算应该被尽可能精细地并行化:

大量简单计算应该被分成尽可能少的批次:

ProgressReporting  (2)

不显示临时进度报告:

使用 Method"FinestGrained" 可得到准确度最高的进度报告:

应用  (4)

搜索 Mersenne 素数:

观测求得的结果的出现:

计算视觉化的整个表格:

并行搜索整个区域,以求得局部最小值:

选择最佳结果:

使用一个共享函数来记录产生的计时结果:

建立带有计时结果的动态柱状图:

运行一系列具有很大差异的运行时间的计算:

属性和关系  (7)

对于数据并行函数,Parallelize 关于 ParallelCombine 实现:

并行加速可用花费已知数目的时间的计算来测量:

定义大量具有已知运行时间的任务:

一个串行执行的时间是所有单个时间的和:

测量并行计算的加速:

最细颗粒度调度(Finest-grained scheduling)产生更好的负载平衡和更高的加速:

首先调用大型任务产生更好的结果:

关于从 +*/ 中选择的 ,形成算术表达式 123456789

每个算术运算的列表产生一个简单的计算:

计算它是简单的:

求所有产生0的算术运算的序列:

显示相应的表达式:

当需要时,互动式定义的函数自动分配到所有内核:

手动分配定义且禁止自动分配:

对于来自于程序包的函数,使用 ParallelNeeds 而不是 DistributeDefinitions

设置一个随机数生成元,适于并行使用和初始化每个内核:

可能存在的问题  (8)

不能并行化的表达式则进行通常计算:

副作用(Side effects)不能用于并行映射的函数中:

使用一个共享变量来支持副作用:

如果没有子内核,则在主内核中计算结果:

如果所用的函数没有先被分配,则结果可能仍然看起来是正确的:

仅当函数被分配,结果才能真正地在可用的内核上计算:

在当前上下文的函数定义自动分配:

不是来自于默认上下文的定义不会自动分配:

使用 DistributeDefinitions 分配这样的定义:

或者,设置 DistributedContexts 选项包括所有的上下文:

显式分配函数的定义:

修改定义:

修改的定义是自动分配的:

禁止定义的自动分配:

只在子内核中定义的符号不会自动分配:

$DistributedContexts 的值没有用在 Parallelize

设置 ParallelizeDistributedContexts 选项:

恢复所有的设置为默认值:

当并行处理时,平凡操作可能需要更长的时间:

巧妙范例  (1)

显示求得的非平凡自动机:

Wolfram Research (2008),Parallelize,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Parallelize.html (更新于 2021 年).

文本

Wolfram Research (2008),Parallelize,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Parallelize.html (更新于 2021 年).

CMS

Wolfram 语言. 2008. "Parallelize." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2021. https://reference.wolfram.com/language/ref/Parallelize.html.

APA

Wolfram 语言. (2008). Parallelize. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/Parallelize.html 年

BibTeX

@misc{reference.wolfram_2024_parallelize, author="Wolfram Research", title="{Parallelize}", year="2021", howpublished="\url{https://reference.wolfram.com/language/ref/Parallelize.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_parallelize, organization={Wolfram Research}, title={Parallelize}, year={2021}, url={https://reference.wolfram.com/language/ref/Parallelize.html}, note=[Accessed: 22-November-2024 ]}