Debugging and code verification present daunting challenges for message-passing parallel applications that employ billions of processes/threads. Yet often it is only at scale that software defects first show themselves. When it is difficult or impossible to replicate problems on small scale platforms, development delays and resource costs are significant considerations.   Software mocks, in which reconfigurable components replace dependencies in an application component under test, are a powerful and versatile way to side-step expensive, complex, and/or otherwise impractical dependencies. We propose that mocking application dependencies, and MPI in particular, is an effective technique for testing and debugging exascale message-passing software using small-scale computing resources.
['Thomas L. Clune', 'Hal Finkel', 'M. L. Rilee']
Testing and debugging exascale applications by mocking MPI