({{, (RefLink[EvaluationObject, paclet:ref/EvaluationObject])[n,expr,…] 
represents an expression submitted for evaluation on any available parallel kernel.}})

OpenersNotesSection(Spacer1)Details

Evaluation objects are created with (RefLink[ParallelSubmit, paclet:ref/ParallelSubmit]).

The results of evaluations are collected with (RefLink[WaitAll, paclet:ref/WaitAll]) or (RefLink[WaitNext, paclet:ref/WaitNext]).

OpenersPrimaryExamplesSection(Spacer1)Examples  (6)

OpenersExampleSection0(Spacer1)Basic Examples  (2)

Submit a single evaluation and wait for it to finish:

ParallelSubmit[1+2]

WaitAll[%]

Wait for all evaluation ids contained in a sum:

Inner[Composition[ParallelSubmit,f],{a,b,c},{u,v,w}]

WaitAll[%]

OpenersExampleSection1(Spacer1)Scope  (1)

During scheduling, an evaluation goes through ready, running, received, and finished:

evs=Table[ParallelSubmit[{n},PrimeQ[n!+1]],{n,6}]

WaitAll[Take[evs,2]];evs

WaitAll[Drop[evs,2]]

OpenersExampleSection3(Spacer1)Properties & Relations  (2)

Evaluation objects are created with (RefLink[ParallelSubmit, paclet:ref/ParallelSubmit]):

ev=ParallelSubmit[PrimeQ[1000!+1]]

Their results are collected with (RefLink[WaitAll, paclet:ref/WaitAll]) or (RefLink[WaitNext, paclet:ref/WaitNext]):

WaitAll[ev]

Scheduled evaluations no longer needed can be aborted with (RefLink[AbortKernels, paclet:ref/AbortKernels]):

evs=Composition[ParallelSubmit,FactorInteger]/@Range[10^20+1,10^20+6]

WaitAll[Take[evs,2]]

AbortKernels[];

OpenersExampleSection4(Spacer1)Possible Issues  (1)

Each evaluation should be waited for exactly once:

ev=ParallelSubmit[1+1]

WaitAll[ev]

The evaluation object has already completed:

WaitAll[ev]

ev

({{DocumentationFooterIconsRelatedFunction.png, ({{See Also}, {(RefLink[ParallelSubmit, paclet:ref/ParallelSubmit])  ▪  (RefLink[WaitAll, paclet:ref/WaitAll])  ▪  (RefLink[WaitNext, paclet:ref/WaitNext])}})}})

({{DocumentationFooterIconsRelatedGuide.png, ({{Related Guides}, {▪(RefLinkPlain[Concurrency, paclet:guide/Concurrency])}})}})