Transformation-based implementation of nested data parallelis for distributed memory machines