ParallelTry

ParallelTry[f,{arg1,arg2,}]

并行计算 f[argi],返回第一个结果.

ParallelTry[f,{arg1,arg2,},k]

返回前 k 个结果的列表.

更多信息和选项

  • ParallelTry 在不同的内核和处理器之间自动分配计算.
  • 在产生 k 个结果后,任何进行的计算将取消.
  • 如果另一个 f[argi] 的计算结果是 $Failed,则它被忽略.
  • 如果没有得到结果,而不是 $FailedParallelTry 返回 $Failed.
  • ParallelTry[f,{arg1,arg2,}]f[argi] 的计算分配到不同内核和处理器上,从 arg1 开始.
  • 如果 argi 的数量多于内核数量,则不计算某些 argi,除非之前的一些参数返回 $Failed.
  • ParallelTry 采用的 DistributedContexts 选项与 ParallelTable 相同.

范例

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

基本范例  (2)

求出易于因子分解的一个数的因式分解:

求出给出范围的一个素数:

范围  (2)

返回前两个连续结果:

如果没有求出连续结果,ParallelTry 返回 $Failed

选项  (5)

DistributedContexts  (5)

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

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

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

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

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

应用  (5)

并行求出一个随机素数:

使用每个并行内核上的一个随机搜索,求解一个不可约多项式:

从一个给的的素数指数开始,搜索一个 Mersenne 素数:

尝试不同的方法最小化,返回成功的第一个:

尝试求和的不同符号方法,并且返回成功的第一个:

在这种情况下,只有一种方法成功:

属性和关系  (5)

ParallelTry 通常返回收到的第一个成功的结果:

ParallelTryParallelMap 工作方式相似,但是只返回一个结果:

ParallelTry 实质上以 WaitNext 的形式执行:

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

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

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

可能存在的问题  (3)

如果表达式比内核多,那么有些表达式将不会被尝试:

在并行内核上未知的函数将导致并行计算:

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

现在,该函数在并行内核上进行计算:

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

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

使用 DistributeDefinitions 分配这样的定义:

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

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

文本

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

CMS

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

APA

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

BibTeX

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

BibLaTeX

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