Mercury: a reflective middleware for automatic parallelization of Bags-of-Tasks

  • Authors:
  • João Nuno Silva;Luís Veiga;Paulo Ferreira

  • Affiliations:
  • Technical University of Lisbon, Lisboa, Portugal;Technical University of Lisbon, Lisboa, Portugal;Technical University of Lisbon, Lisboa, Portugal

  • Venue:
  • Proceedings of the 8th International Workshop on Adaptive and Reflective MIddleware
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

Today, the development of Bag-of-Tasks, i.e. embarrassingly parallel, applications for execution on multiprocessors or clusters requires the use of APIs not designed for this kind of problem. For instance, MPI allows the parallel execution of tasks, but was developed for much complex parallel applications, with high data communication between tasks. The use of such APIs requires the programmers to learn them, and add complexity to the final parallel solution. Mercury provides a platform for the transformation of serial applications into parallel Bag-of-Tasks. Mercury reads a configuration file stating what methods and classes should be parallelized, loads the application, and in run-time transforms it so that the specified methods are executed concurrently. This transformation is performed without user intervention. Its modular design allows the integration of Mercury with different parallel environments. The initial experiments done show that the overhead is minimal, and that it is possible to take advantage of parallel processing environments (multiprocessors/multicores, clusters, ...) without the use of complex APIs.