Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I've been looking around, but I'm still not sure on the what OpenCL is. Other than multi processor stuff...

Is it another graphics API like OpenGL and DirectX? Or something that works alongside OpenGL?

I'm planning on learning OpenGL soon (with java if it makes a difference) so I want to know how/which direction to learn it with.

Also, I hear things about CUDA which confuses me further. Just looking for some simple clarifying statements. Thanks.

share|improve this question

closed as too broad by Graham Lee, Thomas Owens Jul 27 '13 at 20:35

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

Wikipedia is your friend – Mahmoud Hossam Dec 22 '11 at 2:48
Search works well, also. – S.Lott Dec 22 '11 at 2:49
As said, I have been looking around (which means a high chance of looking at wikipedia) – Hyland Dec 22 '11 at 3:11
@Hyland Next time you've searched around, make sure you include in your question how the most common search results or the relevant wikipedia article, or whatever else you stumbled upon doesn't answer your question. I'm not saying that you didn't search, just that it would help direct answers and get better ones if we already know stuff like that. For example I hear things about CUDA it's a completely useless sentence, if you don't tell us something about what you've heard and why it's confusing you. – Yannis Dec 22 '11 at 5:46
These types of question are better asked of Google.… – Wolfger Dec 22 '11 at 12:53
up vote 6 down vote accepted

OpenCL is a language/API for doing general purpose highly parallel calculations on a graphics card, but can also be used to generate computed images which are displayed by openGL or directX

It's an open standard (like openGL), CUDA is the NVIDIA only competitor.

Why? Because your $100 graphics card can do 1000s of tasks in parallel - turning it in a mini-supercomputer!

share|improve this answer
Ah, so OpenCl is to Cuda like OpenGl is to DirectX? However opencl/cuda is not focused on graphics (which is where opengl/directx comes in) but allows for better parallel computing? – Hyland Dec 22 '11 at 3:11
@Hyland - yes, there is also a MSFT only version called DirectCompute but nobody uses it. Also graphics is still a big use of cuda/opencl especially for things like video compression, CGI etc – Martin Beckett Dec 22 '11 at 3:32
@Martin Beckett bit harsh to dismiss DirectCompute offhand since it's still so new - CUDA and OpenCL have had a much longer time to mature so of course more people are using those, but DirectCompute is also worth evaluating. – MattDavey Dec 22 '11 at 9:43

OpenCL is parallel programming language to program almost all kinds of modern processors CPUs, GPUs, DSPs to name a few. this article provides a good introduction of opencl

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.