CFD in the Azure Cloud
The term 'Cloud Computing' is a rather nebulous term that is open to interpretation, filling some with fear and others with delight. So in an effort to define what the cloud could mean for Computational Fluid Dynamics (CFD) simulations, we undertook a feasibility study, sponsored by the Microsoft DPE team, to see how to couple Caedium with a cloud-based CFD simulation service. We chose to harness the strength of Caedium's interactive simulation setup and results visualization by keeping them close to the user on a local machine, and then outsourcing the intensive numerical CFD simulation as a Windows Azure cloud service.
The Windows OpenFOAM solvers that serve as the basis for the Caedium RANS Flow add-on were configured as a hosted service on Azure. The service is accessed through a Web Role, which first validates a request and then stores the simulation case as a CloudBlob in a CloudBlobContainer and adds a corresponding unique job to the job queue - an Azure CloudQueue. The job queue is independently processed by one or more Worker Roles, which extract the simulation case from the CloudBlobContainer and perform the CFD simulation using OpenFOAM. The service can be scaled up or down as needed by simply adding more instances of the Worker Role.
Instead of running the OpenFOAM job locally, Caedium automatically packages up the relevant OpenFOAM directory configuration files into an archive and sends it to the Azure service (specifically the Web Role) for processing. Caedium then enters a wait state until the Azure service indicates the CFD simulation is complete, at which point Caedium automatically downloads the results archive. The results and simulation telemetry (e.g., residuals) are unpacked and the results extraction process continues as if the CFD simulation had been performed locally.
While not yet ready for a full release, the integration of Caedium with the Windows Azure cloud-based OpenFOAM service provides a glimpse of the future. Providing the option to perform CFD simulations on a hosted cloud service means CFD simulations that are too large or would run too slowly on a local machine can be handled as if you had your own personal on-demand High Performance Computing (HPC) platform. Having such a HPC capability without the associated IT management and hosting overheads is likely to bring unbounded CFD within the reach of anyone with a great idea in need of analysis.