I'd like to compare parallel CPU and GPU versions with Thrust: http://thrust.github.io
When is a vector big enough that is worth processing on the GPU?
If you are going to have a lot of temporary vectors as part of a larger algorithm, it is usually beneficial to copy the inputs once, do all the computations on the gpu, and copy them back.