Speculative Data Distribution in Shared Memory Multiprocessors