Skeletons are common patterns of parallelism, such as farm and pipeline, that can be abstracted and offered to the application programmer as programming primitives. We describe the use and implementation of skeletons on emerging computational grids, with the skeleton system Lithium, based on Java and RMI, as our reference programming syttem. Our main contribution is the exploration of optimization techniques for implementing skeletons on grids based on an optimized, future-based RMI mechanism, which we integrate into the macro-dataflow evaluation mechanism of Lithium. We discuss three optimizations: 1) a lookahead mechanism that allows to process multiple tasks concurrently at each grid server and thereby increases the overall degree of parallelism, 2) a lazy taskbinding technique that reduces interactions between grid servers and the task dispatcher, and 3) dynamic improvements that optimize the collecting of results and the work-load balancing. We report experimental results that demonstrate the improvements due to our optimizations on various testbeds, including a heterogeneous grid-like environment.
|Autori:||ALDINUCCI M.; DANELUTTO M.; DUENNWEBBER J.; GORLATCH S.|
|Titolo:||Optimization techniques for skeletons on grids|
|Anno del prodotto:||2005|
|Digital Object Identifier (DOI):||10.1016/S0927-5452(05)80014-0|
|Appare nelle tipologie:||1.1 Articolo in rivista|