Separation Constraint Partitioning - A New Algorithm for PartitioningNon - strict Programs into Sequential
نویسندگان
چکیده
In this paper we present substantially improved thread partitioning algorithms for modern implicitly parallel languages. We present a new block partitioning algorithm, separation constraint partitioning, which is both more powerful and more exible than previous algorithms. Our algorithm is guaranteed to derive maximal threads. We present a theoretical framework for proving the correctness of our partitioning approach, and we show how separation constraint partitioning makes interprocedural partitioning viable. We have implemented the partitioning algorithms in an Id90 compiler for workstations and parallel machines. Using this experimental platform, we quantify the eeectiveness of diierent partitioning schemes on whole applications.
منابع مشابه
Partitioning Non-strict Functional Languages for Multi-threaded Code Generationy
In this paper, we present a new approach to partitioning, the problem of generating sequential threads for programs written in a non-strict functional language. The goal of partitioning is to generate threads as large as possible, while retaining the non-strict semantics of the program. We deene partitioning as a program transformation and design algorithms for basic block partitioning and inte...
متن کاملSeparation Set Partitioning: Algorithm to Partition Nonstrict Programs into Sequential Threads
In this paper, we propose separation set partitioning algorithm for partitioning nonstrict programs into threads using participation set and separation set and extened it to global partitioning. Separation set partitioning algorithm can merge threads which dependence set and demand set partitioning algorithm may fail to merge. It deals with certain indirect depdendences and potential indirect d...
متن کاملPartitioning Non-strict Functional Languages for Partitioning Non-strict Functional Languages for Multi-threaded Code
In this paper, we present a new approach to partitioning, the problem of generating sequential threads for programs written in a non-strict functional language. The goal of partitioning is to generate threads as large as possible, while retaining the non-strict semantics of the program. We deene partitioning as a program transformation and design algorithms for basic block partitioning and inte...
متن کاملStrict Constraint Qualifications and Sequential Optimality Conditions for Constrained Optimization
Sequential optimality conditions for constrained optimization are necessarily satisfied by local minimizers, independently of the fulfillment of constraint qualifications. These conditions support the employment of different stopping criteria for practical optimization algorithms. On the other hand, when an appropriate strict constraint qualification associated with some sequential optimality c...
متن کاملPartitioning non-strict languages for multi-threaded code generation
In a non-strict language, functions may return values before their arguments are available, and data structures may be defined before all their components are defined. Compiling such languages to conventional hardware is not straightforward; instructions do not have a fixed compile time ordering. Such an ordering is necessary to execute programs efficiently on current microprocessors. Partition...
متن کامل