May 1, 2013

Parallel Programming

Considering how important parallel programming is today it is incredibly difficult to find ways to utilize the GPU in a truly cross platform manner. I would not be surprised if this area gets huge amounts of attention over the next couple years. Considering many newer supercomputers are very reliant on using CPU/GPU hybrid architectures to push both processing power and reduce power consumption it only seems logical that utilizing the power of the GPU is important for computational intensive applications.

Now that there is finally a serious standard on how to approach parallel programming which supports multiple platforms it seems quite feasible to use this in applications. CUDA is great, but is for NVidia; Renderscript is cool but its for android only; that leaves me with OpenCL. However, trying to do this in a cross-platform manner isn't a trivial task and more so if you are like me and trying to do it from the JVM side.

I had a crazy idea: Scala + LibGDX + ScalaCL + Android while retaining cross-platform capabilities and then applying networking. It sounds fairly straightforward but I already know how impossible that would be to fully integrate without gouging my eyes out. Long story short, I will easily have to wait another year or two before that is even possible. Not that I am concerned, phones with OpenCL support are only starting to roll out and majority of the market wouldn't be able to support such a crazy setup.

At the end of the day, I will have to stick with Scala and LibGDX, which I am still only in the initial stages of testing for feasibility. I can still dream... lol

No comments :

Post a Comment