Results 1 -
3 of
3
Semantics and compilation of sequential streams into a static SIMD code for the declarative data-parallel language
, 1996
"... 81/2 is a data-parallel language that relies on the notions of stream and collection in a high-level declarative framework. We describe in this research report semantics and compilation of sequential streams of collections for this language. Firstly, a denotational semantics is associated with recur ..."
Abstract
-
Cited by 3 (2 self)
- Add to MetaCart
81/2 is a data-parallel language that relies on the notions of stream and collection in a high-level declarative framework. We describe in this research report semantics and compilation of sequential streams of collections for this language. Firstly, a denotational semantics is associated with recursively defined sequential 81/2 streams. Furthermore, we explain how the fixed point calculus corresponding to the foregoing semantics is implemented. Secondly, we describe an effective code generation scheme targetted towards either sequential, vector or SIMD architectures. Then we present four optimization processes for the generated code: the sharing of common control expressions, the optimization of delay copies, the loop fusion and the concatenation optimization. Next, some elements for the evaluation of the generated code are given. As a conclusion, we recall the overall effectiveness of the stream compilation and draw the future work. Key-words: stream, compilation of data-flow graphs...
Semantics and Compilation of Recursive Sequential Streams in 8 1/2
, 1997
"... Recursive definition of streams (infinite lists of values) have been proposed as a fundamental programming structure in various fields. A problem is to turn such expressive recursive definitions into an efficient imperative code for their evaluation. One of the main approach is to restrict the strea ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Recursive definition of streams (infinite lists of values) have been proposed as a fundamental programming structure in various fields. A problem is to turn such expressive recursive definitions into an efficient imperative code for their evaluation. One of the main approach is to restrict the stream expressions to interpret them as a temporal sequence of values. Such sequential stream rely on a clock analysis to decide at what time a new stream value must be produced. In this paper we present a denotational semantics of recursively defined sequential streams. We show how an efficient implementation can be derived as guarded statements wrapped into a single imperative loop.
8½: Data-Parallelism and Data-Flow
, 1996
"... We advocate a data-flow approach to data-parallelism to ensure both parallelism expressiveness and efficient exploitation of data-parallel applications on new massively parallel architectures. The rational of this approach is introduced in the first part of the paper. Then we develop an experimental ..."
Abstract
- Add to MetaCart
We advocate a data-flow approach to data-parallelism to ensure both parallelism expressiveness and efficient exploitation of data-parallel applications on new massively parallel architectures. The rational of this approach is introduced in the first part of the paper. Then we develop an experimental language following these lines and sketch the techniques used to compile such a data-flow data-parallel language. Its compilation, based upon a static execution model enabling an efficient execution of programs, is introduced. 1. The Parallelism and its Expression Through Data 1.1. A Short Taxonomy of Parallelism Expression in Programming Languages The many existing models and languages for parallel programming lead to an overlap of concepts making the design of a taxonomy a hard task. However, we propose in table 1 a framework used to specify the concepts presented in this paper. Two criteria have been selected to classify the languages: the way they let the programmer express control an...

