A user-level extension scheme for a task-parallel script language. We are developing a task parallel script language named MegaScript for mega-scale parallel processing. MegaScript regards sequential/parallel programs as tasks, and controls them for massively parallel execution. Although MegaScript programs require optimizations and extensions specific to the application and the computing environment, modifying the runtime system or task programs greatly reduces portability and reusability. To satisfy these conflicting requirements, we propose a user-level dynamic extension scheme named Adapter. In this scheme, the user defines a customization code and hooks to it a specific event. The runtime system calls back the code for the event locally, enabling it to extend or optimize system behavior without modifying the runtime or task programs. The results of our evaluation of the scheme show that the overhead and programming cost are both small enough for practical use.

This software is also peer reviewed by journal TOMS.