submits expr for evaluation on the next available parallel kernel and returns an EvaluationObject expression representing the submitted evaluation.

ParallelSubmit[{var1,var2, },expr]

builds a closure for the variables given before submitting expr.

Details and Options


open allclose all

Basic Examples  (3)

Schedule a range of evaluations concurrently:

Start the calculations and wait for all results:

Functions used need to be distributed first:

Scope  (3)

Use Table to submit evaluations:

Use a function to generate evaluations:

Schedule the same expression on each available kernel:

Applications  (4)

Run a search for a random prime on each parallel kernel:

Watch the scheduling of the evaluations while they are running:

Stop all evaluations as soon as one result has been found using a shared variable:

Write a command that evaluates the arguments of a list in parallel:

Use ParallelCombine for the same purpose:

Submit evaluations for searching adjacent ranges:

Use Parallelize for the same purpose:

Properties & Relations  (2)

The "FinestGrained" Method setting schedules each item as a single evaluation:

Internally it works similarly to WaitAll[ParallelSubmit[]]:

Scheduling larger evaluations first usually leads to better load balancing:

Possible Issues  (3)

ParallelSubmit does not evaluate its arguments on the master kernel:

Use a closure to insert the values of local variables into the expressions to be evaluated:

Use With to insert the values of local variables:

Side effects are local to each evaluation:

Use a shared variable to support global side effects:

There is a considerable overhead for scheduling trivial calculations:

The overhead is smaller for generating fewer, but larger, evaluation units:

A sequential evaluation avoids all communication overhead:

Neat Examples  (2)

Parallelize a functional operation by functional composition with ParallelSubmit:

Watch the scheduling of evaluations taking vastly varying amounts of time:

Wolfram Research (2008), ParallelSubmit, Wolfram Language function,


Wolfram Research (2008), ParallelSubmit, Wolfram Language function,


Wolfram Language. 2008. "ParallelSubmit." Wolfram Language & System Documentation Center. Wolfram Research.


Wolfram Language. (2008). ParallelSubmit. Wolfram Language & System Documentation Center. Retrieved from


@misc{reference.wolfram_2024_parallelsubmit, author="Wolfram Research", title="{ParallelSubmit}", year="2008", howpublished="\url{}", note=[Accessed: 17-July-2024 ]}


@online{reference.wolfram_2024_parallelsubmit, organization={Wolfram Research}, title={ParallelSubmit}, year={2008}, url={}, note=[Accessed: 17-July-2024 ]}