An automatic data distribution generator for distributed memory machines