Beyond AI: Other Workloads on the Stack#
The stack on this site is built for AI, but nothing in it is specific to AI. GPU compute, RDMA fabrics, collective communication, parallel storage and topology-aware scheduling serve any workload that is large, parallel and data-hungry. Many of these workloads came first: HPC built RDMA and MPI long before deep learning borrowed them.
Domains that use the same stack#
| Domain | Example applications | What it uses from the stack |
|---|---|---|
| Scientific simulation (HPC) | Weather and climate, fluid dynamics, molecular dynamics, seismic imaging | MPI/NCCL, RDMA fabric, domain decomposition (the HPC form of parallelism), parallel storage |
| Financial computing | Monte Carlo risk, options pricing, backtesting, real-time fraud scoring | GPU compute, data parallelism, low-latency networking |
| Data analytics | GPU-accelerated Spark and SQL (RAPIDS, cuDF), large joins, ETL | GPU memory, RDMA shuffle between nodes, fast storage |
| Vector and graph | Vector search at scale, graph analytics, recommendation engines | HBM capacity, sharding across GPUs, all-to-all traffic |
| Media and rendering | Video transcoding, 3D rendering, digital twins, synthetic media | GPU compute, GPU sharing, high-throughput storage |
| Robotics and simulation | Physics simulation and synthetic data for robot training | GPU clusters, parallel environments, scheduling |
| Cryptography and blockchain | Zero-knowledge proof generation, large-scale signature verification | GPU compute, batch parallelism |
| Genomics | Sequence alignment, variant calling (e.g. NVIDIA Parabricks) | GPU compute, parallel storage |
| Telecom and signal processing | 5G radio processing, radar, real-time sensor fusion | GPU compute, low-latency networking, NUMA placement |
The pattern is the same as for AI. Work that splits across many GPUs or nodes stresses the communication and fabric layers. Work that runs as many independent jobs stresses GPU compute, sharing and the scheduler. Work that reads or writes large datasets stresses the storage path.
Front end and back end: where a classic application meets the stack#
Most real products are not a training job or a simulation on their own. They are an ordinary application, a website or an API, with heavy computation behind it. The two halves have very different needs, and the stack only has to serve one of them.
flowchart LR
U([Users]) --> FE
subgraph GEN["General node pool: standard Kubernetes"]
FE[Web front end<br/>stateless, autoscaled]
API[API service]
Q[[Job queue<br/>Kueue / Volcano]]
end
subgraph GPU["GPU node pool: the nine-layer stack"]
INF[Inference service<br/>L1-L2, L4, L9]
JOB[Batch and HPC jobs<br/>L3, L5-L9, storage]
end
FE --> API
API <-- "interactive request / answer" --> INF
API -- "long-running job" --> Q
Q --> JOB
JOB -- "results" --> ST[(Storage)]
ST --> API
A classic web front end and API run on ordinary nodes; interactive requests go to an inference service on GPU nodes, and long-running work goes through a job queue to batch and HPC jobs that write results to storage.
| Front end (classic web application) | Back end (the stack) | |
|---|---|---|
| What it does | Pages, user accounts, business logic, the API | Inference, training, simulation, analytics |
| Nodes | Ordinary CPU nodes | GPU nodes with RDMA NICs |
| Network | The default pod network (Calico) | Calico for control traffic, plus RDMA networks via Multus |
| Scaling | Horizontal autoscaling on requests | Scheduled by quota and gang admission |
| Failure | Restart a pod; users barely notice | A job may need to resume from a checkpoint |
| Cost | Cheap and generic | Where the investment goes |
Requests cross the boundary in one of two ways:
- Interactive: the API calls an inference service and waits for the answer, for example a chat reply or a fraud score within a payment. Latency matters, so the serving layers and GPU memory dominate.
- Asynchronous: the API submits a job to a queue and returns immediately, for example a risk run, a render or a simulation. The job runs when the scheduler admits it, writes its results to storage, and the application picks them up later.
Both halves can run in the same Kubernetes cluster, separated by node pools, namespaces and quotas (see multi-tenancy). The web tier never needs GPUs or RDMA, and the GPU tier never has to serve web traffic. Keeping that boundary clean is what lets each half be sized, scaled and paid for on its own terms.