17-19 October 2012
National Library of Serbia
Europe/Belgrade timezone

Data analisys in high energy phisics using CUDA and OpenCL

18 Oct 2012, 15:45
1h 15m
National Library of Serbia

National Library of Serbia

Skerliceva 1 11000 Belgrade Serbia
Poster Computational Physics Poster session

Speakers

Mr Bogdan Alexandru Dumitru (Institute of Space Science)Mr Ciprian Mitu (Institute of Space Science)

Description

We developed an aplication that allows both the analysis of data and also the real-time visualisation on the same time. This is possible with the help of the GPU. To use the power of GPU is need of an specific framework (we use CUDA and OpenCL). The aplication use data generated by UrQMD (Ultra relativistic Quantum Molecular Dynamics) to run a variety of algorithms and 3D visualization. How it works: As a front-end to the user, the application uses Qt libraries to create the GUI (graphical user interface library) and user interaction. The input data, obtained from a SQLite3 database file, is fetched and loaded on the graphic device. After this, the data is processed on GPU using CUDA (Compute Unified Device Architecture) or OpenCL (Open Computing Language), depends on the GPU use. The processed data is output in a OpenGL(Open Graphics Library) viewport and in ROOT's graphs or histograms. Using widgets, one can select/filter events, frames or particles that are going to be processed. Also, render all frames in an event continually, such that one sees the evolution of particles as a fluid animation. Just like movie player, with buttons to play/pause or go forward, backward. When one wants fast analysis and real-time animation, one chooses parallel processing. Having this in mind, we put move all processing on the best and cheapest parallel unit one can afford: GPU parallel processing. The framework developed by NVIDIA named CUDA and the framework developed by Khronos Group named OpenCL allows one to harness the power of the GPU device using parallel processing. The programming execution model on GPU in CUDA is SIMT (Single Instruction Multiple Thread) and in OpenCL is SIMD(Simple Instruction Multiple Data). This means, only one function (running in multiple threads or instances) can run on the GPU at one time processing the data. In CUDA and OpenCL terminology, this function is named a kernel. After querying database for the interested data, and loading it in GPU, depending on the one's action, a CUDA or OpenCL kernel (depends on the GPU used) is launched accordingly. The kernel above, takes in particles information (x,y,z,px,py,pz,E,...) and outputs the computed values of: transverse momentum, direct and elliptic flow parameters, pseudo-rapidity and OpenGL's necessary data to render the particles. The representation of the processed data can be seen in OpenGL viewport (particles as spheres) and parameters in ROOTs graphs and histograms.

Primary authors

Mr Bogdan Alexandru Dumitru (Institute of Space Science) Mr Ciprian Mitu (Institute of Space Science) Dr Ion Sorin Zgura (Institute of Space Science) Mr Mihai Niculescu (Institute of Space Science)

Presentation Materials

There are no materials yet.