Towards Fuzzy Granularity Control in Parallel/Distributed Computing

Automatic parallelization has become a mainstream research topic for different reasons. For example, multicore architectures, which are now present even in laptops, have awakened an interest in software tools that can exploit the computing power of parallel processors. Distributed and (multi)agent systems also benefit from techniques and tools for deciding in which locations should processes be run to make a better use of the available resources. Any decision on whether to execute some processes in parallel or sequentially must ensure correctness (i.e., the parallel execution obtains the same results as the sequential), but also has to take into account a number of practical overheads, such as those associated with tasks creation, possible migration of tasks to remote processors, the associated communication overheads, etc. Due to these overheads and if the granularity of parallel tasks, i.e., the “work available” underneath them, is too small, it may happen that the costs are larger than the benefits in their parallel execution. Thus, the aim of granularity control is to change parallel execution to sequential execution or vice-versa based on some conditions related to grain size and overheads. In this work, we have applied fuzzy logic to automatic granularity control in parallel/distributed computing and proposed fuzzy conditions for deciding whether to execute some given tasks in parallel or sequentially. We have compared our proposed fuzzy conditions with existing (conservative) sufficient conditions and our experiments showed that the proposed fuzzy conditions result in more efficient executions on average than the conservative conditions.

[1]  Manuel V. Hermenegildo,et al.  An Overview of the Ciao Multiparadigm Language and Program Development Environment and Its Design Philosophy , 2008, Concurrency, Graphs and Models.

[2]  S. Kaplan,et al.  Algorithmic Complexity of Logic Programs , 1988, ICLP/SLP.

[3]  Saumya K. Debray,et al.  Task granularity analysis in logic programs , 1990, PLDI '90.

[4]  Carolyn McCreary,et al.  Automatic determination of grain size for efficient parallel processing , 1989 .

[5]  Susana Muñoz-Hernández,et al.  Fuzzy Prolog: a new approach using soft constraints propagation , 2004, Fuzzy Sets Syst..

[6]  Jacques Chassin de Kergommeaux,et al.  Parallel logic programming systems , 1994, CSUR.

[7]  Trevor P Martin,et al.  Fril- Fuzzy and Evidential Reasoning in Artificial Intelligence , 1995 .

[8]  James R. Larus,et al.  Using the run-time sizes of data structures to guide parallel-thread creation , 1994, LFP '94.

[9]  Saumya K. Debray,et al.  A Methodology for Granularity-Based Control of Parallelism in Logic Programs , 1996, J. Symb. Comput..

[10]  Hannes Strass,et al.  Rfuzzy framework , 2009, ArXiv.

[11]  V HermenegildoManuel,et al.  Integrated program debugging, verification, and optimization using abstract interpretation (and the Ciao system preprocessor) , 2005 .

[12]  Mitsuru Ishizuka,et al.  Prolog-ELF incorporating fuzzy logic , 2009, New Generation Computing.

[13]  Lorenz Huelsbergen Dynamic language parallelization , 1993 .

[14]  Hannes Strass,et al.  Operational Semantics for a Fuzzy Logic Programming System with Defaults and Constructive Answers , 2009, IFSA/EUSFLAT Conf..

[15]  Boontee Kruatrachue,et al.  Grain size determination for parallel processing , 1988, IEEE Software.

[16]  Carolyn McCreary,et al.  Automatic determination of grain size for efficient parallel processing , 1989, CSC '89.

[17]  Hannes Strass,et al.  RFuzzy: An Expressive Simple Fuzzy Compiler , 2009, IWANN.

[18]  Hannes Strass,et al.  RFuzzy∔A framework for multi-adjoint Fuzzy Logic Programming , 2009, NAFIPS 2009 - 2009 Annual Meeting of the North American Fuzzy Information Processing Society.

[19]  Evan Tick,et al.  Towards an Efficient Compile-Time Granularity Analysis Algorithm , 1992, FGCS.

[20]  Richard C. T. Lee Fuzzy Logic and the Resolution Principle , 1971, JACM.

[21]  Francesca Rossi,et al.  Strict and Nonstrict Independent And-Parallelism in Logic Programs: Correctness, Efficiency, and Compile-Time Conditions , 1995, J. Log. Program..

[22]  Manuel V. Hermenegildo,et al.  Towards execution time estimation in abstract machine-based languages , 2008, PPDP.

[23]  Deyi Li,et al.  A Fuzzy Prolog Database System , 1990 .

[24]  Manuel V. Hermenegildo,et al.  Integrated program debugging, verification, and optimization using abstract interpretation (and the Ciao system preprocessor) , 2005, Sci. Comput. Program..

[25]  Susana Muñoz-Hernández,et al.  Fuzzy Prolog: A Simple General Implementation Using CLP(R) , 2002, LPAR.