WaitNext
詳細
- eidiは,ParallelSubmitを使って式を並列評価に送ることで得られるEvaluationObject式である.
- WaitNext[{eid1,eid2,…}]はリスト{res,eid,eids}を返す.ただし,res は終了した評価の結果,eid はそのEvaluationObject,eids は残っている評価のリストである.
- WaitNextが作成するリストの最終要素は,WaitNextの別の呼出しに適している.
例題
すべて開く すべて閉じる例 (1)
eids = Table[ParallelSubmit[{i}, Length[FactorInteger[2 ^ i - 1]]], {i, 181, 186}]{res, id, eids} = WaitNext[eids]{res, id, eids} = WaitNext[eids];resWaitAll[eids]スコープ (1)
Private`getID := $KernelIDprocs = Table[ParallelSubmit[Private`getID], {4}];{res, i, procs} = WaitNext[procs];res次の結果をHoldで包み込んでから返す:
{res, i, procs} = WaitNext[procs, Hold];resアプリケーション (1)
が素数であるかどうかテストし,素数ではない場合には$Failedを返す:
test[n_] := If[PrimeQ[n! + 1], n, $Failed]
DistributeDefinitions[test];結果が求まるまでまたはジョブが放棄されるまで検索ジョブを適応的にスケジュールする:
ids = {};res = $Failed;next = 1;
next = 1400;PrintTemporary[Dynamic[next]];
CheckAbort[While[res === $Failed,
While[Length[ids] ≤ $KernelCount,
AppendTo[ids, Composition[ParallelSubmit, test][next++]]];
If[Length[ids] > 0, {res, id, ids} = WaitNext[ids]];
], Null];AbortKernels[];
res特性と関係 (2)
ParallelTryは基本的にWaitNextによって実装される:
parallelTry[f_, args_List] := Module[{evs, ev, res = $Failed},
evs = Composition[ParallelSubmit, f] /@ args;
While[res === $Failed && Length[evs] > 0, {res, ev, evs} = WaitNext[evs]];
AbortKernels[];
res
]parallelTry[FactorInteger, Range[10 ^ 20 + 1, 10 ^ 20 + $KernelCount]]スケジュールされた評価で必要ではなくなったものはAbortKernelsで放棄できる:
evs = Composition[ParallelSubmit, FactorInteger] /@ Range[10 ^ 20 + 1, 10 ^ 20 + 4]{res, ev, evs} = WaitNext[evs];resAbortKernels[];考えられる問題 (2)
より速いものを求めるために最初に$KernelCount評価が実行される:
evs = ParallelSubmit[Pause[#];#]& /@ {0.8, 1.0, 1.2, 1.4, 0.1}{res, ev, evs} = WaitNext[evs];res{res, ev, evs} = WaitNext[evs];resWaitAll[evs]evs = ParallelSubmit[{$KernelID, #}]& /@ Range[2]WaitNext[evs]WaitNext[evs]WaitAll[evs]テキスト
Wolfram Research (2008), WaitNext, Wolfram言語関数, https://reference.wolfram.com/language/ref/WaitNext.html.
CMS
Wolfram Language. 2008. "WaitNext." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/WaitNext.html.
APA
Wolfram Language. (2008). WaitNext. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/WaitNext.html
BibTeX
@misc{reference.wolfram_2026_waitnext, author="Wolfram Research", title="{WaitNext}", year="2008", howpublished="\url{https://reference.wolfram.com/language/ref/WaitNext.html}", note=[Accessed: 17-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_waitnext, organization={Wolfram Research}, title={WaitNext}, year={2008}, url={https://reference.wolfram.com/language/ref/WaitNext.html}, note=[Accessed: 17-June-2026]}