comp.lang.ada
 help / color / mirror / Atom feed
From: Florian Weimer <fw@deneb.enyo.de>
Subject: Re: C versus Ada (once again :-)), was: Re: F-22 ADA Programming
Date: Tue, 04 Nov 2014 14:42:50 +0100
Date: 2014-11-04T14:42:50+01:00	[thread overview]
Message-ID: <87wq7b3wv9.fsf@mid.deneb.enyo.de> (raw)
In-Reply-To: STS5w.353302$Hb3.343492@fx03.iad

* Shark8:

>> If you are trying to parallelize your programs for performance
>> reasons, Ada (as standardized) is not such a nice language anymore
>> because it lacks a modern memory model (which reflects the variations
>> of existing hardware) and access to various forms of atomic
>> instructions with well-defined properties.
>>
>
> Isn't the atomic instruction thing properly recognized as platform
> dependent?

The actual implementation is platform-dependent, but the C11 memory
model abstracts over it.  You use the <stdatomic.h> functionality
which you need to implement your parallel algorithm, and the C
implementation will select something matching for the target
architecture (either an exact match, or a stronger (and slower)
variant).

> If that's the case, then should it be part of Ada, or would
> it be acceptable to have a machine-language (e.g. System.Machine_Code)
> insert for handling it in the implementation part of some package?

It's difficult to get that right because it needs a lot of knowledge
of the target architecture and its variations.  If you stick to the
C11 memory model (or C++11 variant, they are supposed to be
compatible), you only need to learn that, and the C implementation
will map it to the hardware.

> (Would such atomic instructions need to be incorporated at the
> Run-time level?)

Some systems need kernel calls for certain barriers, yes.  But Ada
code needs to issue these barriers today, so support already has to be
present.

The main challenge is to expose weaker (and therefore more efficient)
synchronization primitives.


  parent reply	other threads:[~2014-11-04 13:42 UTC|newest]

Thread overview: 97+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-26 18:31 F-22 ADA Programming nathandsash
2014-10-26 19:02 ` Martyn Pike
2014-10-26 21:20 ` David Botton
2014-10-26 23:24   ` Jeffrey Carter
2014-10-26 23:55     ` David Botton
2014-11-14 22:54       ` rriehle
2014-11-14 23:46         ` Dennis Lee Bieber
2014-11-15  6:43           ` wilson
2014-11-15 17:49             ` Jeffrey Carter
2014-11-15 21:28         ` Maciej Sobczak
2014-11-16  9:57           ` Jean François Martinez
2014-11-16 22:26             ` Maciej Sobczak
2014-11-17  0:33               ` Jean François Martinez
2014-10-27  0:13     ` Robert A Duff
2014-10-27  0:31       ` David Botton
2014-10-27 10:17         ` Georg Bauhaus
2014-10-27 10:47           ` J-P. Rosen
2014-10-27 15:06         ` Adam Beneschan
2014-10-27 22:32           ` Randy Brukardt
2014-10-27  6:28       ` Pascal Obry
2014-10-27 15:04     ` Adam Beneschan
2014-10-27 15:17       ` Björn Lundin
2014-10-27 15:41       ` Maciej Sobczak
2014-10-27 16:01         ` Robert A Duff
2014-10-27 20:16         ` Adam Beneschan
2014-10-28  8:45         ` Natasha Kerensikova
2014-10-28 11:58           ` Bill White
2014-10-28 14:56             ` Adam Beneschan
2014-10-28 19:36               ` Bill White
2014-10-28 18:29           ` Jeffrey Carter
2014-10-28 18:37             ` Adam Beneschan
2014-10-28 19:14               ` David Botton
2014-10-28 21:06               ` Jeffrey Carter
2014-10-28 21:32                 ` Simon Clubley
2014-10-28 21:37                 ` Adam Beneschan
2014-10-28 23:59                   ` Jeffrey Carter
2014-10-29  0:34                     ` Adam Beneschan
2014-10-29  5:24                       ` Jeffrey Carter
2014-10-29  8:37                         ` Dmitry A. Kazakov
2014-10-29 17:20                           ` Jeffrey Carter
2014-10-29 20:43                             ` Dmitry A. Kazakov
2014-10-29 20:55                               ` Jeffrey Carter
2014-10-29 21:40                               ` Georg Bauhaus
2014-10-30  8:56                                 ` Dmitry A. Kazakov
2014-11-08  4:52                                   ` Randy Brukardt
2014-11-08  8:12                                     ` Dmitry A. Kazakov
2014-10-30 15:38                             ` Maciej Sobczak
2014-10-30 15:49                               ` Alan Jump
2014-10-30 22:33                                 ` Dennis Lee Bieber
2014-10-30 23:13                                   ` Jeffrey Carter
2014-10-30 16:07                               ` Bill White
2014-10-30 22:37                                 ` Maciej Sobczak
2014-10-31  9:41                                   ` Georg Bauhaus
2014-10-31 12:51                                     ` Brad Moore
2014-11-01  3:03                                     ` C versus Ada (once again :-)), was: " Simon Clubley
2014-11-01 13:35                                       ` Georg Bauhaus
2014-11-03  1:54                                         ` Simon Clubley
2014-11-03  9:42                                           ` Georg Bauhaus
2014-11-03 12:07                                           ` Luke A. Guest
2014-11-04  2:01                                             ` Simon Clubley
2014-11-03 14:26                                           ` Brian Drummond
2014-11-01 13:46                                       ` Maciej Sobczak
2014-11-03  2:01                                         ` Simon Clubley
2014-11-03  9:10                                           ` Maciej Sobczak
2014-11-03 12:09                                           ` Luke A. Guest
2014-11-03 12:40                                       ` Florian Weimer
2014-11-03 21:58                                         ` Shark8
2014-11-03 22:28                                           ` Dmitry A. Kazakov
2014-11-04 13:42                                           ` Florian Weimer [this message]
2014-11-04 15:01                                             ` G.B.
2014-11-04 15:50                                               ` Florian Weimer
2014-10-31 10:11                                   ` Bill White
2014-10-31 12:52                                     ` Maciej Sobczak
2014-11-02 15:40                                       ` Bill White
2014-11-02 22:23                                         ` Maciej Sobczak
2014-11-02 22:52                                           ` Peter Chapin
2014-11-03  1:36                                           ` Simon Clubley
2014-11-03 19:04                                           ` Laurent
2014-10-31 13:24                               ` Jacob Sparre Andersen
2014-11-08  4:45                 ` Randy Brukardt
2014-11-08 23:43                   ` Shark8
2014-11-09  8:39                     ` Simon Wright
2014-11-09 20:53                       ` Shark8
2014-10-28 19:18             ` Simon Clubley
2014-10-27 16:34       ` David Botton
2014-10-27 16:51         ` brbarkstrom
2014-10-27 18:03           ` G.B.
2014-10-27 22:06             ` Simon Wright
2014-10-28  9:40               ` Georg Bauhaus
2014-10-27 20:06         ` Adam Beneschan
2014-10-27 20:21           ` David Botton
2014-10-28 11:34       ` tonyg
2014-10-27 17:01     ` Pascal Obry
2014-10-27  4:53 ` Jerry Petrey
2014-10-29  1:49   ` F-35 (was:F-22 ADA Programming) Robert Love
2014-10-30  9:01     ` Frédéric Praca
2014-10-30  9:07       ` Frédéric Praca
replies disabled

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