Skip to content

26040: Detect compute limitations/configurations - MINOR - #737

Merged
mkoistinen merged 9 commits into
mainfrom
26040-detect-core-parking-configurations
Sep 23, 2026
Merged

mkoistinen merged 9 commits into
mainfrom
26040-detect-core-parking-configurations

Conversation

@mkoistinen

@mkoistinen mkoistinen commented Sep 22, 2026

Copy link
Copy Markdown
Member

Add checks for situations where the available compute may be different than accessible compute and CPU affinity/visibility checks to installation_verification. These are always warnings, never errors and are meant to head off complicated diagnosis of poor performance caused by customer hardware configurations.

  • Split installation_verification.py (~2,000 lines) into a package of focused modules; the package now exports only main. The supported interfaces are unchanged: the verify_howso_install console script and python -m howso.utilities.installation_verification
  • Add check_low_priority_compute ("Python: Low-priority CPU access"): warns if invoked below Normal priority, since the comparison is meaningless from there; otherwise compares throughput and CPU affinity against a child process created below Normal priority. Windows only
  • Add check_usable_cpus ("Python: Usable CPUs"): warns when the process may use fewer CPUs than the system reports, from an affinity mask, a cpuset, or Windows confining a process to one processor group. Windows and Linux
  • Add check_cpu_steal ("Python: CPU steal time"): reports CPU time taken by a hypervisor, warning above 10%. Linux only, and silent on bare metal
  • Add check_visible_cores ("Howso Client: Visible CPUs"): reports the CPU count Python and Howso Engine™ each see, and warns when they disagree — usually a max_num_threads value set in the Howso configuration
  • Suppress the client's own progress rendering for the duration of the checks, including inside spawned child processes, which do not inherit it
  • Fall back from "™" to "(tm)" where the console cannot render it, applied at the output funnels so every message is covered
  • Refer to "Howso Engine™" rather than "the Engine" in user-facing messages
  • Promotes "Howso™" -> "Howso®" and handles the fallbacks
  • Fix check_latency defaults so the NOTICE branch is reachable
  • Add a timeout to the tzdata child; drop its unreachable result is None branch
  • Import requests ConnectionError under an alias; stop shadowing the builtin
  • Modernize annotations: PEP 604 unions, direct typing imports
  • Make log timestamps tz-aware; use time.monotonic() for the sampling deadline
  • Add tests/test_installation_verification.py (83 tests)

All unit tests (old and new pass). Also tested the new functionality on a real Windows Server 2022 and verified functionality (except the one that requires more than 64 cores).

@mkoistinen
mkoistinen requested review from a team as code owners September 22, 2026 22:10
@mkoistinen mkoistinen changed the title 26040: Detect core parking configurations 26040: Detect compute limitations/configurations - MINOR Sep 23, 2026
@mkoistinen
mkoistinen merged commit 43fcd29 into main Sep 23, 2026
42 checks passed
@mkoistinen
mkoistinen deleted the 26040-detect-core-parking-configurations branch September 23, 2026 21:51
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