A Methodology for Granularity Based Control of Parallelism in Logic Programs

June 2, 2009

Pedro Lopez


A Methodology for Granularity Based Control of Parallelism in Logic Programs

Time:   11:00am
Location:   Meeting room 302 (Mountain View), level 3

Several types of parallelism can be exploited in logic programs while preserving correctness and “theoretical efficiency”, i.e. ensuring that the parallel execution obtains the same results as the sequential one and the amount of work performed is not greater.In addition to these results, we also have to take into account a number of overheads which appear in practice, such as process creation and scheduling, which can induce a slow-down, or, at least, limit speedup, if they are not controlled in some way. I will talk about a methodology whereby the granularity of parallel tasks, i.e. the work available under them, is efficiently estimated and used to limit parallelism so that the effect of such overheads is controlled.The run-time overhead associated with the approach is usually quite small, since as much work is done at compile time as possible.Also, a number of run-time optimizations are proposed. The performance improvements resulting from the incorporation of grain size control are shown to be quite good, specially for systems with medium to large parallel execution overheads.