Implementing a data parallel language on a tightly coupled multiprocessor

Abstract

Our thesis is that data parallel programs can be translated into programs that execute efficiently on a variety of architectures. Currently we are focusing on the data parallel programming language C*, developed by Thinking Machines Corporation for the Connection Machine processor array. Previous papers have described our design of a cross-compiler for hypercube multicomputers. In this paper we propose the design of a cross-compiler that translates C* programs into C programs suitable for compilation and execution on a tightly coupled multiprocessor. The C* language is based upon a synchronous model of parallel computation, while the resulting C code executes asynchronously on the multiprocessor. We present an algorithm that, given a list of data dependences between expressions, produces a minimal set of barrier synchronizations necessary to ensure the correctness of the translated program

    Similar works