{
  "chart": "s2s-chart/1",
  "kind": "bars",
  "title": "Should I raise the thread count? Writing speed at the default and one other setting",
  "subtitle": "Tokens a second while writing at Ollama's default thread count and at one other setting, named in each heading; a longer bar writes faster.",
  "unit": "tok/s",
  "series": [
    "Default threads",
    "The other setting (in the heading)"
  ],
  "panels": [
    {
      "heading": "Laptop: 4 → 20 threads (more)",
      "rows": [
        {
          "label": "qwen3.5:9b",
          "notes": "",
          "values": [
            {
              "value": "7.45",
              "source": "/two-hours-on-battery/data/runs/cpu-laptop-m1.json derived.decode_tok_s.median 7.45"
            },
            {
              "value": "13.05",
              "source": "/two-hours-on-battery/data/supplement-runs/tuned-cpu-laptop-m1.json derived.decode_tok_s.median 13.052 (num_thread 20)"
            }
          ]
        },
        {
          "label": "gemma4:12b",
          "notes": "",
          "values": [
            {
              "value": "4.95",
              "source": "/two-hours-on-battery/data/runs/cpu-laptop-m2.json derived.decode_tok_s.median 4.951"
            },
            {
              "value": "9.46",
              "source": "/two-hours-on-battery/data/supplement-runs/tuned-cpu-laptop-m2.json derived.decode_tok_s.median 9.464 (num_thread 20)"
            }
          ]
        },
        {
          "label": "phi4:14b",
          "notes": "",
          "values": [
            {
              "value": "4.41",
              "source": "/two-hours-on-battery/data/runs/cpu-laptop-m3.json derived.decode_tok_s.median 4.414"
            },
            {
              "value": "8.21",
              "source": "/two-hours-on-battery/data/supplement-runs/tuned-cpu-laptop-m3.json derived.decode_tok_s.median 8.213 (num_thread 20)"
            }
          ]
        },
        {
          "label": "mistral-small3.2",
          "notes": "",
          "values": [
            {
              "value": "2.70",
              "source": "/two-hours-on-battery/data/runs/cpu-laptop-m4.json derived.decode_tok_s.median 2.702"
            },
            {
              "value": "5.14",
              "source": "/two-hours-on-battery/data/supplement-runs/tuned-cpu-laptop-m4.json derived.decode_tok_s.median 5.14 (num_thread 20)"
            }
          ]
        },
        {
          "label": "gemma4:26b",
          "notes": "",
          "values": [
            {
              "value": "13.26",
              "source": "/two-hours-on-battery/data/runs/cpu-laptop-m5.json derived.decode_tok_s.median 13.258"
            },
            {
              "value": "8.44",
              "source": "/two-hours-on-battery/data/supplement-runs/tuned-cpu-laptop-m5.json derived.decode_tok_s.median 8.438 (num_thread 20)"
            }
          ]
        },
        {
          "label": "Nemotron 30B-A3B",
          "notes": "",
          "values": [
            {
              "value": "15.35",
              "source": "/two-hours-on-battery/data/runs/cpu-laptop-m6.json derived.decode_tok_s.median 15.35"
            },
            {
              "value": "8.53",
              "source": "/two-hours-on-battery/data/supplement-runs/tuned-cpu-laptop-m6.json derived.decode_tok_s.median 8.529 (num_thread 20)"
            }
          ]
        }
      ]
    },
    {
      "heading": "Mini PC: 4 → 12 threads (more)",
      "rows": [
        {
          "label": "qwen3.5:9b",
          "notes": "",
          "values": [
            {
              "value": "9.11",
              "source": "/two-hours-on-battery/data/runs/cpu-mini-m1.json derived.decode_tok_s.median 9.105"
            },
            {
              "value": "10.12",
              "source": "/two-hours-on-battery/data/supplement-runs/tuned-cpu-mini-m1.json derived.decode_tok_s.median 10.12 (num_thread 12)"
            }
          ]
        },
        {
          "label": "gemma4:12b",
          "notes": "",
          "values": [
            {
              "value": "5.95",
              "source": "/two-hours-on-battery/data/runs/cpu-mini-m2.json derived.decode_tok_s.median 5.945"
            },
            {
              "value": "7.10",
              "source": "/two-hours-on-battery/data/supplement-runs/tuned-cpu-mini-m2.json derived.decode_tok_s.median 7.102 (num_thread 12)"
            }
          ]
        },
        {
          "label": "phi4:14b",
          "notes": "",
          "values": [
            {
              "value": "5.20",
              "source": "/two-hours-on-battery/data/runs/cpu-mini-m3.json derived.decode_tok_s.median 5.197"
            },
            {
              "value": "6.36",
              "source": "/two-hours-on-battery/data/supplement-runs/tuned-cpu-mini-m3.json derived.decode_tok_s.median 6.357 (num_thread 12)"
            }
          ]
        },
        {
          "label": "mistral-small3.2",
          "notes": "",
          "values": [
            {
              "value": "3.31",
              "source": "/two-hours-on-battery/data/runs/cpu-mini-m4.json derived.decode_tok_s.median 3.313"
            },
            {
              "value": "3.99",
              "source": "/two-hours-on-battery/data/supplement-runs/tuned-cpu-mini-m4.json derived.decode_tok_s.median 3.987 (num_thread 12)"
            }
          ]
        },
        {
          "label": "gemma4:26b",
          "notes": "",
          "values": [
            {
              "value": "12.66",
              "source": "/two-hours-on-battery/data/runs/cpu-mini-m5.json derived.decode_tok_s.median 12.657"
            },
            {
              "value": "7.42",
              "source": "/two-hours-on-battery/data/supplement-runs/tuned-cpu-mini-m5.json derived.decode_tok_s.median 7.415 (num_thread 12)"
            }
          ]
        },
        {
          "label": "Nemotron 30B-A3B",
          "notes": "",
          "values": [
            {
              "value": "14.61",
              "source": "/two-hours-on-battery/data/runs/cpu-mini-m6.json derived.decode_tok_s.median 14.605"
            },
            {
              "value": "7.32",
              "source": "/two-hours-on-battery/data/supplement-runs/tuned-cpu-mini-m6.json derived.decode_tok_s.median 7.315 (num_thread 12)"
            }
          ]
        }
      ]
    },
    {
      "heading": "Ryzen 7 3700X: 8 → 4 threads (FEWER)",
      "rows": [
        {
          "label": "gemma4:26b",
          "notes": "",
          "values": [
            {
              "value": "13.64",
              "source": "/speeds-from-ram-alone/data/two-channel-desktop/summary.json arms[0].decode_median 13.642"
            },
            {
              "value": "11.92",
              "source": "/speeds-from-ram-alone/data/two-channel-desktop/summary.json arms[2].decode_median 11.919 (4 threads)"
            }
          ]
        },
        {
          "label": "mistral-small3.2",
          "notes": "",
          "values": [
            {
              "value": "2.57",
              "source": "/speeds-from-ram-alone/data/two-channel-desktop/summary.json arms[1].decode_median 2.569"
            },
            {
              "value": "2.67",
              "source": "/speeds-from-ram-alone/data/two-channel-desktop/summary.json arms[3].decode_median 2.669 (4 threads)"
            }
          ]
        }
      ]
    }
  ],
  "source": "The battery page's kit: runs/cpu-laptop-m1…m6.json and cpu-mini-m1…m6.json (the default bars) beside supplement-runs/tuned-cpu-laptop-m*.json (num_thread 20) and tuned-cpu-mini-m*.json (num_thread 12), derived.decode_tok_s.median. Exhibit 105's kit: two-channel-desktop/summary.json arms[0..3].decode_median. Table T5."
}
