Systém / vývoj
AmiBenchmark
0.50.25a
Paralelní CPU benchmark založený na výpočtu spřátelených (amicable) čísel. Slouží k reprodukovatelnému porovnávání počítačů, ukládání výsledků a práci s benchmarkovými workloady; koncepčně předchází projektu DCBench.
Co projekt řeší
Paralelní CPU benchmark založený na výpočtu spřátelených (amicable) čísel. Slouží k reprodukovatelnému porovnávání počítačů, ukládání výsledků a práci s benchmarkovými workloady; koncepčně předchází projektu DCBench.
Typické použití
- Porovnání CPU a vícevláknového výkonu různých počítačů
- Opakované benchmark běhy s historií výsledků
- Export/import výsledků pro další analýzu
- Vývoj a ověřování dalších benchmark workloadů
Jak aplikace funguje a k čemu slouží
Přehled aplikace
AmiBenchmark je paralelní CPU benchmark navržený tak, aby šel používat jako performance diary i jako týmový leaderboard nástroj. Klíčová hodnota není jen samotné score, ale kombinace score + metodiky + podmínek měření.
- Reprodukovatelnost: profil, podmínky, 3-run medián, stejné parametry.
- Historie: centralizovaný záznam do SQLite s rozsáhlými metadaty.
- Sdílení: export pipeline (XLSX/TXT/JSON) a dedupe import.
- Rozšířitelnost: workload API kontrakt bez pádu celé aplikace.
Standardní workflow (operátor)
- Warm-up / dry run: krátký test funkčnosti grafické rozhraní, DB a exportů.
- Testovací běhy: minimálně 3 runy se stejným presetem.
- Medián: vyhodnocení přes medián, ne single run.
- Record: záznam do DB s profilem a podmínkami.
- Export: XLSX/TXT/JSON + volitelně grafy do share bundle.
Export / Import pipeline (XLSX/TXT/JSON)
- XLSX: primární týmový formát (filtrování, grafy, review).
- TXT: rychlý textový report.
- JSON: automatizace a skriptování.
- Import: validace + dedupe před zápisem do DB.
Troubleshooting (ops playbook)
| Symptom | Příčina / Řešení |
|---|---|
| Score výrazně kolísá | Power plan, throttling, background load, rozdílný preset. |
| DB locked | Více instancí nad jednou DB; použij jednu aktivní instanci. |
| Export XLSX selhává | Soubor je otevřený, práva/cesta, případně unicode path issue. |
| Workload shazuje app | Modul musí řešit výjimky a vracet error status. |
Recepty (provozní scénáře)
RECEPT 01 — Publikovat leaderboard pro tým
- Zvol preset (Standard/Stability/Efficiency).
- Proveď 3 běhy (nebo 1 dlouhý stability run).
- Ulož do DB (RECORD) a exportuj XLSX.
- Vytvoř share ZIP: XLSX + TXT + config snapshot + grafy.
- Aplikuj dedupe pravidla a naming konvenci.
RECEPT 02 — Undervolt A/B test (stability profil)
- Spusť baseline stability run bez UV.
- Spusť UV variantu se stejným presetem.
- Porovnej medián score, drift a thermal behavior.
- Zapiš podmínky (BIOS/power/chlazení) do poznámek.
RECEPT 03 — Nightly batch benchmark (dávkový režim)
- Naplánuj dávkový režim běh se stabilním presetem.
- Exportuj výsledky do staging složky.
- Validuj dedupe a teprve pak importuj do produkční DB.
RECEPT 04 — Sledovat performance drift po BIOS update
- Před update vytvoř referenční 3-run medián.
- Po update opakuj stejný preset i podmínky.
- Porovnej rozdíl score/elapsed/throughput a power profile.
RECEPT 05 — Porovnat power plans
- Stejný preset spusť v režimech Balanced/High Performance.
- Porovnej stabilitu i absolutní výkon.
- Použij výsledný plán pro standardizované týmové běhy.
RECEPT 06 — Workload modul validace
- Ověř a povinné entrypointy.
- Spusť test i record mód, ověř stop/progress callbacky.
- Zkontroluj, že chyby modulu neukončí host aplikaci.
FAQ (rozšířená provozní databáze otázek)
Metodika a férovost
- Jak často opakovat benchmark? Pro standard minimálně 3 běhy; pro stability minimálně 1 delší běh.
- Proč používat medián? Medián eliminuje jednorázové výkyvy způsobené background loadem.
- Mohu porovnávat battery vs AC? Ano, ale ne ve stejném leaderboardu.
- Jak určit referenční preset? Tým by měl publikovat fixní START/RANGE/CORES.
- Je score mezi verzemi kompatibilní? Obvykle ano, ale při změně algoritmu je nutná poznámka v reportu.
- Mám uvádět ambient teplotu? U delších runů ano, výrazně pomáhá interpretaci driftu.
- Kolik jader zvolit? Podle cíle: max výkon vs efektivita vs škálování.
- Co je minimální validní sada dat? Timestamp, preset, score, elapsed, CPU, OS.
- Kdy je běh neplatný? Při runtime chybě, nekonzistentních parametrech nebo silném externím zásahu.
- Mohu míchat různé BIOS verze? Ano, ale vždy je odděl ve výsledcích.
Technické otázky
- Co dělat při DB lock? Zavřít paralelní instance, zkontrolovat přístupová práva, opakovat operaci.
- Proč nefunguje export XLSX? Typicky otevřený cílový soubor nebo neplatná cesta.
- Jak ověřit dedupe importu? Import stejných dat by neměl navýšit počet unikátních řádků.
- Lze provozovat bez hudby? Ano, hudba je volitelná a nesmí blokovat benchmark.
- Kde se ukládá konfigurace? Do .
- Jak resetovat UI layout? Odstranit nebo upravit příslušné config klíče.
- Kde se ukládají výsledky? Do SQLite DB ().
- Je možné použít externí workload? Ano, při dodržení API kontraktu.
- Co když workload vyhodí exception? Má být zachycena modulem a vrácena jako error status.
- Jak často volat progress callback? Rozumně, typicky do 5×/s.
Výkonnostní analýza
- Jak poznám thermal throttle? Pokles throughput v poslední fázi běhu.
- Pomůže undervolt? Často ano, ale pouze pokud je stabilní.
- Může RAM ovlivnit score? Ano, zejména latence/frekvence při CPU-bound úlohách.
- Mám logovat power draw? Ano, pokud děláš efficiency profil.
- Jak posoudit stabilitu score? Sleduj rozptyl mezi opakováními a trend driftu.
- Kdy navýšit RANGE? Když je quick test příliš krátký na odhalení throttlingu.
- Je dobré vypnout HT/SMT? Jen v rámci A/B testu se stejnou metodikou.
- Co s outlier runem? Nezahazovat bez důvodu; nejdřív diagnostikovat.
- Jak porovnat různé OS? Uvést odděleně a nepoužívat společný baseline bez poznámky.
- Proč je score vysoké, ale elapsed také? Sleduj i throughput; score samo nestačí.
Data governance
- Jak zabránit duplicitám? Použít dedupe key a timestamp bucket.
- Jak označit testovací data? Přidej tag/preset a nepublikuj v oficiálním žebříčku.
- Mohu upravit historická data? Jen auditovatelně a s poznámkou důvodu.
- Jak chránit integritu DB? Pravidelné backupy a single-writer režim.
- Jak synchronizovat tým? Centrální šablona + jasná pravidla importu.
- Co při konfliktu datových polí? Normalizovat mapování a reimportovat.
- Jak řešit neznámé hodnoty? Použít null/empty konzistentně, ne ad-hoc text.
- Mám ukládat i systémové metadata? Ano, výrazně zvyšují analytickou hodnotu dat.
- Je vhodný JSON export? Ano pro automatizační pipeline.
- Jak auditovat import? Log počtu nových/duplicitních/odmítnutých řádků.
Rozšíření a údržba
- Jak přidat nový workload? Vytvořit modul s povinnými entrypointy.
- Musí workload vracet standardní strukturu? Ano, kvůli kompatibilitě grafické rozhraní/DB/exportu.
- Lze workload spouštět bez grafické rozhraní? Ano přes dávkový režim, pokud to modul podporuje.
- Jak řešit breaking change workloadu? Zvýšit verzi modulu a zachovat zpětné mapování.
- Jak testovat workload update? QA matrix + regresní dataset.
- Kde vést dokumentaci workloadu? README modulu + tato enterprise stránka.
- Jak držet lokalizaci konzistentní? Nové klíče přidat do obou jazyků a fallbacku.
- Kdy čistit staré exporty? Podle retention politiky týmu.
- Jak validovat release kandidáta? Acceptance kritéria v sekci QA protokoly.
- Co dělat při nejistotě výsledků? Opakovat testy v kontrolovaných podmínkách a přiložit poznámky.
