[citation][nom]Heterogeneous[/nom]Now that HD4000 has arrived, can OpenCL be used to enhance the performance of the Ivy Bridge processor while simultaneously using a discrete graphics processor?[/citation]yes, an OpenCL program can see all resources in the system. Currently, a program would have to link in runtimes from each vendor, however.
IBM has made a library that takes care of this, allowing you to link in their middle layer and see all devices through one runtime library. They call in the OpenCL Common Runtime, if any devs out there are curious.
OpenCL does expose the divisions between devices, so it would be extra burden on a developer to split their computations across multiple devices. Even with the middle layer from IBM.
BTW, you don't need 2 GPUs for this. A program can use a single GPU for both graphics and compute, though it must be done with care (existing APIs are still somewhat primitive around resource contention and preemption).