Skip to content

What does an H100 or B200 hour cost per finished job?

Sticker price per GPU-hour vs cost per finished job on H100 and B200: startup, idle time, redone work, storage and egress, with a worked 8-GPU example.

An H100 or B200 hour costs its listed rate only while it does useful work; per finished job you also pay for startup, idle time and any work redone after a failure. In our worked 8 x H100 example those extras add 2.5% to 12.5% before anything breaks, and Nodus was lowest per finished job for both GPUs among the five options we priced. A B200 is only cheaper than an H100 if it finishes the job faster than its price ratio, which ranged from 1.58x to 2.22x.

Why is the cheapest hourly rate not the cheapest job?

Section titled “Why is the cheapest hourly rate not the cheapest job?”

The hourly rate is one input. The bill is the rate multiplied by hours you did not plan to pay for.

We use one formula for every option.

cost per finished job = rate x GPUs x (training hours + startup + idle tail + redone hours) + storage + egress

The idle tail depends on how a platform bills. Instance-style platforms charge until you shut the machine down. Lambda bills instances in one-minute increments. Its billing docs say they are billed “for as long as they’re running, regardless if they’re actively being used.” RunPod’s Pod pricing docs say Pods are billed by the second for compute and storage, which also runs until the Pod stops.

Job-style platforms charge for the run itself. Modal pricing bills Functions by the second for CPU, memory and GPU time. A Nodus Job is a run-to-completion container, and its cost is split into boot, restore, running and teardown segments that you can read per run.

What does one 8 x H100 job cost all-in on five options?

Section titled “What does one 8 x H100 job cost all-in on five options?”

On the same 10-hour job, the all-in bill ranged from $213.20 to $359.10, and the overhead on top of the sticker price was about five times larger on instance-style billing. We built this example from list prices and stated assumptions, not from measured runs.

The job needs 10 hours of training on 8 NVIDIA H100 SXM GPUs, so the sticker price covers 80 GPU-hours. We assume 15 minutes of billed startup and teardown per run everywhere (image pull, data download, shutdown). On instance-style billing we add one hour before someone notices the job finished and terminates the machine. That gives 82 billed GPU-hours on job-style platforms and 90 on instance-style ones.

Option Rate per GPU-hour Sticker (80 GPU-h) Startup Idle tail All-in per finished job
Nodus $2.60 $208.00 $5.20 $0 $213.20
Modal $3.9492 $315.94 $7.90 $0 $323.83
RunPod, Community Cloud $2.69 $215.20 $5.38 $21.52 $242.10
RunPod, Secure Cloud $3.99 $319.20 $7.98 $31.92 $359.10
Lambda, 8 x H100 instance $3.99 $319.20 $7.98 $31.92 $359.10

Prices checked October 26, 2026, GPU rates only, from each vendor’s own page: listed at $2.60/hr (H100 SXM) and $5.50/hr (B200) on the Nodus pricing page; Modal pricing at $0.001097 per second for an H100 and $0.001736 per second for a B200, multiplied out to $3.9492/hr and $6.2496/hr; RunPod pricing for H100 SXM Pods at $2.69/hr (Community Cloud) and $3.99/hr (Secure Cloud) and B200 at $5.98/hr and $7.99/hr; Lambda pricing for 8-GPU instances at $3.99/hr per H100 SXM and $6.69/hr per B200 SXM6. Modal bills CPU and memory separately; RunPod and Lambda include the vCPUs and RAM listed beside each GPU. Totals are computed before rounding.

Stacked bars of the all-in cost of one 8 x H100, 10-hour job: Nodus $213.20, Modal $323.83, RunPod Community Cloud $242.10, RunPod Secure Cloud $359.10 and Lambda $359.10, split into training, startup and idle tail. On instance-style billing, one forgotten hour costs four times the startup and teardown.

The ranking follows the rate, but the spread does not. On instance-style billing the idle hour costs 8 GPU-hours, so an assumption about human attention moves the bill more than a few cents of rate difference. RunPod Community Cloud’s sticker is $7.20 above Nodus; the all-in gap is $28.90.

What happens to that number when a machine is lost?

Section titled “What happens to that number when a machine is lost?”

A lost machine without a checkpoint costs more than any rate difference in the table. Take the $2.69 option and lose the machine at hour 6. Without a checkpoint, the run repeats 6 hours plus another 15-minute startup, which is 50 more GPU-hours, or $134.50. The finished job now costs $376.60, more than the $359.10 options that never failed.

With a checkpoint saved every 30 minutes, the same failure costs at most 30 minutes of lost work plus the restart, or 6 GPU-hours ($16.14). That rule holds on any platform: the price of a failure is the work since your last checkpoint, times every GPU in the run. Our spot vs on-demand guide has the break-even math for interruptible capacity, and this checkpointing walkthrough shows what to save.

On Nodus, recovery.checkpoint.interval accepts auto or a fixed interval from 1m to 6h. Nodus also checkpoints when capacity gives notice that it will be reclaimed, and restores the latest checkpoint into the next attempt.

When is a B200 cheaper per job than an H100?

Section titled “When is a B200 cheaper per job than an H100?”

A B200 is cheaper per job only when it finishes faster than its price ratio to an H100 on the same platform. That ratio is the break-even speedup, and it differs by provider: 1.58x on Modal, 2.22x on RunPod Community Cloud.

The second column below is each provider’s B200 rate divided by its H100 rate. The last column reprices our job with one assumption: the B200 finishes the 10 hours of H100 training in 5, a 2x speedup. We picked 2x as a round number, not a benchmark.

