elbe computes complex turbulent multiphase flows including fluid-structure interaction on CPU/multi-GPU environments. The fast growing floating point operation capabilities of affordable graphics processing units (GPUs) have brought supercomputing applications to the desktop computer. General purpose computing on GPU-accelerated architectures allows to perform practical flow simulations with modest time expenditures or even in real-time.
However, the data transfer between GPU device memory and CPU host memory still is limited and often slows down the computations, e.g. when post-processing files are generated. We currently develop a new methodology to replace the standard post-processing step in GPU simulations with an online visualization tool. Accordingly, the CPU/GPU data transfer bottleneck is substituted by a method to access the data directly on the GPU memory. The results are simultaneously visualized with OpenGL.
OpenGL-based on device visualization on GPGPUs
Using the NVIDIA CUDA platform, intermediate simulation results are sampled and processed for rendering directly on the GPU. This includes the generation of vertex coordinates, normals, and color values for the OpenGL render pipeline. OpenGL pixel and vertex buffer objects are mapped to the CUDA context and then filled with data to be either rendered directly, or written to textures and then mapped on rendered quad primitives. Subsequently the generated frame is displayed on a window using the Simple DirectMedia Layer (SDL) libraries. Keyboard and mouse inputs for the interaction with the data processing and visualization are also handled with SDL functions. A user interface (GUI) was designed to control and choose from several visualization features like isosurfaces, stream lines, slices, and the display of glyphs. Computation, visualization, and GUI are started in independent threads to guarantee responsiveness under any computational load.
The development of the real-time visualization tool elbeVIS and its graphical user interface is part of Nils Koliha's Master thesis Computation and Real-Time Rendering of Complex Multiphase Flows on GPGPU Clusters. Nils is a graduate student majoring in Ocean Engineering at Hamburg University of Technology and works as a research assistant at the Institute for Fluid Dynamics and Ship Theory. For more information, you can contact Nils at firstname.lastname@example.org.
elbeVIS features numerous real-time analysing widgets for both two- and three-dimensional flow problems. The visualizer can be interactively controlled during the simulation by the elbeGUI, as shown in the following channel flow simulation:
Real-time 2D flow interaction, Nils Koliha.
The simulation is run on a 512x256 D2Q9 Lattice Boltzmann grid. Mouse controlled user interaction creates and changes boundary conditions within the domain, allowing the user to generate wall objects. Tracking particles can be injected into the flow via the ink tool, generating streaklines. Applying a height map to the colored variable constructs a surface elevation. The representation changes from a mapped texture to a transparent and colored triangle mesh.
For a three dimensional application the dambreak testcase is considered. The visualizer features demonstrated in the following video include the generation of the flow's free surface with a marching cubes algorithm. Slices sample the entire data field and color the corresponding variable values according to a range determined over the slice domain.
Extended demonstration of the features of elbeVIS (3D), Nils Koliha.
Arbitrary obstacles stored in the STL file format can be loaded and dynamically mapped to the computational domain.
Dambreak with obstacles (3D)