[comp.compilers] Compiling Functional Languages for Parallel Architectures

birger@diku.dk (Birger Andersen) (08/12/89)

I am working on a parallel object-oriented language with functional parts in
it. Programs written in this language will have parallelism at all levels,
with the fine-grained parallelism being in the functional parts of the
programs (in expressions). Parallelism is expressed explicit by unbound
remote procedure calls at the upper levels and implicit by functional
expressions (side-effect free) at the fine-grained level. 
 Since parallel architectures do not support the same lowest level of
parallelism, my idea is to reduce the implicit fine-grained parallelism in
functional expressions at compile-time to have machine independent parallel
programs to some degree. 
 I would very much like to hear from people out there who know about
research in this area (journal papers, reports, or thesis etc. on automatic
parallelization of functional expressions). This issue is an important
subject of my PhD thesis which I am working on, but it is very hard to find
any stuff on this grain adaption problem. 
 Thank you very much for answers.
 
Birger Andersen Email: birger@diku.dk
Department of Computer Science        Fax:   +45 31 35 96 81
University of Copenhagen
Universitetsparken 1
2100 Copenhagen, Denmark
-- 
Send compilers articles to compilers@ima.isc.com or, perhaps, Levine@YALE.EDU
{ decvax | harvard | yale | bbn }!ima.  Meta-mail to ima!compilers-request.
Please send responses to the author of the message, not the poster.

nick@lfcs.ed.ac.uk (Nick Rothwell) (08/15/89)

In article <1989Aug12.011151.2154@esegue.uucp>, birger@diku (Birger Andersen) writes:
>I am working on a parallel object-oriented language with functional parts in
>it.

You will probably have to clarify what this means... It's fairly
obvious what a functional language is, but "object oriented with
functional parts" is less clear.
   If you're interested in functional languages, there's a lot of
literature on graph reduction, combinator representation, and so on.
But, these are fairly specialised techniques for the pure functional
languages, and don't generalise to other kinds of language.
   Alternatively, you could read my Ph.D. thesis, which detailed
a compiler for parallel functional and logic languages to run on
a shared-memory machine, using a symbolic intermediate code. The
compiler was largely responsible for managing parallelism by detecting
various kinds of tail recursion and parallel tasks, while trying to
reduce the risk of "process explosion".

		Nick.
--
Nick Rothwell,	Laboratory for Foundations of Computer Science, Edinburgh.
		nick@lfcs.ed.ac.uk    <Atlantic Ocean>!mcvax!ukc!lfcs!nick
-- 
Send compilers articles to compilers@ima.isc.com or, perhaps, Levine@YALE.EDU
{ decvax | harvard | yale | bbn }!ima.  Meta-mail to ima!compilers-request.
Please send responses to the author of the message, not the poster.