For tutorial and details on using multiple devices, you may want to refer section 4.12 of the AMD-APP-SDK Programming guide.
There's nothing holding you back from doing this. You'll need to supply all devices you want to use to your call to clCreateContext() and then create at least one command queue for each of them. Depending on what you're trying to do, you may need to look at the more advanced task scheduling techniques, e.g. Using out-of order command queues and events to schedule tasks across devices.
With clGetPlatforms you will find out whether you have more than one platform or not. If you run a nVidia GPU board and an AMD CPU you will find to platforms. One platform for the AMD SDK and one for the nVidia CUDA OpenCL implementation.
With clGetDevices you will find for each platform the devices available. It might be one per platform like 1xGPU and 1xCPU. For each device create a context with clCreateContext and then you can run both in parallel.
I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.