BingoRunner
Run RELAX, BINGO, and SKIP from the command line
BingoRunner.exe runs the BINGO processing programs without BINGO Manager. It is intended for automated processing, scripts, regression tests, and advanced batch workflows. The tool starts the existing Relax.exe, BingoMP.exe, and Skip.exe programs; it does not replace their computations.
BingoRunner is installed in the BINGO bin directory alongside the programs and runtime libraries that it uses. It writes progress to the console and to a log file.
Getting started
Open PowerShell in the BINGO bin directory and check the installation:
.\BingoRunner.exe doctor
To run RELAX followed by BINGO for a project directory:
.\BingoRunner.exe pipeline "C:\BingoWork\ProjectX"
The data directory becomes the working directory of each program. Put the BINGO project files and data files in this directory. Enclose a path in quotation marks when it contains spaces.
Use --help to display the command summary and --version to display the BINGO version:
.\BingoRunner.exe --help
.\BingoRunner.exe --version
Commands
| Command | Description |
|---|---|
run relax <data-directory> | Run RELAX once. |
run bingo <data-directory> | Run BINGO once using BingoMP.exe. |
run skip <data-directory> | Run SKIP once. |
pipeline <data-directory> | Run RELAX once, followed by BINGO once. |
cycle <data-directory> | Run RELAX once, then repeat BINGO and SKIP until no further SKIP action is required. |
doctor | Check the BINGO executables, required runtime libraries, CodeMeter runtime, and named-pipe availability. |
--help | Display command usage, options, and exit codes. |
--version | Display the BINGO product version. |
The run verb is required for individual programs. Old forms such as BingoRunner bingo <data-directory> are not supported.
Processing workflows
Pipeline
The pipeline command stops if RELAX or BINGO reports an error. Add --apply-skip to run SKIP once when BINGO leaves a skip.dat file:
.\BingoRunner.exe pipeline "C:\BingoWork\ProjectX" --mode mp --apply-skip
This option does not repeat BINGO after SKIP. Use cycle when the adjustment must continue until SKIP no longer changes the image coordinate file.
Cycle
The cycle command runs RELAX once and then performs the following loop:
- Run BINGO.
- Finish if
skip.datdoes not exist after BINGO. - Run SKIP.
- Finish if SKIP reports that no action was required; otherwise, start the next cycle.
The default maximum is 10 BINGO-and-SKIP cycles. Change it with --max-cycles. BingoRunner returns exit code 10 if the limit is reached while SKIP is still applying changes.
.\BingoRunner.exe cycle "C:\BingoWork\ProjectX" --max-cycles 20
Solver modes
The --mode option applies to run bingo, pipeline, and cycle. All modes start BingoMP.exe; the option selects its Cholesky solver.
| Mode | Solver |
|---|---|
linear | Linear solver |
mp | Parallel CPU solver; this is the default |
gpu | GPU solver |
An invalid mode is rejected before BINGO starts.
Options
| Option | Description |
|---|---|
--project <file> | Pass a project filename to each program. A relative path is resolved from the data directory. |
--mode linear|mp|gpu | Select the BINGO solver mode. The default is mp. |
--apply-skip | For pipeline, run SKIP once if skip.dat exists after BINGO. |
--max-cycles <n> | For cycle, set a positive maximum cycle count. The default is 10. |
--bin <path> | Use a specific directory containing the BINGO executables and runtime libraries. |
--timeout <duration> | Set a timeout for each individual program, for example 30s, 2m, or 00:05:00. |
--log <path> | Write the log to a specific file. |
--verbose | Include debug messages, including child-process standard output and error output. |
Options may follow the data directory in any order. --mode is rejected for run relax and run skip.
Executable discovery
BingoRunner locates the executable directory in this order:
- The directory specified with
--bin. - The directory containing
BingoRunner.exe. Release\Bingo\binin a repository containing a development build of BingoRunner.
In a normal BINGO installation, keep BingoRunner.exe beside Relax.exe, BingoMP.exe, and Skip.exe; no --bin option is then required.
Installation diagnostics
Run doctor before configuring unattended processing:
.\BingoRunner.exe doctor
.\BingoRunner.exe doctor --bin "C:\Program Files\BINGO\bin"
The command checks these files:
Relax.exe,BingoMP.exe, andSkip.exeBgoResources.dll,clearwin64.dll,salflibc64.dll, andlibiomp5md.dllWibuCm64.dllin the Windows system directory
It also verifies that the bingo1pipe named pipe is available. A missing CodeMeter runtime is reported as a warning; missing BINGO executables, runtime libraries, or pipe availability cause the diagnostic to fail.
BingoRunner and the BINGO programs communicate through the shared bingo1pipe named pipe. Do not overlap a BingoRunner operation with another BingoRunner operation or a BINGO Manager processing run on the same computer.
Logging and timeouts
The default log is bingo-runner.log in the data directory. Use --log to select another path. The log records the executable, data directory, program messages, elapsed time, and interpreted exit code. For BINGO invocations, it also records the selected solver mode.
--timeout applies separately to each invocation of RELAX, BINGO, or SKIP. When a timeout expires, BingoRunner terminates the program and its child processes and returns exit code 32.
Exit codes
Treat both 0 and 2 as successful results. Code 2 indicates that a skip file was created or that SKIP updated the image coordinate file.
| Code | Meaning |
|---|---|
0 | Success |
2 | Success with a skip or update action |
10 | A BINGO program reported an error |
11 | License check failed |
20 | Invalid arguments |
21 | Data directory not found |
22 | Executable not found |
23 | BINGO bin directory not found |
24 | Required dependency missing |
30 | Named-pipe communication error |
31 | Program crashed or terminated unexpectedly |
32 | Program timeout |
99 | Unexpected BingoRunner error |
For example, a PowerShell automation can accept both successful outcomes and stop on any error:
& .\BingoRunner.exe pipeline "C:\BingoWork\ProjectX" --mode mp
if ($LASTEXITCODE -notin 0, 2) {
throw "BingoRunner failed with exit code $LASTEXITCODE"
}