Это сообщение не сделает "контролируемые исключительные ситуации, плохие" счастливые люди. Однако то, на чем я основываю свой ответ, - то, как исключения Java предназначаются, чтобы использоваться, как определено людьми, которые создали язык.
диаграмма Справочника:
причина, Вы не должны ловить Исключение, то, что это ловит все подклассы, включая RuntimeException.
причина Вы не должны ловить Throwable, то, что это ловит все подклассы, включая Ошибку и Исключение.
существуют исключения (никакая предназначенная игра слов) к вышеупомянутым "правилам":
Для второго обычно достаточно обернуть основной код обработки событий и потоки с выгодой к Throwable и затем проверить фактический тип исключения и соглашения с ним как соответствующий.
The algorithms you are describing are neither simple nor introductory from the perspective of GPU programming. The reason CUDA has examples in these areas is that it has been around long enough for people to have developed these examples. There is currently no publicly available version of OpenCL that runs on GPUs. Both ATI and NVIDIA are offering beta versions of their OpenCL drivers, but ATI's supports only CPU computation and NVIDIA's requires signing an NDA to get. Simply put, OpenCL has not been around long enough for comprehensive examples like these to have been developed and demonstrated.
That said, gaining access to NVIDIA's OpenCL drivers is not difficult. You can find out how to do so on their forums here. I assume that the OpenCL distribution contains some sample programs to help you get started.
This also means that it's an excellent opportunity for you to develop some of these benchmarks and post your results. Then people will refer to your work rather than you referring to their work. I wouldn't expect too many surprises though. OpenCL performance should be roughly on par with CUDA performance once it becomes widely available and supported.