logicsrc/apps/logicsrc-web/src/app/opencpu/page.tsx
Anthony Ettinger 66ef39cda6 docs: OpenCPU, OpenMemory, OpenGPU and OpenBandwidth, the resources of a server purchase
Four resource specifications under OpenServer, one per thing that is
negotiable when a server is bought. Each is the block of an OpenServer
offer (compute, memory, gpu, network) written down on its own, with the
units OpenServer 0.1 already uses (vcpu, cores, ram_mb, vram_mb,
bandwidth_mbps, transfer_gb, ipv4, ipv6) and one new shape shared by all
four: `range`, the field a buyer can dial at checkout, its bounds, the
step and what a step costs on top of the base price.

- OpenCPU: threads against cores, the processor by its vendor name,
  dedicated, shared or burstable allocation.
- OpenMemory: mebibytes, DDR generation, ECC as three states, reserved,
  balloonable or shared; wins over compute.ram_mb when both are present.
- OpenGPU: the card by its vendor name, count and VRAM per device,
  interconnect, passthrough, MIG, vGPU or shared access.
- OpenBandwidth: port, four meters (transfer, unmetered, percentile,
  flat), overage, IPv4 and IPv6 addresses as a priced resource.

A provider that sells only one resource lists it as an OpenServer offer
and may serve the same document at /.well-known/<slug>.json. Landing
pages share one component (resource-spec-page.tsx). Registered in
DOC_SLUGS, NAV, STATIC_ROUTES and llms.txt. OpenServer, OpenFile and
OpenDisk arrive in sibling PRs.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014cmNRtR2vL1p89dbVQ7FZJ
2026-09-13 01:38:19 +00:00

61 lines
3.3 KiB
TypeScript

import type { ReactNode } from "react";
import type { Metadata } from "next";
import { ResourceSpecPage, type ResourceSpec } from "@/components/resource-spec-page";
export const metadata: Metadata = {
title: "OpenCPU · LogicSRC",
description:
"OpenCPU is the compute block of an OpenServer offer: threads against cores, the processor by its vendor name, dedicated, shared or burstable allocation, and a range that says how many more a buyer can add at checkout and for how much.",
alternates: { canonical: "/opencpu" }
};
const SPEC: ResourceSpec = {
name: "OpenCPU",
slug: "opencpu",
block: "compute",
tagline:
"The processor line of a server purchase, with the words fixed: threads or cores, whose they are, and what one more costs.",
problem:
"Four vCPU on one pricing page is four hyperthreads of a shared socket, throttled at a fifth of sustained load. On the next it is four dedicated cores with the boost clock quoted. A comparison site sorts both on the number four, and the buyer who wanted the second pays for the first. A configurator that offers three processors at three prices keeps that choice in a form where no reader can see it.",
sample: `{
"compute": {
"vcpu": 4,
"cores": 2,
"threads_per_core": 2,
"arch": "x86_64",
"model": "AMD EPYC 9354",
"vendor": "AMD",
"base_ghz": 3.25,
"boost_ghz": 3.75,
"allocation": "dedicated",
"range": {
"key": "vcpu", "min": 2, "max": 32, "step": 2,
"price": { "amount": 4, "currency": "USD", "interval": "month", "per": 1 }
}
}
}`,
smallest: `{ "compute": { "vcpu": 4 } }`,
fields: [
["vcpu / cores", "integer, one required", "Threads sold to the guest, or physical cores. threads_per_core relates them; a reader never derives one from the other without it."],
["arch", "x86_64, arm64, riscv64, or the provider's word", "Absent means unstated, not x86."],
["model, vendor", "the vendor's own name", "AMD EPYC 9354, Ampere Altra Max. Kept verbatim so a buyer can look it up."],
["base_ghz, boost_ghz, sockets", "decimal GHz, integer", "The vendor's figures, not a measurement."],
["allocation", "dedicated, shared, burstable", "Reserved for the buyer, oversubscribed, or shared with a credit balance (credits_per_hour, baseline_pct)."],
["range", "key, min, max, step, price", "What the buyer can dial at checkout and what each step costs on top of the base price."]
],
directory: [
["Two columns", "vcpu and cores are sorted separately; a row with neither is listed and marked unstated."],
["Allocation beside the count", "Four dedicated threads and four shared ones are different products at the same number."],
["Price the range", "Base price plus the per-step price, so 8 vCPU reads as base plus four steps."],
["Keep the model string", "Normalise for search, display the vendor's spelling."]
],
absent: [
["No benchmarks", "Clock figures are the vendor's. A measured score is another document's business."],
["No instruction-set flags", "AVX-512, SVE and the rest: look up model. A provider that wants them states them under its own key."],
["No scheduling guarantees", "Pinning, NUMA and latency are the provider's terms, linked from the offer's url."]
]
};
export default function OpenCpuPage(): ReactNode {
return <ResourceSpecPage spec={SPEC} />;
}