so the main part of an FPGA or parallel programing language is to have good
support for parallel design patterns.
 "Structured parallel programming : patterns for efficient computation"
covers a good set of them,  the most important of which seem to be
map/reduce/expand  map/reduce are in many langauges including Haskell,
though most seem to lack a good expand implementation (like map but where
number of outputs can exceed or be less than number of inputs).

Basically can program with these methods in any language, the back-end
simply has to be modified to take advantage of GPU's or FPGA's.

A reason why Haskell and many others are not suitable is that they allow
for recursion, other than proper tail call, (which makes implementation
unwieldly) though if properly limited it then it could work.

Another thing which FPGA's currently lack is reversible circuits,
One of the next major revolutions will be reversible computing, as it will
allow for three dimensional "chips",  since there would both be less waste
heat, and the heat that is produced could be channelled to the surface.

So a good future focused programming language would be reversible computing
compatible.  Also Quantum Computing also relies on reversible computing.

Another thing I've previously mentioned about reversible computing is that
it can reduce amount of work, since if you write a fully reversible
compiler/encoder,  can simply feed backwards to make it a
decompiler/decoder.
For the programming front-end,  could ask the compiler to "reverse" the
program, and it would output the reverse program for you.

Anyways we'd need millions of dollars (at least) to make reversible chips
real,  but the software side is more doable,  though maybe relatively
inefficient on current hardware if taking advantage of reversible
properties -- since some input data would have to be copied rather than
just collecting it all at output.

On Thu, Aug 13, 2015 at 8:30 PM, Steve Richfield <[email protected]>
wrote:

> PM,
>
> Programming languages have taken a particular turn - to be sequential.
> Statements are executed in sequence, or as though they were being executed
> in sequence. This is GREAT for sequential tasks, but a mismatch for many
> things that are fundamentally non-sequential.
>
> Many programmers confuse simultaneous with parallel with multi-thread.
>
> Both computers and people are constructed from components that are always
> and continuously running, every "clock cycle". The sequentiality of
> computer languages is artificially imposed at a VERY high cost.
>
> Some people are getting around this in FPGAs by constructing long
> pipelines to do complex array computations at a rate of
> one-entire-loop-iteration per clock cycle per pipeline. It appears possible
> to achieve these blinding speeds for MANY applications, if only the right
> language to describe these sorts of operations could be found.
>
> This new language would describe computing machines to compute various
> things, rather than describing sequential procedures.
>
> People have long built custom computers to perform particular
> computations. One mechanical computer that served for more than a century
> computed tide tables for the entire world, and is now on exhibit at the
> NOAA headquarters. I built a custom computer to solve 5x5 non-zero sum game
> theory (war strategy) problems more than half a century ago - see
> attachment. I looked a little younger back then.
>
> Now that FPGAs allow custom computing devices to be defined on-the-fly,
> recreating themselves as needed for each routine, all we now need is a good
> language to describe such things.
>
> Steve
> *AGI* | Archives <https://www.listbox.com/member/archive/303/=now>
> <https://www.listbox.com/member/archive/rss/303/5037279-a88c7a6d> | Modify
> <https://www.listbox.com/member/?&;>
> Your Subscription <http://www.listbox.com>
>



-------------------------------------------
AGI
Archives: https://www.listbox.com/member/archive/303/=now
RSS Feed: https://www.listbox.com/member/archive/rss/303/21088071-f452e424
Modify Your Subscription: 
https://www.listbox.com/member/?member_id=21088071&id_secret=21088071-58d57657
Powered by Listbox: http://www.listbox.com

Reply via email to