# Parallelize Backpropagation - How to synchronize the weights of each thread?

I implemented a parallel backpropagation algorithm that uses $$n$$ threads. Now every thread gets $$\dfrac{1}{n}$$ examples of the training data and updates its instance of the net with it. After every epoch the different threads share their updated weights. For that I simply add the weights of the threads and then divide each weight by the number of threads. The problem now is that the more threads I use the worse the result. For me this means that my way of synchronizing the threads is not as good as it should be.

Is there a better way to do it?