Anfonwch hwn fel neges destun: Optimizing shared memory programs for distributed memory architectures