Section: Highlights of the Year
Highlights of the Year
One of the main challenges of parallelization is the selection of the appropriate granularity to balance between the ideal degree of parallelism and the mitigation of the runtime system's overhead. We have worked on the granularity control for parallel applications focusing on two different paradigms. In the first one, which is the tasks with spawn/sync mechanism, we combined the use of asymptotic complexity functions provided by the programmer, with runtime measurements to predict the execution time of tasks with reasonable accuracy. This estimation can then be used to select the proper task granularity, while making sure to put enough work inside each task. In the second one, which is related to the tasks with dependencies paradigm, we have improved an existing algorithm to cluster a graph of tasks to obtain a meta-graph with larger tasks. This approach was used in an application in collaboration with the TONUS team, and we have demonstrated that it allows for a significant speedup.