Zum Hauptinhalt springen

BingoRunner

Run RELAX, BINGO, and SKIP from the command line

Sprache
Diese Programmhilfe ist derzeit nur auf Englisch verfügbar.

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

CommandDescription
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.
doctorCheck the BINGO executables, required runtime libraries, CodeMeter runtime, and named-pipe availability.
--helpDisplay command usage, options, and exit codes.
--versionDisplay 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:

  1. Run BINGO.
  2. Finish if skip.dat does not exist after BINGO.
  3. Run SKIP.
  4. 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.

ModeSolver
linearLinear solver
mpParallel CPU solver; this is the default
gpuGPU solver

An invalid mode is rejected before BINGO starts.

Options

OptionDescription
--project <file>Pass a project filename to each program. A relative path is resolved from the data directory.
--mode linear|mp|gpuSelect the BINGO solver mode. The default is mp.
--apply-skipFor 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.
--verboseInclude 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:

  1. The directory specified with --bin.
  2. The directory containing BingoRunner.exe.
  3. Release\Bingo\bin in 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, and Skip.exe
  • BgoResources.dll, clearwin64.dll, salflibc64.dll, and libiomp5md.dll
  • WibuCm64.dll in 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.

One operation at a time

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.

CodeMeaning
0Success
2Success with a skip or update action
10A BINGO program reported an error
11License check failed
20Invalid arguments
21Data directory not found
22Executable not found
23BINGO bin directory not found
24Required dependency missing
30Named-pipe communication error
31Program crashed or terminated unexpectedly
32Program timeout
99Unexpected 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"
}