Variable Grain Architectures for MPP Computation and Structured Parallel Programming