1. A method for performing an aggregation operation across multiple threads, comprising: receiving a barrier aggregation instruction that specifies the aggregation operation for execution by a first thread of the multiple threads; combining a value associated with the first thread with an aggregation result for the multiple threads; communicating the aggregation result to each thread of the multiple threads; and waiting until all of the multiple threads have received the barrier aggregation instruction before executing any more instructions.