Think of GPUs as excelling at MapReduce, either they do the same operation on many data points or they reduce the data by combining them in an aggregate.  The query listed is taking an avg on a variable # of joins.  Each join is doing a sequential search which can be a lot faster if you can process this in parallel and then when you find the right data you want to aggregate, you are then doing the aggregate.  Both are incredibly faster in parallel.<p>The gpu was designed so you can, lets say, move all vertices in a character&#x27;s body 1 inch forward, you would need to process this one translation for potentially thousands of vertices.  It was also designed to do bitmap operations very quickly where you need to get the same image, but smaller so the GPU would combine nearby pixels to provide a good heuristic of what that same image would look like further away.