Fuzzball vs. OpenStack

Compare Fuzzball vs. OpenStack

Run the workload, not the machine

OpenStack is Infrastructure-as-a-Service. It delivers a virtual machine or a bare-metal server booted from an OS image and leaves everything above that to you. Fuzzball takes a containerized application and schedules, executes, and manages it directly, with no hypervisor between the workload and the silicon.

Get the Fuzzball solution brief

The short answer

OpenStack is an Infrastructure-as-a-Service platform that hands back a machine: a Nova virtual machine or an Ironic bare-metal node booted from an OS image. Fuzzball is a workload orchestration platform that takes a containerized HPC or AI workflow and runs it. The two sit at different layers, and Fuzzball commonly runs on top of OpenStack rather than instead of it.

From the team that created Apptainer and Singularity at Lawrence Berkeley National Laboratory, and the founding sponsor of Rocky Linux.

Compare what each one is built for

OpenStack

  • Self-service pools of VMs, storage, and networking for enterprise IT
  • Web apps, databases, and internal systems that need no hardware-aware placement
  • Live migration, snapshots, and overcommit, the flexibility a private cloud exists to provide
  • Ironic drops the hypervisor and still hands back a bare OS image

Fuzzball

  • HPC, AI training, and inference scheduled with GPU and interconnect awareness
  • Containerized workflows with data ingress and egress declared inline
  • Substrate on the compute node, with no hypervisor in the job execution path
  • No OS to provision, patch, or configure, because the platform is the runtime

Understand the real difference

Infrastructure-as-a-Service delivers compute, storage, and networking, and hands responsibility for everything above that to the consumer: OS configuration, runtime dependencies, schedulers, drivers, and the application. OpenStack is a textbook example. Whether the request goes through Nova or Ironic, the deliverable is an operating system instance. You receive a machine, not a working environment.

Fuzzball operates one layer up. A user submits a workflow describing containerized steps, their resource needs, and their data dependencies, and Fuzzball schedules, sequences, and executes that application directly. Nothing gets provisioned, patched, or configured first.

Containers versus virtual machines is a real architectural difference between the two, and it is a symptom rather than the cause. The cause is what each platform was designed to deliver.

See what’s new in Fuzzball

Serve a model on the capacity you provisioned, by name

Fuzzball ships eleven validated model presets with the GPU count, context size, and vLLM arguments worked out per model, so a model starts from the catalog by name on NVIDIA or AMD GPUs. Each one comes with a LiteLLM gateway giving one OpenAI-compatible endpoint, or one gateway fronts every model a user can reach. OpenStack hands you the instances. Fuzzball hands you the served model.

Hold nothing when idle

A service endpoint keeps one URL for the life of the workflow and forwards to whichever replica is ready. A pool with a minimum of zero runs no replicas while it is idle. The first request after an idle period returns a 503 with a retry interval while a replica starts, and the retry is served. An IaaS autoscaler rebuilds instances. This scales replicas of a workflow.

Govern who can reach which provisioner

Compute policy over node provisioner access is set at organization and group level from the CLI or web UI, with enforcement opt-in and off by default. Accounting is separate: per-workflow accounting tracks compute, storage, and network egress, alongside organization-level storage isolation. A private cloud team gets workload-level access control on top of the infrastructure-level tenancy OpenStack already gives them.

Keep agents and retrieval inside the tenant boundary

OpenCode and hermes-agent run in the cluster from the catalog and detect the model gateways themselves, and a retrieval entry exposes hybrid document search as MCP tools. The MCP server lets an agent inspect the environment and draft, submit, and monitor workflows with explicit permission for writes and execution. The request that wakes an idle pool must be authenticated, so a public-scoped endpoint never wakes it.

Cover AMD hardware health too

Fuzzball already scores every node’s reliability from host and GPU health signals, factors it into placement, and cordons, drains, and evicts work from degraded nodes. AMD GPU ECC errors and overheating now feed into that same path alongside NVIDIA. An IaaS layer can rebuild an instance. It has no view of whether the training run on it is making progress.

Weigh the differences that matter

Closest to the hardware wins

Every layer of indirection costs cycles, bandwidth, and, most damagingly for tightly coupled work, latency and jitter. A hypervisor is such a layer, and it sits at the heart of OpenStack’s default deliverable. By OpenStack’s own documentation, a VM’s virtual CPUs float across host cores by default and emulator threads add latency. Substrate runs on the compute node itself: process-level isolation, no guest OS, no hypervisor in the data path.

