Baz00k@
Ikona AmiBenchmark
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)

  1. Warm-up / dry run: krátký test funkčnosti grafické rozhraní, DB a exportů.
  2. Testovací běhy: minimálně 3 runy se stejným presetem.
  3. Medián: vyhodnocení přes medián, ne single run.
  4. Record: záznam do DB s profilem a podmínkami.
  5. 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)

SymptomPříčina / Řešení
Score výrazně kolísáPower plan, throttling, background load, rozdílný preset.
DB lockedVí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 appModul musí řešit výjimky a vracet error status.

Recepty (provozní scénáře)

RECEPT 01 — Publikovat leaderboard pro tým

  1. Zvol preset (Standard/Stability/Efficiency).
  2. Proveď 3 běhy (nebo 1 dlouhý stability run).
  3. Ulož do DB (RECORD) a exportuj XLSX.
  4. Vytvoř share ZIP: XLSX + TXT + config snapshot + grafy.
  5. Aplikuj dedupe pravidla a naming konvenci.

RECEPT 02 — Undervolt A/B test (stability profil)

  1. Spusť baseline stability run bez UV.
  2. Spusť UV variantu se stejným presetem.
  3. Porovnej medián score, drift a thermal behavior.
  4. Zapiš podmínky (BIOS/power/chlazení) do poznámek.

RECEPT 03 — Nightly batch benchmark (dávkový režim)

  1. Naplánuj dávkový režim běh se stabilním presetem.
  2. Exportuj výsledky do staging složky.
  3. Validuj dedupe a teprve pak importuj do produkční DB.

RECEPT 04 — Sledovat performance drift po BIOS update

  1. Před update vytvoř referenční 3-run medián.
  2. Po update opakuj stejný preset i podmínky.
  3. Porovnej rozdíl score/elapsed/throughput a power profile.

RECEPT 05 — Porovnat power plans

  1. Stejný preset spusť v režimech Balanced/High Performance.
  2. Porovnej stabilitu i absolutní výkon.
  3. Použij výsledný plán pro standardizované týmové běhy.

RECEPT 06 — Workload modul validace

  1. Ověř a povinné entrypointy.
  2. Spusť test i record mód, ověř stop/progress callbacky.
  3. Zkontroluj, že chyby modulu neukončí host aplikaci.

FAQ (rozšířená provozní databáze otázek)

Metodika a férovost

  1. Jak často opakovat benchmark? Pro standard minimálně 3 běhy; pro stability minimálně 1 delší běh.
  2. Proč používat medián? Medián eliminuje jednorázové výkyvy způsobené background loadem.
  3. Mohu porovnávat battery vs AC? Ano, ale ne ve stejném leaderboardu.
  4. Jak určit referenční preset? Tým by měl publikovat fixní START/RANGE/CORES.
  5. Je score mezi verzemi kompatibilní? Obvykle ano, ale při změně algoritmu je nutná poznámka v reportu.
  6. Mám uvádět ambient teplotu? U delších runů ano, výrazně pomáhá interpretaci driftu.
  7. Kolik jader zvolit? Podle cíle: max výkon vs efektivita vs škálování.
  8. Co je minimální validní sada dat? Timestamp, preset, score, elapsed, CPU, OS.
  9. Kdy je běh neplatný? Při runtime chybě, nekonzistentních parametrech nebo silném externím zásahu.
  10. Mohu míchat různé BIOS verze? Ano, ale vždy je odděl ve výsledcích.

Technické otázky

  1. Co dělat při DB lock? Zavřít paralelní instance, zkontrolovat přístupová práva, opakovat operaci.
  2. Proč nefunguje export XLSX? Typicky otevřený cílový soubor nebo neplatná cesta.
  3. Jak ověřit dedupe importu? Import stejných dat by neměl navýšit počet unikátních řádků.
  4. Lze provozovat bez hudby? Ano, hudba je volitelná a nesmí blokovat benchmark.
  5. Kde se ukládá konfigurace? Do .
  6. Jak resetovat UI layout? Odstranit nebo upravit příslušné config klíče.
  7. Kde se ukládají výsledky? Do SQLite DB ().
  8. Je možné použít externí workload? Ano, při dodržení API kontraktu.
  9. Co když workload vyhodí exception? Má být zachycena modulem a vrácena jako error status.
  10. Jak často volat progress callback? Rozumně, typicky do 5×/s.

Výkonnostní analýza

  1. Jak poznám thermal throttle? Pokles throughput v poslední fázi běhu.
  2. Pomůže undervolt? Často ano, ale pouze pokud je stabilní.
  3. Může RAM ovlivnit score? Ano, zejména latence/frekvence při CPU-bound úlohách.
  4. Mám logovat power draw? Ano, pokud děláš efficiency profil.
  5. Jak posoudit stabilitu score? Sleduj rozptyl mezi opakováními a trend driftu.
  6. Kdy navýšit RANGE? Když je quick test příliš krátký na odhalení throttlingu.
  7. Je dobré vypnout HT/SMT? Jen v rámci A/B testu se stejnou metodikou.
  8. Co s outlier runem? Nezahazovat bez důvodu; nejdřív diagnostikovat.
  9. Jak porovnat různé OS? Uvést odděleně a nepoužívat společný baseline bez poznámky.
  10. Proč je score vysoké, ale elapsed také? Sleduj i throughput; score samo nestačí.

Data governance

  1. Jak zabránit duplicitám? Použít dedupe key a timestamp bucket.
  2. Jak označit testovací data? Přidej tag/preset a nepublikuj v oficiálním žebříčku.
  3. Mohu upravit historická data? Jen auditovatelně a s poznámkou důvodu.
  4. Jak chránit integritu DB? Pravidelné backupy a single-writer režim.
  5. Jak synchronizovat tým? Centrální šablona + jasná pravidla importu.
  6. Co při konfliktu datových polí? Normalizovat mapování a reimportovat.
  7. Jak řešit neznámé hodnoty? Použít null/empty konzistentně, ne ad-hoc text.
  8. Mám ukládat i systémové metadata? Ano, výrazně zvyšují analytickou hodnotu dat.
  9. Je vhodný JSON export? Ano pro automatizační pipeline.
  10. Jak auditovat import? Log počtu nových/duplicitních/odmítnutých řádků.

Rozšíření a údržba

  1. Jak přidat nový workload? Vytvořit modul s povinnými entrypointy.
  2. Musí workload vracet standardní strukturu? Ano, kvůli kompatibilitě grafické rozhraní/DB/exportu.
  3. Lze workload spouštět bez grafické rozhraní? Ano přes dávkový režim, pokud to modul podporuje.
  4. Jak řešit breaking change workloadu? Zvýšit verzi modulu a zachovat zpětné mapování.
  5. Jak testovat workload update? QA matrix + regresní dataset.
  6. Kde vést dokumentaci workloadu? README modulu + tato enterprise stránka.
  7. Jak držet lokalizaci konzistentní? Nové klíče přidat do obou jazyků a fallbacku.
  8. Kdy čistit staré exporty? Podle retention politiky týmu.
  9. Jak validovat release kandidáta? Acceptance kritéria v sekci QA protokoly.
  10. Co dělat při nejistotě výsledků? Opakovat testy v kontrolovaných podmínkách a přiložit poznámky.