Is there any way to write to a global memory buffer in one work group and read the change in other? I tried with atomic oprerations, but this do not work if I have more then one item per work group. Can someone explain in simple way why is such pain to do global synchronization. It looks imposible to me resolving a global problem using the GPU. When the problem can't be separated in small separate groups, what is the way to go?