Tuning costs you the flexibility

CPU pinning, NUMA-aware placement, huge pages, and SR-IOV bring virtualized HPC much closer to bare metal. Two things stay true. A measurable residual remains for network- and memory-bound work, felt most where tightly coupled jobs synchronize at scale. And that same tuning trades away live migration, overcommit, and hardware-agnostic placement, which is the flexibility IaaS exists to provide.

Ironic solves half the problem

Ironic removes the hypervisor, so the virtualization overhead argument goes away. The workload problem stays. The deliverable is still an OS image with schedulers, MPI, GPU drivers, container tooling, and data movement left to install by hand. Fuzzball on Ironic keeps the job execution path close to the silicon and adds the turnkey workload layer on top.

Data as part of the workload

Cinder and Swift are infrastructure components. Wiring them into an application’s data flow is the customer’s build. In Fuzzball, ingress, caching, and egress are declared as volume steps in the workflow definition, and model weights arrive from Hugging Face or Ollama as declared inputs.

Batch and inference in one workflow

OpenStack has no native answer for serving. Any inference endpoint built on it is the customer’s own application to design, scale, and operate. Fuzzball’s Service Endpoints serve inference from an autoscaled pool behind one stable endpoint, alongside training and fine-tuning steps in one portable workflow, at the same close-to-hardware performance.

Compare Fuzzball and OpenStack at a glance

OpenStack

Fuzzball

Design center
CategoryInfrastructure-as-a-ServiceWorkload orchestration for HPC, AI, and inference
What you getA VM or bare-metal node booted from an OS imageA scheduled, running application, with no OS to manage
Workload unitOperating system instanceA workflow: batch job, inference service, or both
ApplicationsWeb apps, databases, internal enterprise systemsSimulation, AI training and inference, scientific pipelines
How the work runs
Customer buildsThe whole stack: schedulers, MPI, drivers, toolingNothing, turnkey from a workstation to national-lab scale
Execution pathNova or Ironic, and either way still infrastructureSubstrate executes on-node, no hypervisor in the data path
Hardware awarenessGPU and interconnect access through passthrough and tuningInfiniBand auto-detected, GPUs allocated with topology awareness
Node healthRebuild the instance, with no view of the job on itReliability scoring feeds placement, jobs restart on healthy nodes
Data, services, and cost
Data for the appCinder and Swift are raw storage, and the wiring is yoursIngress, caching, and egress declared as workflow volumes
Model ingressScripted staging by the researcherPull from Hugging Face or Ollama as a declared input
On-demand inferenceNo native model, the serving stack is yours to buildService Endpoints in the same workflow as training
AccountingInfrastructure metering by instance, volume, and networkCompute, storage, and network egress per workflow
Multi-tenancyProjects, quotas, and roles at the infrastructure layerStorage isolation and compute-policy grants at the workload layer
Interface and heritage
InterfaceMore than thirty services with their own APIs and consolesOne web UI, CLI, and SDK at full parity
Agent interfaceAPIs for provisioning machinesMCP server for workflows, with per-action permissions
Container lineageNot container-native, HPC performance is a tuning exerciseSame team and design lessons as Apptainer, in a purpose-built runtime
Relationship
To each otherCan host Fuzzball Substrate and Orchestrate as its compute layerRuns on OpenStack, and federates it with on-prem, cloud, and edge

Run Fuzzball on top of OpenStack

The two occupy different layers, so they are not mutually exclusive.

  1. Compute

    Substrate runs on nodes OpenStack provisions, whether Nova virtual machines or Ironic bare metal. Pairing Fuzzball with Ironic keeps the job execution path close to the silicon.

  2. Orchestration

    Orchestrate deploys on OpenStack infrastructure and turns provisioned capacity into a turnkey HPC and AI platform rather than raw machines to build up.

  3. Federation

    Federate brokers workflows across OpenStack clusters, on-prem systems, and cloud or edge at once, and routes each job on cost, performance, and data locality.

Match this to your situation

  • A private cloud hands researchers a VM and leaves the entire HPC stack to them
  • Hypervisor jitter shows up as synchronization stalls in a 500-rank MPI job
  • Cinder and Swift are in place, and every workflow still scripts its own staging
  • An inference service is something the team designs, scales, and operates itself
  • Finance wants to charge a business unit for a training run, and instance hours are the only number available
  • The GPU nodes were bought for AI, and the researchers still open a ticket to get one

