Stav dette: Optimizing shared memory programs for distributed memory architectures