|
Message
From: markus at reaaliaika.net<markus@r...>
Date: Mon Aug 16 15:09:19 CEST 2004
Subject: [oc] Parallel Array Processor Project
> > > > the project; the target is to design architecture > > > > and tools for general purpose parallel processor. > > It is seems you clarify your application field and your > expectactions. > Agree.
Well, I have made some of these clarifications in my web pages, but I didn't want to "spam" them to this mailing list, too :-) Surely, the project is living and I probably need to refine the targets and designs over the time.
> > But, most of you are probably familiar with VHDL - that's one > > of the existing parallel languages and you probably know, [...] > > Well, VHDL does not adhere to any programming model! It is not a > programming language,
As you can see here, I didn't say, that VHDL is a _programming_ language. It's, indeed, a parallel language in the way, that it describes the relations of concurrent events.
I would use it as it is, if it would contain the structures needed for general purpose programming.
> ...but a hardware description language, that mistake is > coming up every week or so. In an HDL you just get to describe > module connectivity and their internal functionalities. Of course, > the VHDL notion of an event and the ability of parallel process > execution (parallel in simulation time advancing) is necessary > to model hardware.
Yes, true and the same things are IMO necessary for a parallel programming languages, too. There's not much of those existing.
The largest group of the languages used for programming parallel systems are conventional languages (C, Fortran, Pascal) with parallel "add-ons" (few instructions for synchronizing events). Mostly they are based on the message passing interface.
The second largest group allows parallel execution, being still close to conventional programming languages, for example Make, LISP, Prolog and Haskell. LISP contains lot's of programming constructions, which are not possible to be executed in parallel; for example the variable model, condition checking block ("cond") and loop constructions (these can be parallelized, if you have a compiler intelligent enough - but, if you have a very intelligent compiler, every language would be parallel).
Then there's a little amount of languages, which are aimed for parallel processing, for example NESL.
|
 |