One of the most important thing that happened in the last month of 2008, was the release of the OpenCL specification by Khronos:
An in-depth overview which breaksdown by Clause of the specification shows some of the capabilities of this specification. A shorter summary will provide an overview.
IBM is part of the group that wrote this specification.
What is OpenCL?
The original intent of OpenCL was to raise the abstraction of graphics programming. Game programmers will recall the battle for graphic programming using DirectX and OpenGL, which are specialized graphics languages. Now they can speak OpenCL and never have to learn these specialized graphics languages.
NVIDIA's vendor-specialized language CUDA was meant to do this using C, and to some extent, AMD's Close-To-Metal, and of course Microsoft's DIRECTX 11 Compute.. But an open, royal-free specification makes it far easier for everyone to invest their programming time to this. Apple, AMD, NVIDIA, and Intel are also members who participated in this specification. I wonder if Intel's Larrabee will support this.
For parallel programming, this specification enables both data-based and task-based parallelism. It enables programmers to exploit the powers of Graphics Processing Units as General Computing Devices (GPGPU), which has recently been known to give significant speedup in specific applications.
Unlike other parallel languages, OpenCL is aimed towards supporting heterogenous computing.
OpenCL 1.0 released