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)

ParallelArrayArray 工作方式相似,不同之处在于并行:

产生一个 数组:

产生一个 数组:

使用初始索引 0 而非 1

以索引 04 开始,而非 1

在结果表达式中使用了 h 而不是 List

选项  (13)

Method  (6)

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

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

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

把计算分成每次计算最多五个元素:

默认选项设置权衡计算规模和计算次数:

使用差异很大的运行时间的计算必须被并行化得尽可能精细:

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

DistributedContexts  (5)

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

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

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

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

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

ProgressReporting  (2)

不显示临时进度报告:

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

可能存在的问题  (2)

使用并行内核上未知的函数可能导致串行计算:

在所有并行内核上定义函数:

目前,函数在并行内核上进行计算:

当前上下文中函数定义会自动分配:

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

使用 DistributeDefinitions 分配这类定义:

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

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

文本

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 年

BibTeX

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

BibLaTeX

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