LocalSubmit

LocalSubmit[expr]

submits a task to evaluate expr in a separate kernel.

LocalSubmit[ScheduledTask[expr, spec]]

submits a task to evaluate expr in a separate kernel on the schedule defined by spec.

Details and Options

  • LocalSubmit[] returns TaskObject[] to represent the task it creates.
  • The following options can be given:
  • HandlerFunctions<||>how to handle generated events
    HandlerFunctionsKeysAutomaticparameters to supply to handler functions
  • During the execution of the task, the following events can be generated:
  • "TaskStarted"task is started
    "FailureOccurred"task could not be started
    "ScheduleTriggered"scheduled task evaluation is beginning
    "MessageGenerated"evaluation generated a message
    "PrintOutputGenerated"evaluation generated print output
    "ResultReceived"evaluation generated a result
    "ScheduleExecuted"scheduled task evaluation is executed
    "TaskStatusChanged"task status changed
    "TaskFinished"task is completely finished
    "TaskRemoved"task is being removed
  • With the specification HandlerFunctions-><|,"eventi"->fi,|>, fi[assoc] is evaluated whenever eventi is generated. The elements of assoc have keys specified by the setting for HandlerFunctionsKeys.
  • Possible keys specified by HandlerFunctionsKeys include:
  • "EvaluationExpression"expression being evaluated
    "EvaluationResult"result of the evaluation
    "Failure"failure object generated if task failed
    "MessageOutput"content of message generated
    "PrintOutput"content of print output generated
    "Task"the object representing the task
    "TaskStatus"the status of the task
    "TaskType"type of the task
    "TaskUUID"unique task identifier
    "EventName"the name of the event being handled
  • The expression to evaluate is returned wrapped in Hold.
  • For scheduled tasks, the following additional keys can be specified:
  • "Schedule"task schedule specification
    "RunInterval"interval between task runs
    "PreviousRunCount"number of times the task has already run
    "RemainingRunCount"number of times the task still has to run
    "TotalRunCount"total number of times the task is scheduled to run
  • LocalSubmit initiates a new subkernel whenever it is called.

Examples

open allclose all

Basic Examples  (8)

Start a separate kernel to evaluate the expression and get notified when it is finished:

In[1]:=
Click for copyable input
Out[1]=

Assign the result of the evaluation to a variable in your current session:

In[1]:=
Click for copyable input
Out[1]=

processID gets a value:

In[2]:=
Click for copyable input
Out[2]=

Evaluate an expression in a separate kernel and get the result when it is ready:

In[1]:=
Click for copyable input
Out[1]=

Capture messages generated by the remote kernel:

In[1]:=
Click for copyable input
Out[1]=

Format message output as a regular message:

In[2]:=
Click for copyable input
Out[2]=

Capture print output generated by the remote kernel:

In[1]:=
Click for copyable input
Out[1]=

Format message output as a regular message:

In[2]:=
Click for copyable input
Out[2]=

Get notified when the task status changes:

In[1]:=
Click for copyable input
Out[1]=

If the subkernel terminates before the evaluation is complete, a Failure object is generated:

In[1]:=
Click for copyable input
Out[1]=

Start a remote kernel and evaluate an expression, which may take a long time to finish:

In[1]:=
Click for copyable input
Out[1]=

Check which tasks are currently running:

In[2]:=
Click for copyable input
Out[2]=

Terminate the tasks without waiting for them to finish:

In[3]:=
Click for copyable input
Out[3]=

Possible Issues  (1)

See Also

SessionSubmit  CloudSubmit  URLSubmit  TaskObject  TaskSuspend  TaskAbort  TaskRemove  ParallelEvaluate

Introduced in 2017
(11.2)