views:

339

answers:

3

Mac OS X 10.6 comes with OpenCL, but how many applications could have better performances if they would be rewritten to use OpenCL? What kind of applications should be rewritten to use OpenCL?

+1  A: 

OpenCL isn't a magical "increase performance" button. There are several prerequisites that need to be satisfied in order to gain a performance boost, the first one is proper hardware (a Tesla GPU helps). As for software that could benefit from it, it's any software that does a lot of parallel computing. This excludes most "daily" software, and leaves graphics processing applications (renderers, image manipulation programs), large data-processing applications where operation may be parallel, and scientific applications.

Usually if you write a application that can benefit from OpenCL you know that you'll benefit from it already ;).

Kornel Kisielewicz
There is no difference in OpenCL support between normal GeForce/Radeon cards and the professional lineups.
Axel Gneiting
A: 

Firstly you can't "rewrite" an entire application using OpenCL. You still need a "normal" language for the GUI etc.

With OpenCL you can accelerate very large data parallel problems. Most problems don't fall into this category.

The most promising candidates are graphics/video and sound processing. But every problem that requires the same operation on a very large set of data will be suitable.

Axel Gneiting
I guess that most of the normal applications that need more CPU-power would better use Grand Central Dispatcher, which is also used from QuickTime X. From the answers given here, I get that OpenCL is very specific for a restricted group of applications OpenCL is a step forward because it allows to use a programming language C-based that can be used on different platforms.
kiamlaluno
GCD is basically only a very sophisticated thread pool implementation.You can do better by managing threads by yourself.
Axel Gneiting
+1  A: 

My company is using OpenCL for scientific calculations. While I'm not part of the development team which is using it I can tell you a few things they're using it to do: large scale data processing of images, imagine reconstruction, and massively parallelization of previously written scientific code.

Basically, OpenCL is rather cutting edge. Unless you want to/have to deal with it, it's best left for those that need it. I'm not trying to discourage you but it is a niche product designed for a niche market. You'd be better served studying other areas of programming for potential employment purposes.

wheaties
As Apple described OpenCL as one of the most important news introduced in Mac OS X 106, I was curious to understand how much applications could take benefit of it.
kiamlaluno