comp.lang.ada
 help / color / mirror / Atom feed
From: "G.B." <bauhaus@futureapps.invalid>
Subject: Re: Everything You Know Is Wrong
Date: Tue, 29 Dec 2015 17:57:28 +0100
Date: 2015-12-29T17:57:28+01:00	[thread overview]
Message-ID: <n5udss$vh2$1@dont-email.me> (raw)
In-Reply-To: <n5u4kl$hob$1@speranza.aioe.org>

On 29.12.15 15:16, Dmitry A. Kazakov wrote:

>>>> For example, if two subprograms are independent
>>>> and their execution can be postponed until a third one needs their
>>>> results,
>>>
>>> Firstly, you cannot know that.
>>
>> Independence of subprograms can follow from an abstract design
>> and from a solution, both of which the programmers know.
>
> The compiler must become an oracle, not just programmer's mind reader,
> to guess that a subprogram call can be postponed.

No oracle is needed:

A parallel loop is non-trivially parallel only if in its body
there are, ultimately, statements that can be executed independently
of one another.

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.

So, while no oracle is needed, presumably some rules in the language
need so say what can be safely put inside a parallel loop.

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?

  parent reply	other threads:[~2015-12-29 16:57 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. [this message]
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
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