{
  "kind": "hypothetical-arithmetic-only",
  "assumptions": [
    "Two nodes each have 4 identical whole GPUs",
    "Existing jobs are not moved",
    "Only count and same-node condition considered; no CPU/memory/network/priority/driver constraints"
  ],
  "cases": [
    {
      "name": "fragmented",
      "freeGpusPerNode": [
        2,
        2
      ],
      "requiredGpus": 4,
      "sameNodeRequired": true,
      "totalFree": 4,
      "gpuCountFeasible": false
    },
    {
      "name": "packed",
      "freeGpusPerNode": [
        0,
        4
      ],
      "requiredGpus": 4,
      "sameNodeRequired": true,
      "totalFree": 4,
      "gpuCountFeasible": true
    },
    {
      "name": "cross-node-allowed",
      "freeGpusPerNode": [
        2,
        2
      ],
      "requiredGpus": 4,
      "sameNodeRequired": false,
      "totalFree": 4,
      "gpuCountFeasible": true
    },
    {
      "name": "insufficient",
      "freeGpusPerNode": [
        1,
        2
      ],
      "requiredGpus": 4,
      "sameNodeRequired": false,
      "totalFree": 3,
      "gpuCountFeasible": false
    }
  ],
  "nominalMemoryGiB": {
    "total": 80,
    "perWorkload": 20,
    "workloads": 4,
    "throughputClaim": false
  },
  "runtime": "Python arithmetic; no GPU/Kubernetes/KAI/model execution"
}
