--- title: "Billing and plans" description: "How a TIR Slurm Cluster is billed per node and per hour, how on-demand, savings plans, and committed plans differ, and how to keep the bill down." content_type: "concept" product: "tir-slurm-cluster" platform: "TIR" url: "/tir/tir-slurm-cluster/concepts/billing-and-plans/" --- # Billing and plans A Slurm Cluster is billed for the nodes it holds, whatever work they do, so the way to control cost is to control the node count. For the rate of each plan, see [E2E Networks pricing](https://www.e2enetworks.com/pricing). ## What you pay for A cluster is billed for each worker node, per hour, at the selected plan's rate, whether jobs are running on it or it sits idle. On a committed plan, the charge for each node is the plan's fixed price for the term, whatever the hours you use. Attached storage volumes (Parallel File System, Shared File System, and datasets) and reserved IPs are billed separately from the cluster. These come at no extra charge: - Individual Slurm jobs of any kind, in any number: batch jobs, job arrays, container jobs, and multi-node jobs. - Restarting workers, the login service, or the whole cluster. - Cloning a cluster's configuration. - Adding or removing partitions, SSH keys, or security groups. - Editing the extra `slurm.conf` settings or the prolog and epilog scripts. Terminating the cluster is the only way to stop compute billing, and an idle cluster is billed at the full rate. A cluster with an empty queue for a week is billed at the full rate for that week. Since you pay for nodes and jobs are free, the cheapest set-up is the smallest pool of nodes that your queue can keep busy. Watch the job count chart for running and pending jobs on the **Monitoring** tab. A pending backlog that persists means it is time to scale up, and a queue that stays empty means it is time to scale down. See [Scale a cluster](/tir/tir-slurm-cluster/how-to/scale-a-cluster/). ## How billing follows the life of a cluster | What happens | Effect on billing | | ------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------- | | You create the cluster | Billing starts when the create succeeds and is dated from the moment you submitted the form, before any job runs. | | The cluster stays in **Creating** for a while, then succeeds | You are billed from the moment you submitted the form, including the time spent in **Creating**. | | The create fails and the cluster is **Failed** | Compute for a **Failed** cluster is free. | | The cluster is **Running**, idle or busy | The same rate, whether it is idle or busy. | | You scale up | The billed node count rises at once. The scale action itself is free. | | You scale down | The billed node count falls at once. | | You terminate the cluster | Compute billing for its nodes stops. | | You delete the terminated cluster | Billing already stopped when you terminated it. | | The volumes stay after termination | Storage keeps billing until you delete the volumes. | The **Scale Cluster** dialog shows **New hourly cost** and **Change from current** before you confirm. ## On-demand, savings plans, and committed plans **On-Demand** is the default plan. It bills by the hour, and you can scale or terminate the cluster whenever you like. Where a plan offers a committed term, the **Pricing** section on the create form lists it by length with its saving: | Term | Saving | | ------------------------ | -------- | | **1 Month Savings Plan** | Save 10% | | **3 Month Savings Plan** | Save 14% | | **6 Month Savings Plan** | Save 20% | | **1 Year Savings Plan** | Save 25% | | **2 Year Savings Plan** | Save 30% | | **3 Year Savings Plan** | Save 35% | E2E's price list sets which of these a plan offers. A term of any other length shows as " Days Committed", and the saving is left blank. ### Convert to a committed plan An hourly cluster can move to a committed plan from **Actions**, then **Convert to Committed**. You choose what happens when the term ends: renew the same plan, return to hourly billing, or delete the cluster. Converting changes only the billing, and the cluster keeps running throughout. You pay for the whole term at once, for every node. The dialog quotes the per-node price, and you pay that price multiplied by your node count, so work out the total before you confirm. You can still terminate or delete a committed cluster before the term ends. You paid for the whole term at the start, so the remaining days are not refunded. A committed cluster keeps the size you bought: you cannot scale it up or down, or convert it again. Size the cluster on **On-Demand** first, confirm that the queue is consistently busy, and then commit. For the steps, see [Convert a cluster to committed](/tir/tir-slurm-cluster/how-to/convert-a-cluster-to-committed/). ### Build on a Private Cluster A Slurm Cluster built on a [TIR Private Cluster](/tir/tir-private-cluster/) draws its nodes from that cluster's reserved pool instead of shared on-demand inventory. It is billed as part of your private cluster plan, which covers the Slurm Cluster's nodes. Ask for at most as many nodes as are free in the reserved pool; a larger request is refused. ### Choose a plan | Situation | Choose | | ------------------------------------------------------------ | -------------------------------------------------- | | Evaluating, or a one-off experiment | **On-Demand** | | A project with a fixed end date | A savings plan that matches the duration | | Steady training demand over several months | **Convert to Committed**, once the size is settled | | Frequent create and delete cycles, or capacity you must have | A TIR Private Cluster | ## Storage is billed separately A Parallel File System, a Shared File System, and a dataset are each billed independently of the cluster. Terminating a cluster unmounts its volumes and keeps them, so your data survives. The volumes keep billing until you delete them yourself under **Storage** in the TIR sidebar. Volumes left behind this way are the most common source of unexpected charges on a Slurm Cluster, so check your volumes whenever you tear a cluster down. Container squash files and checkpoints are the usual reason a volume grows faster than you expect. To see what is using space, run `du -sh /shared/*` on the login node, replacing `/shared` with your mount path. ## Keep the bill down - Terminate a cluster once its work is done. This saves the most, because terminating is the only way to stop compute billing. - Size the cluster to the queue. An idle node costs the same as a busy one. - Check GPU utilization on the first run of a new job script. A job that completes at 15% utilization costs the same as one at 95%, and takes far longer. See [Monitor a cluster](/tir/tir-slurm-cluster/how-to/monitor-a-cluster/). - Scale down after a burst of work. - [Cache container images](/tir/tir-slurm-cluster/how-to/cache-container-images/), so that 16 array tasks start from one cached copy of a 15 GB image instead of each pulling it on paid GPU time. - Set a **Max time** on your partitions, so a hung job ends and frees its GPUs when the limit is reached. See [Manage partitions](/tir/tir-slurm-cluster/how-to/manage-partitions/). - Delete old checkpoints and squash files, because storage bills until you delete it. - Attach a utilization alert, so you hear about a cluster that nobody is using. - Clone rather than keep a cluster idle between bursts of work. To do that, terminate the cluster when a burst of work ends. The record stays at **Terminated**, and **Clone Cluster** starts a create form pre-filled from it, so you keep the configuration and pay no compute charges in between. Partitions name the original cluster's own nodes, so add them again after each clone. See [Clone a cluster](/tir/tir-slurm-cluster/how-to/clone-a-cluster/). ## Where to see your spend **Billing & Usage** in the account menu at the top right shows usage and invoices for your account, with cluster and storage charges listed separately. The [E2E pricing calculator](https://calculator.e2enetworks.com/) helps you compare plans before you create anything.