From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Everything You Know Is Wrong
Date: Tue, 29 Dec 2015 15:58:24 -0600
Date: 2015-12-29T15:58:24-06:00 [thread overview]
Message-ID: <n5uvm1$6j1$1@loke.gir.dk> (raw)
In-Reply-To: n5ugbf$fqr$1@speranza.aioe.org
"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message
news:n5ugbf$fqr$1@speranza.aioe.org...
> On 2015-12-29 17:57, G.B. wrote:
>
>> The point is that, since order does not matter among these parallel
>> computations, and since parallel loops are not just fantasy,
>> the possibility of postponement follows from parallel loops.
>
> Ada does not have parallel loops. The job is done!
But Ada 202x most likely will.
>> Consider F1 and F2 from a Pure package, X a variable of type T
>> and T without progenitors:
>>
>> declare
>> A : T := F1 (1,2,3);
>> B : T := F2 (X);
>> begin
>> G (A, B);
>> end;
>>
>> Is it impossible for a compiler to see that the initializing parts of
>> the declarations of A and B are independent?
>
> No, because initialization of T may have side effects. Ada mandates B
> initialized after A. Again, the "optimization" you wanted is done.
Irrelevant - the compiler knows if any side-effects are possible (T is known
to the compiler). That is going to be a conservative determination, but it
will be true for many types (there is no side-effect for elementary types,
for instance). Similarly, the compiler could know that other side-effects
aren't possible, either by inspecting the code or by a declaration (many
compilers have mechanisms for this, and Ada 202x is likely to get one as
well).
In any case, optimization is a very important part of compilation. Pretty
much all Ada compilers make decisions like the one shown here every time you
compile anything - the results would be terrible if they did not. For
Janus/Ada, it makes a difference of up to 25% in time and space (compared to
the unoptimized code). And of course one can optimize for many different
things, including power usage -- I'm pretty sure the compilers used for
mobile platforms do such optimizations as a matter of course. And that's for
C -- Ada provides many more optimization possibilities because it has far
more information about the program and the programmers intentions.
Randy.
> BTW, why do you believe that the same amount of computation performed
> consecutively should require less energy or (not quite same) less battery
> drain? It is no obvious. In any case it might depend on the specifics of
> the battery, the board, the memory controller, the number of cores etc.
> You cannot optimize for these, it would lead a combinatoric explosion of
> targets. All that mess to save 0.1% drain?
>
> --
> Regards,
> Dmitry A. Kazakov
> http://www.dmitry-kazakov.de
next prev parent reply other threads:[~2015-12-29 21:58 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-27 0:37 Everything You Know Is Wrong Jeffrey R. Carter
2015-12-27 7:55 ` J-P. Rosen
2015-12-27 17:37 ` Jeffrey R. Carter
2015-12-27 8:46 ` Dmitry A. Kazakov
2015-12-27 17:36 ` Jeffrey R. Carter
2016-01-04 14:44 ` Alejandro R. Mosteo
2015-12-28 9:57 ` Georg Bauhaus
2015-12-28 11:19 ` Dmitry A. Kazakov
2015-12-28 16:27 ` Nicholas Collin Paul de Gloucester
2015-12-28 17:30 ` Dmitry A. Kazakov
2015-12-28 18:50 ` Nicholas Collin Paul de Gloucester
2015-12-28 20:40 ` Dmitry A. Kazakov
2015-12-29 11:42 ` G.B.
2015-12-29 12:36 ` Dmitry A. Kazakov
2015-12-29 13:50 ` G.B.
2015-12-29 14:06 ` J-P. Rosen
2015-12-29 14:16 ` Dmitry A. Kazakov
2015-12-29 16:31 ` Dennis Lee Bieber
2015-12-29 17:02 ` G.B.
2015-12-29 16:57 ` G.B.
2015-12-29 17:36 ` Dmitry A. Kazakov
2015-12-29 17:53 ` G.B.
2015-12-29 18:09 ` G.B.
2015-12-29 22:05 ` Randy Brukardt
2016-01-04 14:51 ` Alejandro R. Mosteo
2015-12-29 21:58 ` Randy Brukardt [this message]
2015-12-28 17:19 ` Nicholas Collin Paul de Gloucester
2015-12-29 23:37 ` darkestkhan
2016-01-05 13:52 ` brbarkstrom
2016-01-10 14:46 ` Michael Erdmann
2016-02-29 12:14 ` Jacob Sparre Andersen
2016-03-02 14:11 ` vincent.diemunsch
2016-03-02 14:23 ` J-P. Rosen
2016-03-02 15:44 ` Bob Brown
2016-03-02 16:30 ` J-P. Rosen
2016-03-02 16:36 ` Bob Brown
2016-03-02 16:52 ` Bob Brown
2016-03-02 14:32 ` Dmitry A. Kazakov
2016-03-02 15:31 ` vincent.diemunsch
2016-02-29 12:27 ` Jacob Sparre Andersen
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox