Hardware and Software Requirements

Overview of nanoFluidX hardware and software requirements.

Hardware

To run nanoFluidX, your system must contain a CUDA-enabled GPU. For Linux, this must support Compute Capability 3.5 or higher. For Windows, the GPU must support Compute Capability 6.0 or higher. For more information, refer to Your GPU Compute Capability in the NVIDIA Developer Documentation.

NVIDIA Enterprise GPU’s, primarily the Tesla, Quadro and RTX series, are recommended as they are well established GPU cards for HPC applications and nanoFluidX has been thoroughly tested on them.
Note: Despite good performance in single precision, the Quadro and RTX series effectively have no double precision capability. Ensure that single precision is sufficient for your needs. For more information, refer to Single versus Double Precision binaries in the User Guide.

NVIDIA GeForce line of GPU cards are CUDA enabled. These are capable of running nanoFluidX, however, Altair does not guarantee accuracy, stability and overall performance of nanoFluidX on these cards. Be aware that the current NVIDIA EULA prohibits using non-Tesla series cards as a computational resource in bundles of four GPUs or more.

The code also has dynamic load-balancing ensuring optimal hardware utilization and can run on multi-node clusters.

Hardware requirements are strongly dependent on the use case. For production level industrial cases, the following are suggested as minimum configuration.
  • Number of CPU cores should at least equal the number of GPU devices. Ideally, the number of CPU cores will slightly exceed the number of available GPU devices to ensure some computational overhead for system operations.
  • Recommended RAM must be at least equal to the RAM of GPU’s combined.
  • 3TB HDD space (long-term storage) or 500GB for operational drive.
  • Common nanoFluidX output can vary from 20 to 400 GB, depending on the size of the case, desired output, and frequency of the output.
  • High speed interconnect for multi-node systems, for example, Infiniband.

Supported Platforms - Linux

nanoFluidX is available for most common Unix-based OS versions, which include GCC and GLIBC system libraries newer than 4.8.5 and 2.17, respectively. Data on library versions for GCC and GLIBC can be found on DistroWatch.

nanoFluidX for Linux is distributed with OpenMPI 4.0.6 and NVIDIA CUDA 11.6.2 libraries. A compatible NVIDIA graphics driver (version 450.80.02 or newer) must be installed on the system.

Table 1. Supported Operating Systems
Distribution GCC GLIBC
RHEL 8.x 8.4.1 2.28
CentOS 8.x 8.4.1 2.28
CentOS 7.x 4.8.5 2.17
SLES 12 SP4 4.8.5 2.22
Ubuntu 18.04 7.3.0 2.27
Ubuntu 16.04 5.3.1 2.23

Supported Platforms - Windows

nanoFluidX is available for Windows 10. nanoFluidX is distributed with NVIDIA CUDA 11.6.2 libraries. A compatible NVIDIA graphics driver (version 452.39 or newer) must be installed on the system.
Due to a lack of CUDA-aware MPI for Windows we cannot support multiple GPUs for Windows. nanoFluidX for Windows is restricted to a single GPU.
Note: nanoFluidX tandem interpolation with nanoFluidX[c] is not supported for Windows.
Important: Windows style paths with backslash “\” are not supported. This is a C++ related limitation as backslash serves as an escape character. For most cases, simply replacing the backslash with a slash “/” is sufficient. While absolute paths including drive letters are supported, mixing drive letters within one .cfg file is not recommended. In general, use of relative paths is encouraged.

For WDDM driver mode, the GPU is a shared resource and heavy GPU usage for display output (pre- and postprocessing) can impair performance. For more information, refer to Windows Driver Mode on this page.