Reducing Scheduling Overheads for Concurrent Logic Programs
نویسندگان
چکیده
Strictness analysis is crucial for the efficient implementation of the lazy flmctionM languages. A related technique for the concurrent logic languages (CLLs) called schedule analysis is presented which divides at compile-time a CLL program into threads of totally ordered atoms, whose relative ordering is determined at run-time. The technique enables the enqueuing and dequeuing of processes to be reduced, synchronisation tests to be partially removed, introduces the possibility of using unboxed arguments, and permits variables to be migrated from a heap to a stack to affect a form of compile-time garbage collection. The implementation is outlined and some preliminary results are given.
منابع مشابه
Semantics-Based Analysis for Optimizing Compilation of Concurrent Programs
Concurrent programming languages provide a paradigm for describing programs with complicated communication networks in a clear way. They support the creation of multiple computational units called processes that run concurrently in a program together with the mechanism for communication between processes, thereby simplifying the programming of synchronization and communication. Among them, conc...
متن کاملTowards Granularity Based Control of Parallelism in Logic Programs
Several types of parallelism can be exploited in logic programs while preserving correctness and 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. However, such results do not take into account a number of overheads which appear in practice, such as process creation and scheduling, which can indu...
متن کاملA Methodology for Granularity-Based Control of Parallelism in Logic Programs
Several types of parallelism can be exploited in logic programs while preserving correctness and 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. However, such results do not take into account a number of overheads which appear in practice, such as process creation and scheduling, which can indu...
متن کاملMinimizing the overheads of dependent {AND}-parallelism
Parallel implementations of programming languages need to control synchronization overheads. Synchronization is essential for ensuring the correctness of parallel code, yet it adds overheads that aren’t present in sequential programs. This is an important problem for parallel logic programming systems, because almost every action in such programs requires accessing variables, and the traditiona...
متن کاملAutomatic Optimization of Dynamic Scheduling in Logic Programs
Many modern logic programming languages provide more flexible scheduling than the Prolog traditional left-to-right computation rule. Computation generally also proceeds following some ñxed scheduling rule but certain goals are dynamically "delayed" until their arguments are sufficiently instantiated to allow the cali to run efliciently. This general form of scheduling is referred to as dynamic ...
متن کامل