Skip to content

Conversation

@TheBlackPlague
Copy link

@TheBlackPlague TheBlackPlague commented Jun 22, 2025

This pull request introduces a new Docker setup for the OpenBench Client, including a Dockerfile to define the build environment and a run.sh script to handle runtime configuration. The changes streamline the installation of dependencies and automate the client setup process.

The current Dockerfile installs the following compilers (and versions):

  • gcc / g++ (Latest paired with build-essential package - should be >= 13.0.0)
  • clang / clang++ (Major version: 20, Minor version: Latest)
  • dotnet (Major version: 9, Minor version: Latest)
  • rustc / cargo (Latest - 1.87.0 as of June 22nd, 2025)
  • zig (0.14.1)

For each compiler, perhaps we should specify the exact versions we install to avoid any behavioral changes. Would love to hear community consensus.

The current startup script uses the following thread formula:

N = Maximum number of Logical Processors
T = Assigned number of Logical Processors

T = N - 0.75 * sqrt(N)

This was suitable for the Verdict framework, as after extensive testing, these core counts ensure that cutechess-caused timeouts don't occur even at low time controls. However, the overall community may prefer a more aggressive formula.

Core pinning and frequency locking is not handled, as it is subject to the hypervisor OS and should be handled at container creation or startup time. Furthermore, although this script supports multi-socket operation, it is likely not appropriately configured, and containers should not be deployed across multiple sockets. It's hard to do this reliably within a container.

Co-authored-by: Eduardo Cáceres <eduherminio@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants