Abstract
Open Computing Language (OpenCL) is an open royalty-free standard for general purpose parallel programming across Central Processing Units (CPUs), Graphic Processing Units (GPUs) and other processors. This paper introduces OpenCL to implement real-time smoking simulation in a virtual surgery training simulation system. Firstly, the Computational Fluid Dynamics (CFD) is adopted to construct the real-time smoking simulation model based on the Navier–Stokes (N-S) equations of an incompressible fluid under the condition of normal temperature and pressure. Then we propose a parallel computing technique based on OpenCL to accomplish the parallel computing of smoking simulation model on CPU and GPU, respectively. Finally, we render the smoke in real time by using a three-dimensional (3D) texture volume rendering method. Experimental results show that the parallel computing technique we have proposed achieve a satisfactory effect on image quality and rendering rate both on CPU and GPU.
Similar content being viewed by others
References
Brandvik T, Pullan G (2007) Acceleration of a two-dimensional Euler Flow Solver Using Commodity Graphics Hardware. Proceedings of the Institution of Mechanical Engineers, Part C:. J Mech Eng Sci 221(C12):1745–1748
Breitbart J, Fohry C (2010) OpenCL—an effective programming model for data parallel computations at the cell broadband engine. In: Proceedings of the 2010 IEEE international symposium on parallel and distributed processing, workshops and PhD forum, IPDPSW 2010
Chorin A, Marsden JE (1990) A mathematical introduction to fluid mechanics, 2nd edn. Springer, New York
Cullip T, Neumann U (1994) Accelerating volume reconstruction with 3D texture mapping hardware. Dissertation, University of North Carolina
Weiskopf D, Schafhitrel T, Erl T (2007) Texture-based visualization of 3D unsteady flow by real-time advection and volumetric illumination. IEEE Trans Vis Comput Graph 13(3):569–582
Denaro FM (2003) On the application of the Helmholtz-Hodge decomposition in projection methods for incompressible flows with general boundary condition. Int J Numer Methods Fluids 43(1):43–69
Fatalian K, Sugerman J, Hanrahan P (2004) Understanding the efficiency of GPU algorithms for matrix-matrix multiplication. In: Proceedings of the SIGGRAPH /EUROGRAPHICS workshop on graphics hardware, pp 133–138
Fedkiw R, Stam J, Jensen HW (2001) Visual simulation of smoke. In: Proceedings of the ACM SIGGRAPH conference on computer graphics, pp 15–22
Foster N, Metaxas D (1997) Modeling the motion of a hot, turbulent gas. In: Proceedings of the ACM SIGGRAPH conference on computer graphics, pp 181–188
Foster N, Metaxas D (1997) Controlling fluid animation. In: Proceedings of computer graphics international conference, CGI, pp 178–188
Khronos OpenCL Working Group (2010) The OpenCL Specification, Version: 1.1, Document Revision: 36. http://www.khronos.org/registry/cl/specs/opencl-1.1.pdf. Accessed 15 October 2010
Kim T, Thürey N, James D, Markus G (2008) Wavelet turbulence for fluid simulation. ACM Trans Graph 27(3): Article Number 50, August 1, 2008
Kraus M, Strengert M, Klein T et al (2007) Adaptive sampling in three dimensions for volume rendering on GPU. In: Asia-Pacific symposium on visualisation, APVIS 2007, Proceedings, pp 113–120
Nottingham A, Irwin B (2009) GPU packet classification using OpenCL: a consideration of viable classification methods. In: Proceedings of the annual research conference of the South African institute of computer scientists and information technologists, pp 160–169
Owens JD, Houseton M, Luebke D, Green S, Stone JE, Phillips JC (2008) GPU computing. Proc IEEE 96(5):879–899
Purnomo B, Rubin N, Houston M (2010) ATI stream profiler: a tool to optimize an OpenCL kernel on ATI radeon GPUs. In: ACM SIGGRAPH 2010 posters, SIGGRAPH ’10
Robler F, Botchen P, Ertl T (2008) Dynamic shader generation for flexible multi-volume visualization. In: IEEE Pacific visualisation symposium 2008, PacificVis proceedings, pp 9–16
Schechter H, Bridson R (2008) Evolving sub-grid turbulence for smoke animation. In: Proceedings of the 2008 ACM SIGGRAPH/Eurographics symposium on computer animation, pp 1–7
Song O-Y, Shin H, Ko H-S (2005) Stable but nondissipative water. ACM Trans Graph 24(1):81–97
Stam J (1999) Stable fluids. In: Proceedings of the 26th annual conference on computer graphics and interactive techniques, SIGGRAPH 99, pp 121–128
Stone JE, Gohara D, Shi G (2010) OpenCL-a parallel programming standard for heterogeneous computing systems. Comput Sci Eng 12(3):66–72
Yeh TY, Faloutsos P, Reinman G (2006) Enabling real-time physics simulation in future interactive entertainment. In: Proceedings—Sandbox symposium 2006: ACM SIGGRAPH video game symposium, Sandbox ’06, pp 71–81
Zhang W, Zhang L, Sun S, Xing Y, Wang Y, Zheng J (2009) A preliminary study of OpenCL for accelerating CT reconstruction and image recognition. In: IEEE nuclear science symposium conference record, NSS/MIC 2009, pp 4059–4063
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Yuan, Z., Si, W., Liao, X. et al. Parallel computing of 3D smoking simulation based on OpenCL heterogeneous platform. J Supercomput 61, 84–102 (2012). https://doi.org/10.1007/s11227-011-0652-y
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11227-011-0652-y