ParallelTry

ParallelTry[f,{arg1,arg2,}]

f[argi]を並列評価し,最初に得た結果を返す.

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

最初の k 個の結果のリストを返す.

詳細とオプション

  • ParallelTryは,使用可能なことなるカーネルとプロセス間に自動的に計算を分配する.
  • k 個の結果が返された後になお残っている評価は放棄される.
  • f[argi] の1つを評価した結果が$Failedの場合,その結果は無視される.
  • $Failed以外の結果が得られない場合,ParallelTry$Failedを返す.
  • ParallelTry[f,{arg1,arg2,}]f[argi]の評価を,arg1から始まる異なるカーネルとプロセスに割り当てる.
  • argiの数がカーネル数よりも多い場合,argiの中には最初の方のカーネルが$Failedを返さない限り試みられないものもある.
  • ParallelTryParallelTableと同じDistributedContextsオプションを取る.

例題

すべて開くすべて閉じる

  (2)

簡単に因数分解できる数の因数分解を行う:

指定された範囲で非決定的に素数を求める:

スコープ  (2)

最初の2つの成功した結果を返す:

成功した結果がない場合,ParallelTry$Failedを返す:

オプション  (5)

DistributedContexts  (5)

デフォルトで,現行コンテキストの定義は自動的に配布される:

関数の定義は配布しない:

並列計算に現れるすべてのコンテキストのすべての記号の定義を配布する:

指定されたコンテキストの定義を配布する:

DistributedContextsオプションの値をデフォルト値に戻す:

アプリケーション  (5)

ランダムな素数を並列計算で求める:

個々のカーネル上のランダムな検索で既約多項式を求める:

指定の素数指数から始めてメルセンヌ(Mersenne)素数を検索する:

最小化で異なるメソッドを試し,最初に成功したものを返す:

総和を求める異なる方法を試し最初に成功したものを返す:

この場合,成功した方法は1つだけだった:

特性と関係  (5)

ParallelTryは一般に最初に受け取った成功した結果を返す:

ParallelTryParallelMapと同じように働くが一つの結果しか返さない:

ParallelTryは基本的にWaitNextによって実装される:

インタラクティブに定義される関数は必要になると自動的にすべてのカーネルに配布される:

手動で定義を配布し自動配布を停止する:

パッケージからの関数にはDistributeDefinitionsではなくParallelNeedsを使う:

考えられる問題  (3)

式の数がカーネル数よりも多い場合,試されないものが出て来る:

並列カーネルにとって未知の関数を使うと連続評価になる事がある:

すべての並列カーネルに対して関数を定義する:

これで,この関数が並列カーネルで評価できるようになった:

現行コンテキストの関数定義は自動的に配布される:

デフォルトコンテキスト以外のコンテキストからの定義は自動的には配布されない:

DistributeDefinitionsをつあkってそのような定義を配布する:

すべてのコンテキストを含むように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 Language. 2008. "ParallelTry." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2010. https://reference.wolfram.com/language/ref/ParallelTry.html.

APA

Wolfram Language. (2008). ParallelTry. Wolfram Language & System Documentation Center. Retrieved from 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: 17-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: 17-November-2024 ]}