Azure HPC Recipe Document for Altair ultraFluidX
1 Introduction
This document briefly explains the steps to install and run Altair ultraFluidX application on a Virtual Machine deployed in Azure Cloud Platform and presents the performance results.
This recipe document covers the following topics: -
- Deploy & connect a required virtual machine on Azure platform.
- Install required NVIDIA drivers in virtual machine.
- Install Application on virtual machine.
- Install license manager for current application
- Performance results of current application on azure virtual machine
- Azure consumption
- Summary
2 Deploy Virtual Machine on Azure Cloud Platform
2.1 Azure Cloud Architecture for Application
The below Architecture explains the virtual machine running on an Azure Platform

2.2 Azure Virtual Machine (VM)
A VM is a virtualized instance of a computer that can perform almost all the same functions as a computer, including running applications and operating systems.
An Azure VM gives the flexibility of virtualization without having to buy and maintain the physical hardware that runs it. However, the user still needs to maintain the VM by performing tasks, such as configuring, patching, and installing the software that runs on it.
Things to be considered before deploying a VM,
- The names of the application resources
- The location where the resources are stored
- The size of the VM
- The operating system that the VM runs
- The configuration of the VM
- The related resources that the VM needs
There are different sizes and options available for the Azure virtual machines and user can use to run apps and workloads. Depending on the workload user must choose the appropriate VM size. For complete list check this https://docs.microsoft.com/en-us/azure/virtual-machines/sizes/.
To test the performance of Altair ultraFluidX on Azure Platform, ND A100 v4 virtual machine is deployed.
|
VM Name |
vCPU |
Memory (GiB) |
SSD (GiB) |
GPU |
GPU Memory (GiB) |
Max Data Disk |
|
Standard_ND96asr_v4 |
96 |
900 |
6000 |
8 A100 |
40 |
32 |
The current virtual machine is a new flagship addition to the Azure GPU family. (Standard_ND96asr_v4 Virtual Machine). This VMs is powered by NVIDIA Ampere A100 Tensor Core GPUs and 96 physical 2nd-generation AMD Epyc™ CPU cores (2.44GHz). The “ND96asr_v4” VM has 8 GPUs with 40 GB of memory each and supported by 96 AMD processor cores with a total memory of 900GB. Each GPU features NVLINK 3.0 connectivity for communication within the VM.
2.3 Create a Virtual Machine on Azure Platform
Sign into Azure
Sign into the Azure portal by using https://portal.azure.com/
Free Trial subscriptionsaren't eligible for limit or quota increases.
After the successful sign in or sign up, one has to upgrade the Azure subscription to Pay-As-You-Go to deploy a Virtual machine. For deployment, the user must have regional vCPU quota which can be obtained by raising a request.
The step-by-step procedure to increase the vCPU quota is given below,
https://docs.microsoft.com/en-us/azure/azure-portal/supportability/per-vm-quota-requests
The step-by-step procedure to deploy Virtual machine is given below,
- Type virtual machines in the marketplace search.
- Under Services, select Virtual machines.
- In the Virtual machines page, select Create Then Virtual machine.
- In the Basics tab, under Project details, make sure the correct subscription is selected and then choose to Create new resource group. Type Azure-PerformanceTest(user choice) for the name.

- Under Instance details, type Azure-VM (user choice) for the Virtual machine name and choose West Europe for Region. Choose CentOS, Version 8.1 HPC-Gen2 for the Image and Standard_ND96asr_v4 for the Size (user choice). Leave the other defaults.

Note:
- Region must be decided based on where the Virtual machine is going to be deployed. To avoid the network latency, the region should be near to the location where the VM is to be deployed.
- Image selection is of user choice based on the application user can choose the image (Windows 10, Linux based OS and Windows Server)
- Under Administrator account, provide a username, such as Azureuser and a password. The password must be at least 12 characters long and meet the defined complexity requirements.

- Under Inbound port rules, choose Allow selected ports and then select SSH (22) from the drop-down.

- In Advanced tab, under the Extensions click Select an extension to install, select NVIDIA GPU Driver Extension (user choice)

Note: This Step 8, will installs the older version of Nvidia and Cuda driver hence the user can skip this step and proceed the VM deployment without extension. Follow manual installation as per chapter 2.5.
- Leave the remaining defaults and then select the Review + create button at the bottom of the page.
- After validation runs, select the Create button at the bottom of the page.

- After deployment is complete, select Go to resource.

2.4 Connect to virtual machine
Create a SSH connection to the virtual machine.
- On the overview page of a virtual machine, select the Connect button then select SSH and copy the public IP address.

- Open any SSH client tool of user choice, in this case PUTTY is used.
- Enter the IP address and port as 22 and click Open

- Enter username in Login as and enter the password and click Enter.
- Now user connected to the VM in Console
2.5 Install Nvidia Drivers
To take advantage of the GPU capabilities of Azure N-series VMs backed by NVIDIA GPUs, the user must install NVIDIA GPU drivers.
If the machine has a NVLink or NVSwitch connecting the GPUs (In this case the current VM ND A100 v4 series instances has), one should also install the associated version of the Nvidia fabric manager.
There are two ways to install the drivers,
- TheNVIDIA GPU Driver Extensioninstalls appropriate NVIDIA CUDA or GRID drivers on an N-series VM. Install or manage the extension using the Azure portal (Ref 8)
- Install NVIDIA GPU drivers manually. (For the manual installation follow the procedure given below)
Nvidia Data Center Driver installation guide for CentOS 8
The step-by-step instruction is given below,
- In some cases, user may need to install some additional dependencies that are required
for installing the NVIDIA drivers.
# sudo dnf install -y tar bzip2 make automake gcc gcc-c++ pciutils elfutils-libelf-devel libglvnd-devel
- Enable the PowerTools repo and set up the external dependency on EPEL for DKMS.
# sudo dnf config-manager --set-enabled PowerTools
# sudo dnf install -y epel-release
- Install the CUDA repository public GPG key
# distribution=rhel8
- Setup the CUDA network repository
# ARCH=$( /bin/arch )
# sudo dnf config-manager --add-repo http://developer.download.nvidia.com/compute/cuda/repos/$distribution/${ARCH}/cuda-$distribution.repo
- For CentOS 8, ensure that the system has the correct Linux kernel sources from the CentOS repositories:
# sudo dnf install -y kernel-devel-$(uname -r) kernel-headers-$(uname -r)
- Note that in some cases, user may have to update the running kernel as a pre-requisite:
# sudo dnf install -y kernel kernel-core kernel-modules
- Update the repository cache and install the driver using the nvidia-driver meta-package
# sudo dnf clean all
# sudo dnf -y module install nvidia-driver:latest-dkms
- Install fabric manager to activate the NVswitch
# sudo dnf module install nvidia-driver:latest-dkms/fm
- Enable FM Service to Auto Start at Boot
# sudo systemctl enable nvidia-fabricmanager
Reference: https://docs.nvidia.com/datacenter/tesla/tesla-installation-notes/index.html#centos8/
3 Install Altair ultraFluidX Application on Virtual Machine
3.1 Download product
Instructions on how to download Altair products from Altair One Marketplace. Before beginning, open Altair One Marketplace in a web browser and log on.
- Type ultraFluidX in the search box and press Enter.
- In the right pane of the web browser, click the Download tab.
- From the Suite Version drop-down menu, select a suite version.
- From the Operating System drop-down menu, select a platform.
At this point of time, ultraFluidX is only available for Linux platform (Operating system drop down menu selection is not editable at the moment).
- Click the Download button to the right of each software package to download and click the download icon.

- Click the License Manager tab button to the right of each software package to download and click the download icon.
![]()

3.2 Install ultraFluidX application on Linux
The step-by-step procedure for product installation is given below,
- Open a command terminal window/prompt.
a) cd – change directory – to the location where the installer executable resides.
b) Execute the sh command on the installer binary with the additional parameter "-i console",
for example, sh hwCFDSolvers2021.2_linux64.bin -i console.
- In the multi-language selector prompt, select the proper locale and press Enter to continue.
- In the License Agreement panel, hit any key and press Enter to advance, or type 0 and press Enter to proceed to the acceptance of the license agreement. Type Y and press Enter to accept the agreement.
- In the Pre-Installation Summary panel, review the Product Features list, Install Folder and disk space requirements. Press Enter to continue
- Follow the prompt to complete the installation.
- Once the installation completes, press Enter to exit the installer
For more information, the installation guide can be found in readme file, which is shown below,
![]()

3.3 License Manager installation
The License manage step by step installation procedure is given below,
- Open a command terminal window/prompt.
a) cd – change directory – to the location where the installer executable resides.
- Log in as root on the machine where the license package will be installed.
User need to log in as root to set up the license in it scripts to automatically launch the daemons at boot time.
- Execute the installer package.
for example, sh altair_licensing_14.5.1.linux_x64.bin -i console
- Follow the prompt to continue installation.
- In the Pre-Installation Summary panel, review the Product Features list, Install Folder and disk space requirements. Press Enter to continue

- Follow the prompt to complete the installation.
- Once the installation completes, press Enter to exit the installer

The following steps explains license activation for Hosted Altair Units (HAU) system to manage the Licenses.
Pre-requisites: To use the HAU system user must first have a valid Altair Connect user account, and account (user’s company account) must have purchased and enabled Hosted Units. Check with the administrator if needed.
Once above pre-requisites are met, user should be able to see the HAU or Hosted Units menu on the left-hand side. There are both administrative functions (if user is one of the company's designated admins) and user functions. This section will cover the typical user functions such as authorizing a machine to use HAU.
- The command line utility almutil is in the install directory, navigate to the directory where almutil resides.
- To authorize a machine, obtain the authorization code by logging in to Altair Connect, click HHWU User and click Generate New Token.

- Highlight the code and copy it using in browser, or simply keep the window available to see the code.

- Enter the authorization code into the command prompt
Use the following command, replacing YOURCODE with the code obtained from Altair portal
./almutil -hhwuauth -code YOURCODE
- The below image shows the successful authorization of machine.

The detailed instruction can be found in the below highlighted document

4 Performance results of ultraFluidX on Azure virtual machine
4.1 Altair ultraFluidX Overview
The aerodynamic characteristics of passenger and heavy-duty vehicles are critical in the production process. Altair ultraFluidXTM is a simulation tool for predicting these aerodynamic characteristics as well as evaluating building and environmental aerodynamics. Altair ultraFluidX's innovative technology is tailored for GPUs. It provides unrivalled performance and allows for overnight simulations of complicated scenarios on a single server.
Product Highlights
Lattice Boltzmann Method (LBM) Solver
Allows for the ultra-fast prediction of aerodynamic characteristics of passenger and heavy-duty vehicles, as well as in building and environmental aerodynamics. Overnight resolution of highly transient aerodynamics simulations on a single server
Integrated, robust volume meshing for fast design changes
A completely automated volume mesh generation with minimal surface mesh requirements and support for intersecting parts simplifies component replacement and enables rapid assessment of hundreds of variants.
Native GPU Implementation
A native GPU-based code that naturally takes use of current GPUs' enormous power and memory bandwidth.
Efficient Result Analysis
Enhanced post-processing capabilities enable the extraction of useful simulation data with a smaller memory footprint while focusing on only the relevant computational domain areas.
4.1.1 Model Details
The Roadster and CX1 test case model have been selected as standard performance test case for testing the expected performance of the ultraFluidX on Azure VM. The models are shown below,
Roadster

CX1

4.2 Altair ultraFluidX on Azure Platform
When it comes to performance parameters, Computation time (time taken to complete the simulation using GPUs) is one parameter which needs to be analysed. To carry out these complex and heavy simulations on Altair ultraFluidX software, right hardware is required. Microsoft partnered with Nvidia provides the required and suitable Infrastructure and hardware on Azure cloud platform. Microsoft Azure provides the latest and fastest compute capabilities for GPU intensive workloads.
|
Operating system and Nvidia drivers Details |
|
|
Operating system version |
CentOS Linux release 8.1.1911 (Core) |
|
OS Architecture |
X86-64 |
|
GPU Drivers version |
470.57.02 |
|
Cuda version |
11.4 |
4.3 Altair ultraFluidX 2021.2 Performance Results
GPU-based fluid dynamics simulations are carried out on the VM. To analyse the performance, the simulation is carried out for shortened test cases only and not for full production-level test cases. However, the projected wall clock times and computation times for a full production run of the CX1 with 3 s of physical time are additionally provided for completeness. Due to the constant workload per time step, these can be easily computed from the computation time of the short run via linear extrapolation.
The total simulation consists of two phases, a mostly CPU-based pre-processing phase (independent of the physical simulation time) and the GPU-based computation phase. The simulation is carried out to see the performance of GPU on the chosen Azure VM. Refer chapter 2.2 for the VM specifications. The results are presented below,
Wall clock time in seconds:
|
Model Name |
#1 GPU |
#2 GPU |
#4 GPU |
#8 GPU |
|
Roadster |
1571 |
1097 |
731 |
539 |
|
CX1 (Short) |
NA |
NA |
6679 |
4743 |
|
CX1 (Production) |
NA |
NA |
39115 |
23518 |
Pre-processing time in seconds:
|
Model Name |
#1 GPU |
#2 GPU |
#4 GPU |
#8 GPU |
|
Roadster |
679 |
607 |
446 |
350 |
|
CX1 |
NA |
NA |
4926 |
3728 |
Computation time in seconds:
|
Model Name |
#1 GPU |
#2 GPU |
#4 GPU |
#8 GPU |
|
Roadster |
782 |
433 |
257 |
174 |
|
CX1 (Short) |
NA |
NA |
1560 |
903 |
|
CX1 (Production) |
NA |
NA |
33996 |
19678 |
Speed-up (Between GPUs):
|
Model Name |
#1 GPU |
#2 GPU |
#4 GPU |
#8 GPU |
|
Roadster |
1.00 |
1.81 |
3.04 |
4.49 |
|
CX1 |
NA |
NA |
1.00 |
1.73 |
Note:
- "NA" Denotes the model requires more than 100GB of GPU Memory, hence simulation can't perform with #1GPU & #2GPU
- The Speed-up is calculated for the computation time (the phase where GPU is utilized) to see the GPU performance.

Note: To run the CX1 model, minimum of 100GB of GPU memory required, hence simulation didn’t perform with #1GPU & #2GPU

Note: To run the CX1 model, minimum of 100GB of GPU memory required, hence simulation didn’t perform with #1GPU & #2GPU
5 Azure Cost
For the below cost reports, the application installation time is not considered and only wall clock time is considered for the cost calculation. The Hourly rates reported are subject to change. For the current rate, please refer the link https://azure.microsoft.com/en-in/pricing/calculator/
|
Azure VM Size |
Model Name |
# GPU |
Wall clock time in Sec |
Azure VM Hourly Cost |
Total Azure Cost |
|
ND96asr_v4 |
Roadster |
1 |
1571 |
$39.77 |
$17.36 |
|
2 |
1097 |
$39.77 |
$12.12 |
||
|
4 |
731 |
$39.77 |
$8.08 |
||
|
8 |
539 |
$39.77 |
$5.95 |
||
|
CX1 (Short) |
4 |
6679 |
$39.77 |
$73.78 |
|
|
8 |
4743 |
$39.77 |
$52.40 |
||
|
CX1 (Production) |
4 |
39115 |
$39.77 |
$432.11 |
|
|
8 |
23518 |
$39.77 |
$259.81 |
Note:
To run the CX1 model, minimum of 100GB of GPU memory required, hence simulation didn’t perform with #1GPU & #2GPU
6 Summary
- Altair ultraFluidX is successfully deployed and tested on ND A100_v4 series VM on Azure Platform.
- Many complex problems can be solved within a few hours on Azure ND A100_v4 instance.
- Expected Speed-up is achieved with multi-GPUs.
2 Deploy Virtual Machine on Azure Cloud Platform
2.1 Azure Cloud Architecture for Application
2.2 Azure Virtual Machine (VM)
2.3 Create a Virtual Machine on Azure Platform
2.4 Connect to virtual machine
3 Install Altair ultraFluidX Application on Virtual Machine
3.2 Install ultraFluidX application on Linux
3.3 License Manager installation
4 Performance results of ultraFluidX on Azure virtual machine
4.1 Altair ultraFluidX Overview
4.2 Altair ultraFluidX on Azure Platform