In recent years, there has been growing support for more tightly coupled applications regarding heterogeneous resources. A specific way of obtaining better performance in such applications is to consider the replacement of execution entities by newer resources during the application’s lifetime. Therefore, this article describes the rationale for developing jMigBSP, which is a Java programming library that offers object rescheduling for round-based applications. In this context, the proposal addresses Bulk Synchronous Parallel BSP applications because BSP represents one of the most often used models for writing tightly coupled parallel programs. jMigBSP’s main contribution examines the rescheduling facility in two different ways: i using migration directives in the application code directly; and ii through automatic load balancing at the middleware level. Specifically, this second idea is feasible because of Java’s inheritance feature, which transforms a simple jMigBSP application into a migratable one by changing only a single line of code. In addition to the description of jMigBSP, this article emphasizes the benefits of using migration over heterogeneous environments by executing scientific applications. The results indicate gains of up to 56% with object rescheduling and support the feasibility of using migration as a load balancing technique.

Software, Practice & Experience