Archive for the ‘opencl’ Tag

OpenCL in Cytoscape   Leave a comment

In the the previous post I discussed the integration of OpenCL into Processing by means of its library mechanism. An early version of a new OpenCL-physics library, based on traer.physics, was used to simulate a couple of particle systems in real-time (N-Body and Springs). An interesting application of these new methodologies is to carry out GPU-acceleration of compute operations in Cytoscape. Networks of protein-protein interactions handled in Cytoscape usually involve thousands of nodes and edges. The visualization and analysis of such networks is computationally demanding, and the use of parallel processing on GPUs provides a way to cope with this complexity. So what I did as a new experiment with OpenCL and OpenGL was to use CLPhysics to simulate a force-directed network layout in Cytoscape.

Read the rest of this entry »

Posted April 26, 2011 by ac in Programming

Tagged with , , ,

Real-time experiments with OpenCL, OpenGL, and Syphon   3 comments

This is an exciting time to work with real-time graphics, as the capabilities of GPUs keep increasing in raw performance and functionality, and also because the “GL family” of programming API’s (OpenGL, GLSL, OpenGL ES, JOGL) has been evolving rapidly during the past years in order to give access to new hardware features and devices. One area I have been interested in for some time is General Processing on GPUs (GPGPU). GPUs can allow for major speed-ups in computational problems that are suitable for data parallelization. Originally, it was possible to carry out GPGPU calculations (such as the simulation of a particle system) with the graphics API and writing the computation “kernels” using Cg or GLSL shaders. The major disadvantage of this approach was the need to cast a general computation algorithm in graphics terminology, i.e.: an array of particle positions becoming a texture, the output of a calculation being stored in a color variable, and so on. Despite these complications, many initial GPGPU projects were carried out in this way. I also implemented some simple particle systems for non-photorealistic rendering using OpenGL and GLSL shaders. Today, there are several API’s specifically designed to program the GPUs as general parallel processors, and among the most mature and widely used ones I would mention CUDA and OpenCL. I recently chose to learn OpenCL as it is a hardware-agnostic API aimed to support GPUs from different vendors as well as CPUs and other compute devices. Also, there are already several Java-bindings for OpenCL which are in an advanced stage of development (Jogamp’s JOCL, JavaCL, and JOCL.org). This opened-up the possibility of combining OpenCL and OpenGL in Processing in order to simulate and render large particle systems with full GPU-acceleration. Continue reading for the details (and also for some video renderings made possible by Syphon).

Read the rest of this entry »

Posted April 26, 2011 by ac in Programming

Tagged with , , , ,

Design a site like this with WordPress.com
Get started