> ## Documentation Index
> Fetch the complete documentation index at: https://docs.incredibuild.com/llms.txt
> Use this file to discover all available pages before exploring further.

# xgSubmit Command

Last updated on Nov 05, 2024

The *xgSubmit.exe* tool is used to submit tasks to the Incredibuild Grid Engine. Submitted tasks are queued for execution and executed on either a remote or local CPU, as soon as one becomes available. Each submitted task can be assigned a group identifier using the **/group** argument. Tasks of the group are executed in parallel by Incredibuild. [xgWait.exe](/windows/10.27.1/xgwait-command) can be used throughout the script to pause execution until all tasks with a given group identifier have completed. Note that the purpose of the group identifier is only to group a set of submitted tasks; it is NOT related in any way to Coordinator Build Groups.

**Note:** Commands specified in the command file are executed independently, and not necessarily in the specified order. In order to create dependencies, use the **/group** argument in conjunction with the xgWait command in your script.

xgSubmit.exe can be used to submit a single task or a set of tasks specified in a command file (for better performance when submitting a large group of tasks).

### **Usage**

The following syntax is used in running xgSubmit:

```
xgSubmit [/group=<Group Identifier>] [/wait] /allowremote=[allow_remote] [/caption] /commandfile <Path to Command File> /command <Original Command line>
```

## **Command-Line Options**

| Option       | Function                                                                                                                                         | Values/Notes                                                                                                                                                                                                 |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| /group       | The identifier of the Group to which this task belongs to. If no Group identifier is given, the submitted task will belong to the default Group. |                                                                                                                                                                                                              |
| /wait        | When specified, xgSubmit only returns control to the script when the submitted command has completed execution.                                  |                                                                                                                                                                                                              |
| /allowremote | Specifies whether remote processing is possible.                                                                                                 | on: The submitted task may be distributed to a remote Agent. <br /> off: The submitted task runs on the machine that initiated the Execution/Job, and is not distributed to a remote Agent.                  |
| /caption     | When used, the specified caption appears as the caption for the submitted tasks's progress bar in the Execution Monitor Progress page.           |                                                                                                                                                                                                              |
| /commandfile | Should always be specified last, followed by the path to the file containing the commands to be submitted.                                       | xgWait.exe /all is implicitly called at the end of the script/application's execution, in order to allow all tasks submitted with xgSubmit.exe to complete before returning control to the initiating Agent. |
| /command     | If a command file is not specified, the original command should be specified.                                                                    |                                                                                                                                                                                                              |

**Single Task Submission Syntax**

This syntax is used to submit a single task to the Grid Engine queue. The usage syntax is:

**xgSubmit \[Arguments] /command \<Tool Command Line>**

**Note:** The "/command" argument should always be specified last, followed by the command line to be submitted for execution.

The arguments are:

* **/group**
* **/wait**
* **/allowremote=\[on|off]**
* **/caption**

See explanations in above table.

**Command File Submission Syntax**

This syntax can be used for better performance when submitting a large set of tasks belonging to the same task group. A command file containing the command lines to be submitted separated by a newline character is given as input. xgSubmit.exe then reads and submits the commands specified in the command file. The usage syntax is:

**xgSubmit \[/group=\<Group Identifier>] /commandfile \<Path to Command File>**

**Note:** The "/commandfile" argument should always be specified last, followed by the path to the file containing the commands to be submitted.

Arguments:

* **/group**
* **/wait**
* **/allowremote=\[on|off]**

**Task Grouping**

In many cases, there is a need to ensure that certain tasks do not begin before others are completed. In order to create such dependencies, you can group tasks so that a defined Group can be processed in parallel, but a sequence of Groups will run serially.
