O que é
A Open Computing Language é uma API padrão para a computação heterogênea. Ela é uma extensão do ISO C99 e define uma API que é comum para CPUs, GPUs e outros equipamentos de computação como DSP realizarem computação.
Há também uma ligação C++ para a programação OpenCL, no entanto, no momento da escrita, somente o ATI Stream suporta tal ligação.
Jeito de se programar
(Falar das Compute Units e Processing Units)
Outros detalhes relevantes
Implementações disponíveis de OpenCL são a da IBM, a da AMD para CPUs (da própria AMD, mas funciona também para Intel) e GPUs ATI (AMD) e a da NVidia para Nvidias GPU.
Recentemente também temos a implemetação OpenCL da Samsung e da Intel.
Caso exista outra que não for citada por favor contribuir aqui :)
Versões
OpenCL 1.x (1.0, 1.1 e 1.2)
** TODO **
Open CL 2.x (2.0, 2.1 e 2.2)
** TODO **
OpenCL 2.0
** TODO **
Livros
Uma coletânea de livros sobre OpenCL pde ser achada em http://www.streamcomputing.eu/education/self-study/books/.
Também há um livro dedicado ao assunti, publicado pela empresa Fixstars, que além de comprado pode ser lido online em:
http://www.fixstars.com/en/opencl/book/OpenCLProgrammingBook/contents.html.
Using OpenCL: Programming Massively Parallel Computers (Advances in Parallel Computing) [Hardcover]. Livro lançado recentemente (março de 2012). Disponível para compra em: http://www.amazon.com/Using-OpenCL-Programming-Massively-Computers/dp/1614990298/khongrou-20
WebCL
Apesar de que ainda não começaram os trabalhos acerca de [WebCL (pelo menos não até a data do presente escrito - 14/03/2011) a Khronos anunciou planos para formar um grupo de trabalho a respeito desta API no momento em que lançou oficalmente a versão 1.0 da API WebGL.
SyCL
Iniciativa opensource da Khronos para fornecer uma implementacao C++17 da STL paralela que usa OpenCL.
Tutoriais
http://www.streamcomputing.eu/education/self-study/tutorials/ Uma página contendo vários links interessantes para quem quer aprender OpenCL.
http://3dgep.com/?p=2192 Um tutorial completo dos básicos de OpenCL com um exemplo de simulação de fluído
https://www.khronos.org/opencl/resources
Links
Bibliotecas
Boost Compute: Biblioteca que fornece uma interface C++ para plataformas de computacao CPU e GPGPU e se baseia na OpenCL.
Recursos (variados)
https://www.khronos.org/opencl/resources: muitos tutoriais, livros e outros links/materiais para auxiliar no aprenidzado e busca de informações em relação a OpenCL
Notícias/Geral
http://developer.amd.com/gpu/ATIStreamSDK/pages/TutorialOpenCL.aspx Introdução a Open CL pela AMD
http://sites.google.com/site/ozvizworkshop/ozviz-2010/ozviz-2010-opencl-workshop-program
http://sa10.idav.ucdavis.edu/ Notas do curso OpenCL By Example - Siggraph Asia 2010. Inclue links para implementações openCL existentes
http://www.streamcomputing.eu/blog/ Site dedicado à GPGPU com ênfase em OpenCL
https://www.khronos.org/adopters/conformant-products/#topencl Fabricantes que passaram pelo teste de conformidade OpenCL
http://www.openclnews.com/apps uma pequena lista de aplicativos que usam OpenCL
Tutoriais
http://opencl.codeplex.com/wikipage?title=OpenCL%20Tutorials%20-%201 Tutorial de OpenCL
http://labs.qt.nokia.com/2010/04/07/using-opencl-with-qt/ Link sobre OpenCL no QT
http://dhruba.name/tag/cookbook/ Ĺivro de leitura rápida e enfiocado na prática sobre como começar a programar em OpenCL
APIs
https://github.com/Computing-Language-Utility/CLU: Computing Language Utility (CLU) é uma biblioteca para minimizar a complexidade de inicializar e utilizar OpenCL nos programas desenvolvidos.
Utilitários
http://clbenchmark.com/: benchmark de implementações OpenCL 1.1
https://www.cs.virginia.edu/~skadron/wiki/rodinia/index.php/Main_Page: Outro benchmark para OpenCL
CompuBench (https://itunes.apple.com/de/app/id880572681?mt=12): Benchmark de implementações OpenCL. Tem a possibilidade de enviar o resultado dos testes OpenCL GPU e CPU no site para fins comparativos.
SDKs
APP-SDK: SDk Da AMD (http://developer.amd.com/tools-and-sdks/opencl-zone/amd-accelerated-parallel-processing-app-sdk/)