Кампания на пять равных долей: контейнер сразу считает свою часть

gen_scenarios.py раскладывает 115 прогонов по пяти долям (LPT, поправка
на размер сетки по замерам dzn) — по ≈24 ч каждая; поле shard в
scenarios.json. run_campaign.sh/.ps1 получили --shard. Новая точка входа
образа entrypoint.sh: при KBC2D_SHARD сама выбирает путь к карте (dzn
или NVIDIA), проверяет vulkaninfo и parity.py и запускает долю. Для
чужих ПК под Windows/WSL2 — docker-compose.shards.yml и shard.bat.
Образ notbigghost/kbc2d:1.3.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-01 20:15:40 +03:00
co-authored by Claude Opus 5.5
parent 3e81ed130c
commit 1d495e3e89
12 changed files with 582 additions and 130 deletions
+39
View File
@@ -0,0 +1,39 @@
@echo off
rem Запуск одной доли кампании kbc2d на этой машине: shard.bat 3
rem Нужны: драйвер видеокарты и Docker Desktop (бэкенд WSL2). Рядом должен лежать
rem docker-compose.shards.yml. Результаты появятся в папке out рядом с этим файлом.
chcp 65001 >nul
setlocal
cd /d "%~dp0"
set "N=%~1"
if "%N%"=="" goto usage
if "%N%"=="1" goto ok
if "%N%"=="2" goto ok
if "%N%"=="3" goto ok
if "%N%"=="4" goto ok
if "%N%"=="5" goto ok
:usage
echo Использование: shard.bat ^<номер доли 1..5^>
echo shard.bat 3 поднять долю 3 и смотреть её журнал
echo Остановить: docker compose -f docker-compose.shards.yml stop
exit /b 2
:ok
if not exist docker-compose.shards.yml (
echo Рядом с shard.bat нет docker-compose.shards.yml.
exit /b 1
)
docker info >nul 2>&1
if errorlevel 1 (
echo Docker не отвечает. Запустите Docker Desktop, дождитесь зелёного статуса и повторите.
exit /b 1
)
docker compose -f docker-compose.shards.yml up -d shard%N%
if errorlevel 1 exit /b 1
echo.
echo Доля %N% запущена и считает в фоне. Журнал ниже; Ctrl+C закрывает только журнал,
echo счёт продолжается. Результаты: %CD%\out
echo.
docker compose -f docker-compose.shards.yml logs -f shard%N%