Some race conditions can be resolved by every thread calculating the result in a private variable and combining all the results in the end. This is often faster, because it involves less waiting. ## Knowledge To use the reduction, you have to add the reduction clause ``reduction(operator : var)`` to your compiler directive. You can use reductions for a handful of operations. Most of the arithmetic operators and some of the logic and bitwise ones plus min and max. For a complete list check the [quick reference](http://www.openmp.org/wp-content/uploads/OpenMP3.1-CCard.pdf). Reduction only need to synchronize as often as there are threads instead of how many operations are actually done. ## Task Instead of using a critical section as before, try your hand at a reduction variable instead.