comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: RFC: Prototype for a user threading library in Ada
Date: Sun, 3 Jul 2016 10:39:31 +0200
Date: 2016-07-03T10:39:31+02:00	[thread overview]
Message-ID: <nlaj0h$1pj4$1@gioia.aioe.org> (raw)
In-Reply-To: 2598edcf-b0fd-4ceb-b1c4-8930371dd3cb@googlegroups.com

On 2016-07-03 09:42, Hadrien Grasland wrote:
> Le samedi 2 juillet 2016 23:14:30 UTC+2, Niklas Holsti a écrit :

>> Moreover, in present Ada it seems to me that the only way to move
>> task-private data from one task to another is to send a copy of the data
>> from one task to the other. Copying data is often poison for performance.
>
> Cheaply moving data around is possible in any language that has heap
> allocation and pointers.

That is the most expensive way doing it, and on top of that, it requires 
shared memory (pool) and thus process-global interlocking. You arrived 
at the starting point.

BTW, when talking about asynchronous model, marshaling must be 
asynchronous too. Another drawback of the method of doing that through 
pointers is that it must be atomic = synchronous => you could not deal 
with large objects, on-demand production models etc. And this is where 
event-controlled model stop working, as it separates data from 
data-related events. A proper abstraction must combine everything into 
ADT objects.

> What is more difficult is to provide an easy to
> use syntax around it.

Hmm, what is difficult about procedure call?

>> Perhaps a new, restricted tasking profile would be needed, analogous to
>> the Ravenscar profile but aimed not at real-time systems but at parallel
>> computation in this event-based style.
>
> It is true that for computation purposes, the full Ada tasking model
> may also be overkill. For example, asynchronous transfer of control can
> be hard to support, and is often overkill for compute scenarios.

Well, actually ATC is totally useless for parallel computing because it 
simply does not work when you wanted to abort an external blocking 
operation. There is a similarity between the ATC and co-routines. ATC 
does not work because the OS is not aware of ATC requests. It is exactly 
same as if a co-routine would perform asynchronous I/O. OS does not know 
how to continue it. My wild guess is that an Ada RTS capable to handle 
co-routines will easily handle ATC as a by product, and conversely.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


  reply	other threads:[~2016-07-03  8:39 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-17  9:44 RFC: Prototype for a user threading library in Ada Hadrien Grasland
2016-06-17 16:18 ` Niklas Holsti
2016-06-17 16:46   ` Dmitry A. Kazakov
2016-06-18  8:16     ` Hadrien Grasland
2016-06-18  8:47       ` Dmitry A. Kazakov
2016-06-18  9:17         ` Hadrien Grasland
2016-06-18 11:53           ` Dmitry A. Kazakov
2016-06-20  8:23             ` Hadrien Grasland
2016-06-20  9:22               ` Dmitry A. Kazakov
2016-06-23  1:42       ` Randy Brukardt
2016-06-23  8:39         ` Dmitry A. Kazakov
2016-06-23 22:12           ` Randy Brukardt
2016-06-24  7:34             ` Dmitry A. Kazakov
2016-06-24 23:00               ` Randy Brukardt
2016-06-25  7:11                 ` Dmitry A. Kazakov
2016-06-26  2:02                   ` rieachus
2016-06-26  6:26                     ` Dmitry A. Kazakov
2016-06-24  0:38           ` rieachus
2016-06-25  6:28             ` Dmitry A. Kazakov
2016-06-26  1:34               ` rieachus
2016-06-26  3:21               ` Randy Brukardt
2016-06-26  6:15                 ` Dmitry A. Kazakov
2016-06-28 20:44                   ` Anh Vo
2016-07-02  4:13                   ` Randy Brukardt
2016-07-02 10:25                     ` Dmitry A. Kazakov
2016-07-05 21:53                       ` Randy Brukardt
2016-07-06  9:25                         ` Dmitry A. Kazakov
2016-07-07  0:32                           ` Randy Brukardt
2016-07-07  6:08                             ` Niklas Holsti
2016-07-08  0:03                               ` Randy Brukardt
2016-07-08  7:32                                 ` Dmitry A. Kazakov
2016-07-11 19:40                                   ` Randy Brukardt
2016-07-12  8:37                                     ` Dmitry A. Kazakov
2016-07-12 21:31                                       ` Randy Brukardt
2016-07-08 20:17                                 ` Niklas Holsti
2016-06-24 21:06         ` Hadrien Grasland
2016-06-26  3:09           ` Randy Brukardt
2016-06-26  6:41             ` Dmitry A. Kazakov
2016-07-02  4:21               ` Randy Brukardt
2016-07-02 10:33                 ` Dmitry A. Kazakov
2016-07-05 21:24                   ` Randy Brukardt
2016-07-06 13:46                     ` Dmitry A. Kazakov
2016-07-07  1:00                       ` Randy Brukardt
2016-07-07 14:23                         ` Dmitry A. Kazakov
2016-07-07 23:43                           ` Randy Brukardt
2016-07-08  8:23                             ` Dmitry A. Kazakov
2016-07-11 19:44                               ` Randy Brukardt
2016-06-26  9:09             ` Hadrien Grasland
2016-07-02  4:36               ` Randy Brukardt
2016-07-02  5:30                 ` Simon Wright
2016-07-05 21:29                   ` Randy Brukardt
2016-07-02 11:13                 ` Hadrien Grasland
2016-07-02 13:18                   ` Dmitry A. Kazakov
2016-07-02 16:49                     ` Hadrien Grasland
2016-07-02 21:33                       ` Niklas Holsti
2016-07-03 20:56                         ` Hadrien Grasland
2016-07-02 17:26                   ` Niklas Holsti
2016-07-02 21:14                   ` Niklas Holsti
2016-07-03  7:42                     ` Hadrien Grasland
2016-07-03  8:39                       ` Dmitry A. Kazakov [this message]
2016-07-03 21:15                         ` Hadrien Grasland
2016-07-04  7:44                           ` Dmitry A. Kazakov
2016-07-05 21:38                   ` Randy Brukardt
2016-06-21  2:40     ` rieachus
2016-06-21  7:34       ` Dmitry A. Kazakov
2016-06-18  7:56   ` Hadrien Grasland
2016-06-18  8:33 ` Hadrien Grasland
2016-06-18 11:38 ` Hadrien Grasland
2016-06-18 13:17   ` Niklas Holsti
2016-06-18 16:27   ` Jeffrey R. Carter
2016-06-20  8:42 ` Hadrien Grasland
2016-07-10  0:45 ` rieachus
replies disabled

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