PRODUCTS
Products Overview
Mathematica
Mathematica for Students
Mathematica Home Edition
Wolfram
CDF Player
(free download)
Computable Document Format (CDF)
web
Mathematica
grid
Mathematica
Wolfram
Workbench
Mathematica
Add-Ons
Wolfram|Alpha Products
SOLUTIONS
Solutions Overview
Engineering
Aerospace Engineering & Defense
Chemical Engineering
Control Systems
Electrical Engineering
Image Processing
Industrial Engineering
Materials Science
Mechanical Engineering
Operations Research
Optics
Petroleum Engineering
Biotechnology & Medicine
Bioinformatics
Medical Imaging
Finance, Statistics & Business Analysis
Actuarial Sciences
Data Analysis & Mining
Econometrics
Economics
Financial Engineering & Mathematics
Financial Risk Management
Statistics
Software Engineering & Content Delivery
Authoring & Publishing
Interface Development
Software Engineering
Web Development
Science
Astronomy
Biological Sciences
Chemistry
Environmental Sciences
Geosciences
Social & Behavioral Sciences
Design, Arts & Entertainment
Game Design, Special Effects & Generative Art
Education
STEM Education Initiative
Higher Education
Community & Technical College Education
Primary & Secondary Education
Students
Technology
Computable Document Format (CDF)
High-Performance & Parallel Computing (HPC)
See Also: Technology Guide
PURCHASE
Online Store
Other Ways to Buy
Volume & Site Licensing
Contact Sales
Software
Service
Upgrades
Training
Books
SUPPORT
Support Overview
Knowledge Base
Learning Center
Community & Forums
Training & Free Seminars
Does My Site Have a License?
Wolfram User Portal
COMPANY
About Wolfram Research
News & Events
Wolfram Blog
Partnerships
Employment Opportunities
History of
Mathematica
Stephen Wolfram's Home Page
Contact Us
OUR SITES
All Sites
Wolfram|Alpha
Demonstrations Project
MathWorld
Integrator
Wolfram Functions Site
Mathematica Journal
Wolfram Media
Wolfram
Tones
Wolfram Science
Stephen Wolfram
DOCUMENTATION CENTER SEARCH
New to
Mathematica
?
Find your learning path
»
Mathematica
>
Systems Interfaces & Deployment
>
Parallel Computing
>
Concurrency
>
ParallelSubmit
>
Mathematica
>
Core Language
>
Tuning & Debugging
>
Parallel Computing
>
Concurrency
>
ParallelSubmit
>
BUILT-IN MATHEMATICA SYMBOL
WaitAll
WaitNext
DistributeDefinitions
EvaluationObject
AbortKernels
See Also »
|
Concurrency
Parallel Computing
Summary of New Features in 7.0
New in 7.0: Alphabetical Listing
New in 7.0: Core Language
New in 7.0: Systems Interfaces & Deployment
More About »
ParallelSubmit
ParallelSubmit
[
expr
]
submits
expr
for evaluation on the next available parallel kernel and returns an
EvaluationObject
expression representing the submitted evaluation.
ParallelSubmit
builds a closure for the variables given before submitting
expr
.
MORE INFORMATION
ParallelSubmit
substitutes the current values of the
into
expr
before submitting it for evaluation.
ParallelSubmit
has attribute
HoldAllComplete
.
EXAMPLES
CLOSE 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:
In[1]:=
Out[1]=
In[2]:=
Out[2]=
Schedule a range of evaluations concurrently:
In[1]:=
Out[1]=
Start the calculations and wait for all results:
In[2]:=
Out[2]=
Functions used need to be distributed first:
In[1]:=
In[2]:=
Out[2]=
In[3]:=
Out[3]=
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
Method
setting schedules each item as a single evaluation:
Internally it works similarly to
WaitAll
:
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:
SEE ALSO
WaitAll
WaitNext
DistributeDefinitions
EvaluationObject
AbortKernels
MORE ABOUT
Concurrency
Parallel Computing
Summary of New Features in 7.0
New in 7.0: Alphabetical Listing
New in 7.0: Core Language
New in 7.0: Systems Interfaces & Deployment
New in 7