FireX Is Now Available on cloudHPC: GPU-Accelerated Fire Dynamics Simulation
Fire Dynamics Simulator (FDS) has been the standard CFD tool for fire and smoke modeling for two decades โ and for just as long, its pressure solve has been a CPU-bound bottleneck on large domains. FireX, NIST’s experimental GPU-accelerated development branch of FDS, is the first serious attempt to change that. We’ve now built and deployed it on cloudHPC, and it’s available for testing today.
What FireX actually adds
FireX is not a rewrite of FDS โ it’s the mainline FDS codebase with GPU offload added to two specific, computationally expensive components:
- The pressure Poisson solver, via a GPU-enabled build of HYPRE. This is the part of every FDS time step that solves for the pressure field, and on large or long-running domains it’s typically where most of the wall-clock time goes. FireX links against CUDA-enabled HYPRE, Umpire (for GPU memory management), and SUNDIALS, and dispatches the relevant linear-algebra work to the GPU whenever a HYPRE-backed solver is selected.
- Stiff chemistry ODE integration, via SUNDIALS, for cases where finite-rate chemistry solving becomes a significant cost.
Everything else in FireX โ the physics models, the input file format, the output/visualization pipeline โ is standard FDS. If you already know how to build an FDS case, you already know how to build a FireX case; the difference is entirely in solver selection and the compute backend, not in the modeling itself.
A realistic expectation on speedup: GPU offload currently covers the pressure solve and stiff chemistry, not the full time-stepping loop. By Amdahl’s Law, the overall speedup you’ll see is bounded by how much of your total runtime those two components actually represent for your specific case โ for many domains that’s meaningful but not transformative yet (think “solidly faster,” not “an order of magnitude”). Cases with large, structured pressure solves and expensive combustion chemistry will benefit the most; small or geometrically simple domains may barely notice the GPU is there.
Running FireX on cloudHPC
1. Choose the right instance type. FireX needs an NVIDIA GPU to do anything useful โ on a CPU-only instance the binary will fall back to the standard solver path and you’ll get no benefit from the GPU-specific build. On cloudHPC, select the basegpu instance type, which attaches an NVIDIA Tesla T4 to your instance. This is currently the only instance type provisioned with FireX’s GPU dependencies pre-built and verified.
2. Configure your .fds file to actually use the GPU path. This is the step people miss most often โ simply running the FireX binary on a GPU instance does not automatically move work onto the GPU. FDS still defaults to its standard FFT-based pressure solver unless you explicitly select a HYPRE-backed solver. Add (or edit) your &PRES namelist line:
&PRES SOLVER='UGLMAT HYPRE' /
Use 'UGLMAT HYPRE' for standard structured/unstructured multi-mesh domains, or 'GLMAT HYPRE' if your case is single-mesh with obstructions and needs the whole-domain solve. GPU offload itself is controlled by HYPRE_DEVICE_RUN, which defaults to .TRUE. โ you don’t need to set it explicitly, but you can add it for clarity if you prefer:
&PRES SOLVER='UGLMAT HYPRE', HYPRE_DEVICE_RUN=.TRUE. /
3. If you’re running multiple MPI ranks, set FDS_RANKS_PER_GPU. On a multi-rank run, this environment variable controls how many MPI ranks share a single GPU for the HYPRE pressure solve. On a single-T4 basegpu instance, this matters as soon as you go beyond one rank per node.
4. Verify the GPU is actually being used. Watch nvidia-smi while your run starts:
watch -n 0.5 nvidia-smi
You should see nonzero GPU memory usage and the FDS process listed under Processes as soon as the first pressure solve happens. If you see 0 MiB and no process listed, the GPU path isn’t being invoked โ double check the SOLVER value in your &PRES line before assuming anything is wrong with the instance itself.
Important: this is not an official FDS release
FireX is NIST’s experimental development branch โ it is not part of the official, validated FDS release, and it does not carry the same testing and verification pedigree as mainline FDS. Our build and deployment on cloudHPC is provided as-is, with no SLA: we’ve verified that it builds correctly and that GPU offload engages as expected, but we have not yet published formal accuracy or performance validation for this branch on our infrastructure.
Use of FireX on cloudHPC is entirely at your own risk. If your work requires a validated, production-grade fire simulation tool, use standard FDS. FireX is here for teams who want to test GPU-accelerated fire modeling early and are comfortable working with pre-release software.
What’s next
We’re running formal scalability tests on FireX across multiple case sizes and rank/GPU configurations, and we’ll publish the results โ real speedup numbers, not estimates โ as soon as they’re ready. In the meantime, if you try FireX on cloudHPC and hit something unexpected, we want to hear about it.
CloudHPC is a HPC provider to run engineering simulations on the cloud. CloudHPC provides from 1 to 224 vCPUs for each process in several configuration of HPC infrastructure - both multi-thread and multi-core. Current software ranges includes several CAE, CFD, FEA, FEM software among which OpenFOAM, FDS, Blender and several others.
New users benefit of a FREE trial of 300 vCPU/Hours to be used on the platform in order to test the platform, all each features and verify if it is suitable for their needs