Abstract
Stream surfaces can reveal complex flow behaviors that are not available on streamlines, but their construction algorithm is also more sophisticated. A common strategy is to sample a series of streamlines from a seeding curve and stitch the neighboring streamlines to form surfaces. To maintain a uniform density of sample points, extra streamlines may be inserted when the flow diverges. This leads to high computation cost with sequential insertion operations, hindering the use of stream surfaces in interactive scenarios and large-scale learning. In this paper, we proposed two parallel strategies to construct stream surfaces on GPUs. Both strategies generate stream surfaces in multiple passes, where each pass consists of a streamline tracing phase and a ribbon construction phase. The first strategy aims at increasing throughput, by hiding the long generation time of an individual surface with computation from other surfaces. The second strategy aims at reducing latency, by generating redundant streamlines for a single surface. We evaluate the performance of the two strategies and compare them with a CPU baseline using ten datasets exhibiting various characteristics.









Similar content being viewed by others
References
Cai W, Heng P.-A (1997) Principal stream surfaces. In: Proceedings of IEEE Visualization Conference, pp 75–81
Camp D, Garth C, Childs H, Pugmire D, Joy K. I (2012) Parallel stream surface computation for large data sets. In: Proceedings of IEEE symposium on large data analysis and visualization, pp 39–47
Chen C.-M, Nouanesengsy B, Lee T.-Y, Shen H.-W (2012) Flow-guided file layout for out-of-core pathline computation. In Proceedings of IEEE symposium on large data analysis and visualization, pp 109–112
Chen C.-M, Shen H.-W (2013) Graph-based seed scheduling for out-of-core FTLE and pathline computation. In: Proceedings of IEEE symposium on large data analysis and visualization, pp. 15–23
Chen C.-M, Xu L, Lee T.-Y, Shen H.-W (2012) A flow-guided file layout for out-of-core streamline computation. In Proceedings of IEEE pacific visualization symposium, pp 145–152
Cook S (2012) CUDA Programming: a Developer’s Guide to Parallel Computing with GPUs. Newnes
Dai Z, Deng L, Che Y, Li M, Zhang J, Wang Y (2023) Evaluating performance portability of five shared-memory programming models using a high-order unstructured cfd solver. J Parallel Distrib Comput 187:104831
Garth C, Krishnan H, Tricoche X, Bobach T, Joy KI (2008) Generation of accurate integral surfaces in time-dependent vector fields. IEEE Trans Visual Comput Gr 14(6):1404–1411
Garth C, Wiebel A, Tricoche X, Joy KI, Scheuermann G (2008) Lagrangian visualization of flow-embedded surface structures. Comput Gr Forum 27(3):1007–1014
Gerndt A, Hentschel B, Wolter M, Kuhlen T, Bischof C. H (2004) VIRACOCHA: An efficient parallelization framework for large-scale cfd post-processing in virtual environments. In: Proceedings of the ACM/IEEE Conference on Supercomputing, pp 50–50
Guo H, Zhang J, Liu R, Liu L, Yuan X, Huang J, Meng X, Pan J (2014) Advection-based sparse data management for visualizing unsteady flow. IEEE Trans Visual Comput Gr 20(12):2555–2564
Han J, Tao J, Wang C (2020) FlowNet: A deep learning framework for clustering and selection of streamlines and stream surfaces. IEEE Trans Vis Comput Gr 26(4):1732–1744
Hultquist J.P.M (1992) Constructing stream surfaces in steady 3D vector fields. In Proceedings of IEEE Visualization Conference, pp 171–178
Li R, Deng L, Dai Z, Zhang J, Liu J, Liu G (2023) A data-centric approach for efficient and scalable cfd implementation on multi-gpus clusters. In International conference on parallel and distributed computing: applications and technologies, pp. 93–104
Lu K, Shen H.-W, Peterka T (2014) Scalable computation of stream surfaces on large scale vector fields. In Proceedings of ACM/IEEE supercomputing conference, pp. 1008–1019
Machado GM, Sadlo F, Ertl T (2014) Image-based streamsurfaces. In Proceedings of SIBGRAPI conference on graphics, patterns and images, pp. 343–350
Martinez Esturo J, Schulze M, Rössl C, Theisel H (2013) Global selection of stream surfaces. Comput Gr Forum 32(2):113–122
McLoughlin T, Laramee RS, Peikert R, Post FH, Chen M (2010) Over two decades of integration-based, geometric flow visualization. Comput Gr Forum 29(6):1807–1829
McLoughlin T, Laramee R. S, Zhang E (2009) Easy integral surfaces: A fast, quad-based stream and path surface algorithm. In Proceedings of computer graphics international, pp. 73–82
Schafhitzel T, Tejada E, Weiskopf D, Ertl T (2007) Point-based stream surfaces and path surfaces. In Proceedings of graphics interface, pp. 289–296
Scheuermann G, Bobach T, Hagen H, Mahrous K, Hamann B, Joy K. I, Kollmann W (2001) A tetrahedra-based stream surface algorithm. In Proceedings of IEEE visualization conference, pp. 151–158
Schneider D, Wiebel A, Scheuermann G (2009) Smooth stream surfaces of fourth order precision. Comput Gr Forum 28(3):871–878
Schulze M, Martinez Esturo J, Günther T, Rössl C, Seidel H-P, Weinkauf T, Theisel H (2014) Sets of globally optimal stream surfaces for flow visualization. Comput Gr Forum 33(3):1–10
Sujudi D, Haimes R (1996) Integration of particles and streamlines in a spatially-decomposed computation. In Proceedings of parallel computational fluid dynamics
Tao J, Wang C (2016) Peeling the flow: A sketch-based interface to generate stream surfaces. In Proceedings of ACM SIGGRAPH Asia Symposium on Visualization, pp. 14:1–14:8
Tao J, Wang C (2018) Semi-automatic generation of stream surfaces via sketching. IEEE Trans Visual Comput Gr 24(9):2622–2635
Ueng S-K, Sikorski C, Ma K-L (1997) Out-of-core streamline visualization on large unstructured meshes. IEEE Trans Visual Comput Gr 3(4):370–380
van Wijk J.J (1993) Implicit stream surfaces. In Proceedings of IEEE visualization conference, pp. 245–252
Yu H, Wang C, Ma K.-L (2007) Parallel hierarchical visualization of large time-varying 3D vector fields. In Proceedings of the 2007 ACM/IEEE conference on Supercomputing, pp 24
Zhang J, Dai Z, Li R, Deng L, Liu J, Zhou N (2023) Acceleration of a production-level unstructured grid finite volume cfd code on gpu. Appl Sci 13(10):6193
Acknowledgements
This work is supported by National Key R &D Program of China through grant 2021YFB0300103, and the National Natural Science Foundation of China through grants 62172456, 62372484, and 61902446.
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher’s Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.
About this article
Cite this article
Xie, D., Zhang, J. & Tao, J. Parallel computation of stream surfaces on GPUs. J Vis 27, 367–382 (2024). https://doi.org/10.1007/s12650-024-00967-1
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s12650-024-00967-1