Startup and the idle tail stay the same. Job-style platforms bill 42 GPU-hours and instance-style ones bill 50.

Option B200 rate Break-even speedup vs its H100 All-in at 2x faster Same job on H100
Nodus $5.50 2.12x $231.00 $213.20
Modal $6.2496 1.58x $262.48 $323.83
RunPod, Community Cloud $5.98 2.22x $299.00 $242.10
RunPod, Secure Cloud $7.99 2.00x $399.50 $359.10
Lambda, 8 x B200 instance $6.69 1.68x $334.50 $359.10

Horizontal bars of how much faster a B200 must finish a job to cost less than an H100: Nodus 2.12x, Modal 1.58x, RunPod Community Cloud 2.22x, RunPod Secure Cloud 2.00x, Lambda 1.68x. Where the B200 premium is small, a modest speedup pays for it; where it is large, you need more than 2x.

At exactly 2x, the B200 wins on Modal and Lambda and loses on Nodus and both RunPod tiers. Fixed overheads tilt the result further. On instance-style billing the idle hour is charged at the B200 rate, so its share grows as training time shrinks.

Grouped bars comparing the all-in cost of the same job on H100 and on a B200 that is 2x faster: Nodus $213.20 vs $231.00, Modal $323.83 vs $262.48, RunPod Community Cloud $242.10 vs $299.00, RunPod Secure Cloud $359.10 vs $399.50, Lambda $359.10 vs $334.50. The cheapest finished job here is still an H100 run; the cheapest B200 job is on Nodus at $231.00.

Do not take the speedup from a spec sheet. Measure it on your model with a short run on both GPUs. A Nodus Sweep runs the same Job across GPU types and reports each cell’s cost, wall time and throughput, then names the cheapest and the fastest cell.

Do storage, egress and billing increments change the answer?

Section titled “Do storage, egress and billing increments change the answer?”

Usually not for a single training job. They matter for data-heavy work and for many short runs.

Storage is cheap next to GPU time. RunPod’s Pod pricing docs list network volumes at $0.07/GB/month under 1 TB, so 500 GB for a month is $35. One idle hour on 8 x B200 at RunPod Secure Cloud’s $7.99 is $63.92.

Egress is often free or included. Lambda shows its filesystem rate when you create one, and its billing docs say filesystems carry no ingress or egress charges. Modal’s pricing page includes 1 TiB per month of network egress on its entry plan and says Volumes include up to 1 TiB free. RunPod’s Pod pricing docs state no fees for data ingress or egress.

On Nodus, Volumes are billed for the bytes stored after an included 10 GB, and storage and egress show up as their own lines in your balance history. Plan large downloads: the default egress quota is 100 GiB per day after your first purchase.

Billing increments matter when jobs are short. Per-second billing (RunPod, Modal) and Lambda’s one-minute increments add almost nothing to a 10-hour run. On a 5-minute sweep cell, a one-hour minimum would bill 12 times the work. The Nodus estimate shows the minimum charge before you launch.

When is the cheapest sticker price the right pick?

Section titled “When is the cheapest sticker price the right pick?”

Sometimes the hourly rate is the right number to optimize, and another platform fits better.

  • Lambda’s 8 x H100 instance bundles 208 vCPUs, 1,800 GiB of RAM and 22 TiB of local SSD into its per-GPU price. For jobs heavy on CPU preprocessing or local disk, compare the whole bundle.
  • If you debug interactively on a machine all day, the idle tail is not waste. A long-lived Pod or instance suits that work.
  • Modal bills by the second and autoscales up and down with request volume, which suits spiky inference traffic where most hours would otherwise sit idle.
  • RunPod Community Cloud’s H100 rate is within 9 cents of ours. For a short, checkpointed experiment where you already know the tooling, that difference is noise.

How do you see the all-in cost of your own job on Nodus?

Section titled “How do you see the all-in cost of your own job on Nodus?”

Ask for the estimate first, then read the bill by segment afterward. These commands come from the Nodus CLI reference and usage docs:

Terminal window
pip install nodus-compute
nodus login
nodus run --dry-run --gpu H100:8 --profile Cost -- torchrun train.py
nodus run --gpu H100:8 --profile Cost --max-cost 250 -d -- torchrun train.py
nodus get usage --group-by segment

The dry run returns the expected cost at p50 and p90, the startup time, the first hold and the minimum charge. The Cost profile picks the lowest expected cost to completion, with startup, teardown and lost work included, even if it is slower to start (placement docs). --max-cost is a hard spend cap for the run.

What is the cheapest H100 or B200 per hour?

Section titled “What is the cheapest H100 or B200 per hour?”

Among the five options above, the lowest listed H100 and B200 rates were on the Nodus pricing page. For a wider per-hour list across more GPUs, see our cloud GPU price table, and price the whole job before you choose.

Can the rate change after I launch on Nodus?

Section titled “Can the rate change after I launch on Nodus?”

If you launch with the estimate’s If-Match, Nodus uses no offering above the estimated rate plus 10%. When prices move beyond that, the run waits with PriceAboveEstimate instead of costing more than you saw.

Is interruptible capacity always cheaper per job?

Section titled “Is interruptible capacity always cheaper per job?”

No. It wins only while the redone work stays smaller than the discount. On Nodus, interruptible: Allow uses interruptible capacity only when it is cheaper to finish the run that way.

Every overhead is multiplied by the node count, so a forgotten idle hour on two 8-GPU nodes costs 16 GPU-hours. Nodus shows multi-node cost per rank with nodus get usage --group-by rank,segment.

More from the blog