comp.lang.ada
 help / color / mirror / Atom feed
From: Shark8 <onewingedshark@gmail.com>
Subject: Re: Generators/coroutines in future Ada?
Date: Wed, 12 Jul 2017 15:47:17 -0700 (PDT)
Date: 2017-07-12T15:47:17-07:00	[thread overview]
Message-ID: <b6e36917-63f0-4c13-aeee-1a1a6f44d495@googlegroups.com> (raw)
In-Reply-To: <ok4cel$ph$1@franka.jacob-sparre.dk>

On Tuesday, July 11, 2017 at 11:35:19 PM UTC-6, Randy Brukardt wrote:
> 
> The coming problem with "classic" programming languages like Ada is that 
> they don't map well to architectures with a lot of parallelism. The more 
> constructs that require sequential execution, the worse that Ada programs 
> will perform.

I agree, but, on the flip-side NVidia's CUDA and OpenMP are weird/horriffic amalgamations of [arguably] high-level language and what is essentially "parallel-assembly" via pragma, which does nothing at all for the reputation of parallel in general except MAKE it both difficult and error-prone.

I do wonder how much it would be different if instead of the "parallel pragma enabled C" compiler they released for CUDA they had gone with an Ada compiler with a simple/single pragma "parallel" that could be applied to TASK or [perhaps] protected-object constructs.

Yes, I know that "automatic parallelization" of high-level language is considered fairly hard right now, but less than 50 years ago an optimizing compiler was considered hard... and we gained a LOT from allowing optimizing compilers + bootstrapping.

That's also why I'm also a bit dubious about the proposed PARALLEL / AND / END blocks: it seems to me that the mistake here is to delve too far into the minutia (the above "parallel assembly" idea) so as to make it difficult or impossible to automatically optimize parallel code because of the more low-level view imposed by the language... much like C's notion of arrays is fundamentally broken and undermines the benefits of C++.

Now, I admit I could very well be wrong here, but there's a gut-feeling that this is not the route we want to go down.


  parent reply	other threads:[~2017-07-12 22:47 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-09 20:19 Generators/coroutines in future Ada? Victor Porton
2017-07-09 21:28 ` Dennis Lee Bieber
2017-07-09 23:56   ` Victor Porton
2017-07-10  7:33   ` Dmitry A. Kazakov
2017-07-10 13:38 ` Victor Porton
2017-07-10 17:01   ` Paul Rubin
2017-07-10 21:24     ` Victor Porton
2017-07-12 17:09       ` Paul Rubin
2017-07-12 17:39         ` Victor Porton
2017-07-13  6:35           ` Paul Rubin
2017-07-11  9:42   ` J-P. Rosen
2017-07-11 12:52     ` Victor Porton
2017-07-11 13:01       ` Victor Porton
2017-07-11 13:26         ` J-P. Rosen
2017-07-11 16:04           ` Dennis Lee Bieber
2017-07-11 16:59           ` Dmitry A. Kazakov
2017-07-11 19:52             ` Pascal Obry
2017-07-11 20:18               ` Dmitry A. Kazakov
2017-07-11 18:36           ` Victor Porton
2017-07-11 19:22             ` J-P. Rosen
2017-07-11 20:25               ` Dmitry A. Kazakov
2017-07-11 23:19                 ` Victor Porton
2017-07-12  4:54                   ` J-P. Rosen
2017-07-12 13:07                     ` Victor Porton
2017-07-12 13:38                       ` Dmitry A. Kazakov
2017-07-12  5:35                   ` Randy Brukardt
2017-07-12  7:27                     ` Dmitry A. Kazakov
2017-07-12 22:47                     ` Shark8 [this message]
2017-07-16 13:11                       ` Robert Eachus
2017-07-17 23:54                       ` Randy Brukardt
2017-07-18  7:38                         ` Dmitry A. Kazakov
2017-07-12  7:19                   ` Dmitry A. Kazakov
2017-07-12  6:35                 ` G.B.
2017-07-12  7:34                   ` Dmitry A. Kazakov
2017-07-12 20:49                     ` G.B.
2017-07-13  8:18                       ` Dmitry A. Kazakov
2017-07-12 17:34           ` Paul Rubin
2017-07-11 19:27         ` Simon Wright
2017-07-12  5:42     ` darkestkhan
2017-07-12  8:57     ` Maciej Sobczak
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox