Logan,

On Thu, Aug 13, 2015 at 6:39 PM, Logan Streondj <[email protected]> wrote:

> so the main part of an FPGA or parallel programing language is to have
> good support for parallel design patterns.
>

The problem is that "parallel" has SO many different meanings - most of
which are unrelated to wiring up logic to compute.


>  "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.
>

One of the differences with FPGAs is you can only use what you need, e.g.
if you only need a 13 bit integer at a particular point in your
computations, you can wire up just 13 bits, leaving remaining hardware for
other things.

>
> 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.
>

Yea, I suspect an error message like "Insufficient hardware to complete
compilation" would be fairly common.

Note that recursion is a procedural sort of thing - the recursions must be
done one-at-a-time, so should be avoided in parallel implementations.

>
> 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.
>

While important, I think this is probably orthogonal to the resent
discussion.

>
> So a good future focused programming language would be reversible
> computing compatible.
>

Does anyone have any idea what such a language might look like?


> Also Quantum Computing also relies on reversible computing.
>

Closer to current technology, the only reason processors aren't now based
on gallium instead of silicon, to gain a 5X boost in speed, is because of
the defect rate in gallium fabrication - that becomes irrelevant in
fault-tolerant designs.

>
> 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.
>

I have already done some design work on a bidirectional macro assembler,
that can easily de-compile its own output. It doesn't look particularly
hard to do, and has a number of advantages, e.g. the ability to checkpoint
on one architecture, and resume on a completely different architeture.


> 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,
>

New FPGA designs cost ~$200M each, but what I envision would probably cost
double that. Since this is an architectural revolution, it is possible to
publish how someone could take over the processor business, and just wait
for someone to wake up.

This is a perfect takeover prospect, where someone with a LOT of money
could simply purchase an FPGA manufacturer, inject the new technology,
multiply their investment, and change the world while getting even richer.


>   but the software side is more doable,
>

Only once the path has been identified.


> though maybe relatively inefficient on current hardware
>

I (personally) have decided to completely ignore performance on present-day
hardware, because it already has languages that work for the relatively
simplistic things it can do.


> if taking advantage of reversible properties -- since some input data
> would have to be copied rather than just collecting it all at output.
>

I suspect that reversibility will prove to be one too many constraints,
though I would like to be proven wrong.

Steve
===========

>
> 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>
> <https://www.listbox.com/member/archive/rss/303/10443978-6f4c28ac> |
> Modify
> <https://www.listbox.com/member/?&;>
> Your Subscription <http://www.listbox.com>
>



-- 
Full employment can be had with the stoke of a pen. Simply institute a six
hour workday. That will easily create enough new jobs to bring back full
employment.



-------------------------------------------
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