Skip to content

workload_profiles

sc_crawler.workload_profiles #

Workload profile definitions for compound benchmark scoring.

Each workload profile is a weighted combination of benchmark scores that represents a specific real-world usage pattern. Scores are normalised to [0, 1] across all servers and aggregated as a weighted mean.

Weights within each workload sum to 1.0.

Classes:

Name Description
BenchmarkEntry

A single benchmark component contributing to a workload profile score.

Workload

A named workload profile composed of weighted benchmark entries.

Attributes:

Name Type Description
WORKLOADS dict[str, Workload]

Workload profile definitions keyed by workload ID.

BenchmarkEntry #

Bases: BaseModel

A single benchmark component contributing to a workload profile score.

Attributes:

Name Type Description
benchmark_id str

The benchmark ID of a BenchmarkScore.

weight float

Relative weight of this component. Weights within a workload sum to 1.0.

label str

Human-readable description of what this component measures.

config_filter dict[str, Any] | None

Optional filter applied to the benchmark's config JSON column.

Source code in sc_crawler/workload_profiles.py
class BenchmarkEntry(BaseModel):
    """A single benchmark component contributing to a workload profile score."""

    benchmark_id: str
    """The benchmark ID of a BenchmarkScore."""
    weight: float
    """Relative weight of this component. Weights within a workload sum to 1.0."""
    label: str
    """Human-readable description of what this component measures."""
    config_filter: dict[str, Any] | None = None
    """Optional filter applied to the benchmark's config JSON column."""

    model_config = ConfigDict(frozen=True)

benchmark_id instance-attribute #

benchmark_id

The benchmark ID of a BenchmarkScore.

weight instance-attribute #

weight

Relative weight of this component. Weights within a workload sum to 1.0.

label instance-attribute #

label

Human-readable description of what this component measures.

config_filter class-attribute instance-attribute #

config_filter = None

Optional filter applied to the benchmark's config JSON column.

Workload #

Bases: BaseModel

A named workload profile composed of weighted benchmark entries.

Attributes:

Name Type Description
name str

Short human-readable name, e.g. 'Web server'.

version str

Workload profile version.

rationale str

Explanation of which benchmarks were chosen and why.

benchmarks list[BenchmarkEntry]

Ordered list of benchmark components with weights.

Source code in sc_crawler/workload_profiles.py
class Workload(BaseModel):
    """A named workload profile composed of weighted benchmark entries."""

    name: str
    """Short human-readable name, e.g. 'Web server'."""
    version: str
    """Workload profile version."""
    rationale: str
    """Explanation of which benchmarks were chosen and why."""
    benchmarks: list[BenchmarkEntry]
    """Ordered list of benchmark components with weights."""

name instance-attribute #

name

Short human-readable name, e.g. 'Web server'.

version instance-attribute #

version

Workload profile version.

rationale instance-attribute #

rationale

Explanation of which benchmarks were chosen and why.

benchmarks instance-attribute #

benchmarks

Ordered list of benchmark components with weights.

WORKLOADS module-attribute #

WORKLOADS = {'web': Workload(name='Web server', version='1.0', rationale='Primary workloads drivers are HTTP serving speed and throughput, HTML and text processing, TLS termination, and asset compression.', benchmarks=[BenchmarkEntry(benchmark_id='static_web:rps-extrapolated', weight=0.25, label='Static web RPS (1 kB, 8 conn/vCPU)', config_filter={'size': '1k', 'connections_per_vcpus': 8.0}), BenchmarkEntry(benchmark_id='static_web:rps-extrapolated', weight=0.15, label='Static web RPS (64 kB, 8 conn/vCPU)', config_filter={'size': '64k', 'connections_per_vcpus': 8.0}), BenchmarkEntry(benchmark_id='static_web:throughput-extrapolated', weight=0.15, label='Static web throughput (256 kB, 8 conn/vCPU)', config_filter={'size': '256k', 'connections_per_vcpus': 8.0}), BenchmarkEntry(benchmark_id='geekbench:html5_browser', weight=0.1, label='Geekbench HTML5 browser (multi-core)', config_filter={'cores': 'multi'}), BenchmarkEntry(benchmark_id='geekbench:text_processing', weight=0.05, label='Geekbench text processing (multi-core)', config_filter={'cores': 'multi'}), BenchmarkEntry(benchmark_id='openssl', weight=0.1, label='OpenSSL AES-256-CBC (16 kB blocks)', config_filter={'algo': 'AES-256-CBC', 'block_size': 16384}), BenchmarkEntry(benchmark_id='passmark:cpu_encryption_test', weight=0.1, label='PassMark encryption (AES/SHA/ECDSA)'), BenchmarkEntry(benchmark_id='passmark:cpu_string_sorting_test', weight=0.05, label='PassMark string sorting'), BenchmarkEntry(benchmark_id='passmark:memory_read_cached', weight=0.05, label='PassMark cached memory reads')]), 'compute': Workload(name='Compute heavy', version='1.0', rationale='Number-crunching workload augmenting raw CPU performance stressing, general CPU performance benchmarks, memory bandwidth, and pure math computation speed like floating point, integer, SIMD (AVX/SSE/FMA) operations.', benchmarks=[BenchmarkEntry(benchmark_id='stress_ng:bestn', weight=0.15, label='stress-ng div16 best-N cores'), BenchmarkEntry(benchmark_id='stress_ng:best1', weight=0.1, label='stress-ng div16 single core'), BenchmarkEntry(benchmark_id='passmark:cpu_mark', weight=0.1, label='PassMark CPU Mark (composite)'), BenchmarkEntry(benchmark_id='geekbench:score', weight=0.1, label='Geekbench score (multi-core)', config_filter={'cores': 'multi'}), BenchmarkEntry(benchmark_id='bw_mem', weight=0.1, label='Memory bandwidth (read, 64 MB)', config_filter={'operation': 'rd', 'size': 64.0}), BenchmarkEntry(benchmark_id='passmark:cpu_floating_point_maths_test', weight=0.15, label='PassMark floating point'), BenchmarkEntry(benchmark_id='passmark:cpu_extended_instructions_test', weight=0.15, label='PassMark AVX/SSE/FMA (SIMD)'), BenchmarkEntry(benchmark_id='passmark:cpu_integer_maths_test', weight=0.1, label='PassMark integer math'), BenchmarkEntry(benchmark_id='passmark:cpu_physics_test', weight=0.05, label='PassMark physics simulation')]), 'cache': Workload(name='Cache intensive', version='1.0', rationale='In-memory key-value store workload, mixing direct Redis performance metrics with memory speed and latency benchmarks, and single-core CPU performance profiles.', benchmarks=[BenchmarkEntry(benchmark_id='redis:rps-extrapolated', weight=0.25, label='Redis RPS (pipeline=1, SET)', config_filter={'operation': 'SET', 'pipeline': 1.0}), BenchmarkEntry(benchmark_id='redis:rps-extrapolated', weight=0.1, label='Redis RPS (pipeline=16, SET)', config_filter={'operation': 'SET', 'pipeline': 16.0}), BenchmarkEntry(benchmark_id='redis:latency', weight=0.1, label='Redis latency (pipeline=1, SET)', config_filter={'operation': 'SET', 'pipeline': 1.0}), BenchmarkEntry(benchmark_id='passmark:memory_latency', weight=0.1, label='PassMark memory latency (512 MB)'), BenchmarkEntry(benchmark_id='passmark:memory_mark', weight=0.1, label='PassMark Memory Mark (composite)'), BenchmarkEntry(benchmark_id='passmark:memory_read_cached', weight=0.1, label='PassMark cached memory reads'), BenchmarkEntry(benchmark_id='bw_mem', weight=0.1, label='Memory bandwidth (read, 16 MB ~ L3)', config_filter={'operation': 'rd', 'size': 16.0}), BenchmarkEntry(benchmark_id='passmark:cpu_single_threaded_test', weight=0.1, label='PassMark single-thread CPU'), BenchmarkEntry(benchmark_id='passmark:database_operations', weight=0.05, label='PassMark in-memory DB operations')]), 'llm': Workload(name='LLM inference', version='1.0', rationale='VRAM and memory-bandwidth-bound LLM inference workload, using direct LLM speed benchmarks at two model sizes, and supplementing with raw memory bandwidth, SIMD, and Geekbench vision workloads that exercise ML-style pipelines.', benchmarks=[BenchmarkEntry(benchmark_id='llm_speed:text_generation', weight=0.2, label='LLM text generation (llama-7b, 128 tok)', config_filter={'model': 'llama-7b.Q4_K_M.gguf', 'tokens': 128}), BenchmarkEntry(benchmark_id='llm_speed:prompt_processing', weight=0.1, label='LLM prompt processing (llama-7b, 512 tok)', config_filter={'model': 'llama-7b.Q4_K_M.gguf', 'tokens': 512}), BenchmarkEntry(benchmark_id='llm_speed:text_generation', weight=0.1, label='LLM text generation (gemma-2b, 128 tok)', config_filter={'model': 'gemma-2b.Q4_K_M.gguf', 'tokens': 128}), BenchmarkEntry(benchmark_id='passmark:memory_mark', weight=0.1, label='PassMark Memory Mark (composite)'), BenchmarkEntry(benchmark_id='bw_mem', weight=0.15, label='Memory bandwidth (read, 256 MB)', config_filter={'operation': 'rd', 'size': 256.0}), BenchmarkEntry(benchmark_id='passmark:cpu_extended_instructions_test', weight=0.1, label='PassMark AVX/SSE/FMA (SIMD)'), BenchmarkEntry(benchmark_id='passmark:cpu_floating_point_maths_test', weight=0.05, label='PassMark floating point'), BenchmarkEntry(benchmark_id='geekbench:object_detection', weight=0.1, label='Geekbench object detection (multi-core)', config_filter={'cores': 'multi'}), BenchmarkEntry(benchmark_id='geekbench:background_blur', weight=0.05, label='Geekbench background blur (multi-core)', config_filter={'cores': 'multi'}), BenchmarkEntry(benchmark_id='geekbench:structure_from_motion', weight=0.05, label='Geekbench structure-from-motion (multi-core)', config_filter={'cores': 'multi'})]), 'cicd': Workload(name='CI/CD build', version='1.0', rationale='Build performance is driven by single- and multi-core compilation throughput, single-core CPU performance, multi-core compression and text/scripting processing.', benchmarks=[BenchmarkEntry(benchmark_id='geekbench:clang', weight=0.25, label='Geekbench Clang compilation (multi-core)', config_filter={'cores': 'multi'}), BenchmarkEntry(benchmark_id='geekbench:clang', weight=0.1, label='Geekbench Clang compilation (single-core)', config_filter={'cores': 'single'}), BenchmarkEntry(benchmark_id='passmark:cpu_single_threaded_test', weight=0.15, label='PassMark single-thread CPU'), BenchmarkEntry(benchmark_id='passmark:cpu_compression_test', weight=0.1, label='PassMark compression'), BenchmarkEntry(benchmark_id='passmark:cpu_integer_maths_test', weight=0.1, label='PassMark integer math'), BenchmarkEntry(benchmark_id='geekbench:text_processing', weight=0.1, label='Geekbench text processing (multi-core)', config_filter={'cores': 'multi'}), BenchmarkEntry(benchmark_id='stress_ng:bestn', weight=0.05, label='stress-ng div16 best-N cores'), BenchmarkEntry(benchmark_id='geekbench:file_compression', weight=0.05, label='Geekbench file compression (multi-core)', config_filter={'cores': 'multi'}), BenchmarkEntry(benchmark_id='compression_text:compress', weight=0.05, label='Brotli compression (single-thread, level 0)', config_filter={'algo': 'brotli', 'compression_level': 0, 'cores': 'single'}), BenchmarkEntry(benchmark_id='passmark:cpu_string_sorting_test', weight=0.05, label='PassMark string sorting')])}

Workload profile definitions keyed by workload ID.