The following describes the general procedure for using Submission Interface:
- Modify your script/tool to call xgSubmit.exe and (optionally) xgWait.exe so that processes whose execution you wish to distribute are queued in the Grid Engine queue.
- Run the script/tool with IBConsole.
To convert your scripts for use with IncrediBuild:
- Copy your script to a new location.
- Place each command that is to be run via IncrediBuild within an xgSubmit call.
- Create any Groups needed for sequential processing.
- Add any necessary xgWait statements to the script, associating each of them with the appropriate Group(s) or all Groups.
- Save the new script and run it using IBConsole (supplying either a command line for the Job, or the name of the batch file).
Note:
- It is not mandatory for all statements to be converted into xgSubmit tasks. They can remain in the script in their original form. IncrediBuild will execute them on the local machine in a sequential manner.
Example 1
A batch script such as this one can easily be modified for IncrediBuild.
DummyProcess.exe 3000
DummyProcess.exe 2500
DummyProcess.exe 2500
DummyProcess.exe 3000
DummyProcess.exe 2800
DummyProcess.exe 2000
(See the sample supplied in the Samples directory.)
In order to instruct IncrediBuild to execute each of the above commands using remote helper machines, change the script file as follows (Batch File 4tasks.bat):
xgSubmit /ForceRemote /group=Group1 /caption=Task1-Group1 /command DummyProcess.exe 3000
xgSubmit /ForceRemote /group=Group1 /caption=Task2-Group1 /command DummyProcess.exe 2500
xgSubmit /ForceRemote /group=Group1 /caption=Task3-Group1 /command DummyProcess.exe 2500
xgWait /group=Group1
xgSubmit /ForceRemote /group=Group2 /caption=Task4-Group2 /command DummyProcess.exe 3000
xgSubmit /ForceRemote /group=Group2 /caption=Task5-Group2 /command DummyProcess.exe 2800
xgSubmit /ForceRemote /group=Group2 /caption=Task6-Group2 /command DummyProcess.exe 2000
xgWait /group=Group2
In order to execute the script file using IncrediBuild (assuming the script name is 4tasks.bat), execute the following command:
xgConsole "4tasks.bat” /openmonitor
Example 2
Your rendering program needs to process one thousand frames and your script / command line is designed to work on one frame at a time.
RenderApp 1-1000
This command will take 1000 times the time needed to process one frame. Similarly, a script that divides the job into 100 tasks might help show a progress bar but does not save any processing time:
RenderApp 1-100
RenderApp 101-200
RenderApp 201-300
…
RenderApp 901-1000
Using IncrediBuild, you can create the following script:
xgSubmit / command RenderApp 1-100
xgSubmit / command RenderApp 101-200
xgSubmit / command RenderApp 201-300
…
xgSubmit / command RenderApp 901-1000)
IncrediBuild sends each task off to the queue and, based on information from the Coordinator, the processing is distributed in parallel among the ten remote and local cores registered in the IncrediBuild Grid pool. The processing is completed in a tenth of the original time required.
For a comprehensive overview of the IBConsole.exe command line options see this section.
Submission Interface Sample Project
You are welcome to look at our sample projects under the IncrediBuild installation folder in Samples\Dev Tools Interfaces Usage Samples\Submission Interface. One such sample is Distribution Sample, which demonstrates a simple application distribution.Note:
- Run the "BatchFileExecution.bat" from the command prompt set to this folder. This will activate the "xgSubmit.exe" within the "BatchFile.bat", which will in turn launch many instances of the "DummyProcess.exe" and treat it as distributable.
Integration Interfaces:
Choosing the Ideal Interface
Using Submission Interfaces
Using Automatic Interception Interfaces
Creating a Profile XML File
Using XML Interfaces
Combined Interfaces
IncrediBuild Solutions:
Visual Studio Solution
Make and Other Build Tools Solution
DevTools Solution
IncrediBuild for Qt Creator
IncrediBuild For Game Development
IncrediBuild for Unit Tests
Working with Build Groups
Running Gitlab Builds with Incredibuild
User Manual:
List of Open Sources
Getting Started
Set Up and Installation
IncrediBuild Solutions
The Coordinator
IncrediBuild Agents
IncrediBuild Cloud
Working from Home
Troubleshooting Issues
IncrediBuild Additional Resources
Release Notes