ParallelArray
ParallelArray[f,n]
产生长度为 n,元素 f[i] 的并行计算列表.
ParallelArray[f,{n1,n2,…}]
产生 数组的嵌套列表,其中元素 f[i1,i2,…].
ParallelArray[f,{n1,n2,…},{r1,r2,…}]
用指针源 ri (缺省 1) 产生一个并行列表.
ParallelArray[f,dims,origin,h]
对于每层数组,用头部 h 而不是 List.
更多信息和选项
- ParallelArray 是并行的 Array,它在不同内核和处理器之间自动分配 expr 的计算.
- ParallelArray 将给出和 Array 相同的结果,除了计算过程中的副作用.
- Parallelize[Array[f,n]] 等价于 ParallelArray[f,n].
- 对于不能并行化的 ParallelArray,用 Array 执行计算.
- 可以给出下列选项:
-
Method Automatic 并行化粒度 DistributedContexts $DistributedContexts 用于将符号分配到并行计算的上下文 ProgressReporting $ProgressReporting 是否报告计算进度 - Method 选项指定要使用的并行化方法. 可能的设置包括:
-
"CoarsestGrained" 将计算分成与可用内核数量相同的段 "FinestGrained" 将计算分成最小的子单元 "EvaluationsPerKernel"->e 将计算分成每个内核最多 e 段 "ItemsPerEvaluation"->m 将计算分成每个内核最多 m 个子单元 Automatic 在总开销和负载平衡之间的折中 - Method->"CoarsestGrained" 适用于涉及许多子单元的计算,所有这些子单元都需要相同的时间. 该设置最大限度地减少开销,但不提供任何负载均衡.
- Method->"FinestGrained" 适用于涉及运算需要不同时间量的少数子单元的计算. 该设置会导致更高的开销,但最大限度地提高了负载均衡.
- DistributedContexts 选项指定出现在 expr 中的哪些符号在计算之前将其定义自动分发到所有可用内核.
- 设置 $DistributedContexts:=$Context,默认值为 DistributedContexts:>$DistributedContexts,该值分发当前上下文中所有符号的定义,但不分发程序包中的符号定义.
- ProgressReporting 选项指定是否报告并行计算的进度.
- 默认值为 ProgressReporting:>$ProgressReporting.
范例
打开所有单元关闭所有单元基本范例 (4)
ParallelArray 与 Array 工作方式相似,不同之处在于并行:
在结果表达式中使用了 h 而不是 List:
选项 (13)
可能存在的问题 (2)
使用 DistributeDefinitions 分配这类定义:
或者,设置 DistributedContexts 选项以包含所有的上下文:
文本
Wolfram Research (2008),ParallelArray,Wolfram 语言函数,https://reference.wolfram.com/language/ref/ParallelArray.html (更新于 2021 年).
CMS
Wolfram 语言. 2008. "ParallelArray." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2021. https://reference.wolfram.com/language/ref/ParallelArray.html.
APA
Wolfram 语言. (2008). ParallelArray. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/ParallelArray.html 年