Zero

Hypervisors in the job execution path

Process-level isolation, with no guest OS and no emulation between workload and silicon.

One

Workflow for batch jobs and inference

Service Endpoints sit alongside training rather than in a stack you build.

Both

Platforms, at different layers

Fuzzball turns OpenStack-provisioned capacity into a usable HPC and AI platform.

Per workflow

Compute, storage, and egress accounted for

Chargeback at the workload layer, not just the instance layer.

Define the terms

What is OpenStack?
OpenStack is an open-source Infrastructure-as-a-Service platform for building private and public clouds. It is a collection of more than thirty interconnected services covering compute, storage, networking, identity, DNS, and secrets management, and it originated in a joint effort by NASA and Rackspace. Its core deliverable is a virtual machine or a bare-metal server.
What is Infrastructure-as-a-Service?
Infrastructure-as-a-Service is a cloud model in which the provider delivers virtualized or bare-metal compute, storage, and networking, and the consumer is responsible for everything above that layer: operating system configuration, runtime dependencies, schedulers, drivers, and the application itself. IaaS delivers capacity. It does not run workloads.
What is OpenStack Ironic?
OpenStack Ironic is the OpenStack service that provisions physical bare-metal servers instead of virtual machines. It removes the hypervisor and its virtualization overhead. The deliverable is still an operating system image, so schedulers, MPI, GPU drivers, container tooling, and data movement remain the customer’s to install.
What is Fuzzball?
Fuzzball is CIQ’s orchestration platform for HPC, AI training, and AI inference. It treats every workload as a containerized workflow and executes it through an on-node agent with no hypervisor in the data path. Fuzzball runs on infrastructure that OpenStack provisions, including Ironic bare metal.

Run Fuzzball on your own workflow

Bring one workflow and the environments you have to run it in. A CIQ engineer will walk your team through a run on your own hardware, then the same run in a cloud, unchanged.

Get a demo

Frequently asked questions

Usually not, because the two sit at different layers. OpenStack delivers a virtual machine or a bare-metal server booted from an OS image, and Fuzzball takes a containerized application and schedules, executes, and manages it. In many environments Fuzzball runs on top of OpenStack rather than instead of it, and turns provisioned capacity into a turnkey HPC and AI platform.

You can run HPC on OpenStack, and it takes work. The deliverable is an OS image, so schedulers, MPI, GPU drivers, container tooling, and data movement all get installed and maintained by the customer. Virtualized nodes also need CPU pinning, NUMA-aware placement, huge pages, and SR-IOV or PCI passthrough before tightly coupled jobs perform acceptably.

Ironic removes the hypervisor, so it solves the virtualization overhead problem. It does not solve the workload problem, because the deliverable is still an OS image with the entire HPC and AI stack left to install by hand. Pairing Fuzzball with Ironic adds the turnkey workload layer on top while keeping execution close to the hardware.

It depends heavily on the workload. CPU-bound work sees little difference on modern hypervisors, while memory- and network-bound work carries a measurable residual even after careful tuning, and communication-heavy MPI collectives suffer most. The jitter matters as much as the average, because a tightly coupled job runs at the speed of its slowest rank at every synchronization point.

Both. Service Endpoints serve inference and interactive endpoints alongside batch training steps in one portable workflow. A service runs as an autoscaled pool behind one stable endpoint, which can hold no replicas when idle; the first request after an idle period returns a 503 with a retry interval while a replica starts. Serving keeps the same close-to-hardware performance as the training steps.

Fuzzball provides organization-level storage isolation, default storage provisioners, and compute-policy grants over provisioner access, which an administrator enforces by turning enforcement on, so many teams share one GPU environment with clear boundaries around data and infrastructure. Workloads execute unprivileged and rootless, so those boundaries rest on architecture as well as policy.

No. MPI, Shmem, and other HPC communication libraries run inside Fuzzball’s containers, and NCCL works the same way for multi-GPU training. InfiniBand is auto-detected and GPUs are allocated with topology awareness, so simulation code and distributed training jobs run unchanged.

Fuzzball deploys to AWS, Google Cloud, Oracle Cloud, Azure, and CoreWeave, to on-premises clusters built with Warewulf, VMware, or bare metal, and onto OpenStack-provisioned infrastructure through Nova or Ironic. The same workflow definition runs unchanged in all of them.

Still have questions?