Object-oriented design for massively parallel computing