On Fri, Aug 14, 2015 at 6:14 PM, Steve Richfield <[email protected]>
wrote:

> Logan,
>
> Let me see if I got this right. Reversing computations recovers some of
> the energy used in making those computations?
>

I don't know about recovers, but it wastes less energy, since in a normal
and/or/xor operation a bit is "burned" and turned into heat via resistor.
Whereas in reversible computing no burning takes place, it is simply
redirected (fewer or no input copies needed since some input information
available at each step).

I'm not sure all input information will ultimately be necessary for all
subsequent operations,  we can call these unusable bits "waste bits" so
theoretically if "waste bits" were all put onto a bus they could be useable
as a source of randomness or intermittent power.  Though I guess more
realistically this "waste bus" could be delivered directly to some good
sized heat sink area on the surface, so that the "burning" doesn't happen
inside the chip but only on the surface (thus making 3D chips possible,
maybe brain shape to increase surface area while still reducing lag).
Of course waste-heat can be recycled just as is the case now,  some
heat-sink fans for instance are powered by waste-heat.

The main benefit I see is in the programming sense,  that if all the
outputs are known (including those that would normally go on the "waste
bus") then it's possible to feed it back through the same circuitry to
reverse the computation and achieve the input.

So for instance can reverse a full adder to make a subtractor,  thus
reducing the amount of internal circuitry per register. (typically don't
add and subtract same register simultaneously).

So not only are you saving energy by burning fewer bits,  (no input copies
required for adder since no input information is destroyed), but also less
circuitry is required,  thus can pack more functionality in a smaller
space.



>
> In a very real sense the world is "computing" as thing interact, and we
> are reversing some of those computations to extract meaning. Hence, aren't
> we recovering some energy in the process? Maybe the whole idea behind
> neurons is energy recovery?!!!
>
> Neurons are very complicated though I'm fairly convinced that those
microtubule vibration quantum (reversible) computations have a big part to
do with soul-binding cohesion experience.


> I am obviously no expert here. Perhaps a few comments from you on this
> would clarify things a LOT.
>

Hope that helped.


> Thanks.
>
> Steve
> ============
>
> 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.
>>  "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>
>> <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>
> <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