A methodology for the development and support of massively parallel programs