A process which is sleeping most of the time will tend to be scheduled on whatever cpu is available. From the perspective of the scheduler which may switch between user processes on a 1/100 second clock a process which uses the cpu heavily will tend to be scheduled on the same cpu. However, from the human perspective observing the top or ps output, even a heavily cpu-bound program will switch between cpus every so often.
Normally locking a process to a particular cpu is not necessary. -Matt