From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: GNAT and Tasklets
Date: Wed, 17 Dec 2014 16:18:41 -0600
Date: 2014-12-17T16:18:41-06:00 [thread overview]
Message-ID: <m6svg2$630$1@loke.gir.dk> (raw)
In-Reply-To: f9828477-a98e-4795-803d-5926aa7a1fdb@googlegroups.com
<vincent.diemunsch@gmail.com> wrote in message
news:f9828477-a98e-4795-803d-5926aa7a1fdb@googlegroups.com...
...
>I am rather surprised that you made a distinction between creating tasks
>and parallelism. I agree that the goal of parallelism is to increase CPU
>usage and therefore make the program run faster. For me creating tasks is
>the Ada way of implementing parallelism. And it is a sound way of doing it
>since compilers, as far as I know, are not really able to find automaticaly
>parallelism in a program. Moreover using things like state machines to
>create parallelism is to complex for a programmer and needs the use of a
>dedicated langage. So tasks are fine.
No, tasks are *not* fine. They are far too heavy-weight for the average
programmer (or even the one that wants to accomplish something fast). And it
is far too easy to introduce race conditions or deadlocks into them. On top
of which (as Brad notes), the optimal parallelism structure depends on the
actual OS/hardware that you run on. You surely don't want to have to encode
that into your program and redo it everytime you find out about a better way
to work on a particular target.
For a lot of uses, what you want is a parallel block or loop that eliminates
the implicit sequential behavior. In that case, the compiler can execute the
code in parallel or sequentially depending on the actual execution
environment. But to make that easy *and* safe, there have to be restrictions
on what you can put into such constructs. That's what the group of four are
looking at (and I would, if I could spare the time).
Tasks are good for separating relatively large and loosely related jobs.
They work great for dealing with web server requests, for instance, because
the requests don't need to talk to each other and just need to do whatever
they do. They're not a very good way to split up a single calculation,
because the granularity is almost certainly going to be too coarse (not
enough parallelism) or too fine (too much overhead), and they're too
inflexible to be able to change that on the fly.
Randy.
next prev parent reply other threads:[~2014-12-17 22:18 UTC|newest]
Thread overview: 73+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-10 16:31 GNAT and Tasklets vincent.diemunsch
2014-12-11 10:02 ` Jacob Sparre Andersen
2014-12-11 16:30 ` Anh Vo
2014-12-11 18:15 ` David Botton
2014-12-11 21:45 ` Egil H H
2014-12-11 23:09 ` Randy Brukardt
2014-12-12 2:28 ` Jacob Sparre Andersen
2014-12-12 8:46 ` vincent.diemunsch
2014-12-12 23:33 ` Georg Bauhaus
2014-12-13 2:06 ` Brad Moore
2014-12-13 6:50 ` Dirk Craeynest
2014-12-14 0:18 ` Hubert
2014-12-14 21:29 ` vincent.diemunsch
2014-12-16 5:09 ` Brad Moore
2014-12-17 13:24 ` vincent.diemunsch
2014-12-16 4:42 ` Brad Moore
2014-12-17 13:06 ` vincent.diemunsch
2014-12-17 20:31 ` Niklas Holsti
2014-12-17 22:08 ` Randy Brukardt
2014-12-17 22:52 ` Björn Lundin
2014-12-17 23:58 ` Randy Brukardt
2014-12-18 10:39 ` Björn Lundin
2014-12-18 23:01 ` Randy Brukardt
2014-12-19 8:39 ` Natasha Kerensikova
2014-12-19 23:39 ` Randy Brukardt
2014-12-19 8:59 ` Dmitry A. Kazakov
2014-12-19 11:56 ` Björn Lundin
2014-12-20 0:02 ` Randy Brukardt
2014-12-18 8:42 ` Dmitry A. Kazakov
2014-12-18 8:56 ` vincent.diemunsch
2014-12-18 9:36 ` Dmitry A. Kazakov
2014-12-18 10:32 ` vincent.diemunsch
2014-12-18 11:19 ` Dmitry A. Kazakov
2014-12-18 12:09 ` vincent.diemunsch
2014-12-18 13:07 ` Dmitry A. Kazakov
2014-12-19 10:40 ` Georg Bauhaus
2014-12-19 11:01 ` Dmitry A. Kazakov
2014-12-19 16:42 ` Brad Moore
2014-12-19 17:28 ` Dmitry A. Kazakov
2014-12-19 18:35 ` Brad Moore
2014-12-19 20:37 ` Dmitry A. Kazakov
2014-12-20 1:05 ` Randy Brukardt
2014-12-20 17:36 ` Brad Moore
2014-12-21 18:23 ` Brad Moore
2014-12-21 19:21 ` Shark8
2014-12-21 19:45 ` Brad Moore
2014-12-21 23:21 ` Shark8
2014-12-22 16:53 ` Brad Moore
2014-12-21 21:35 ` tmoran
2014-12-21 22:50 ` Brad Moore
2014-12-21 23:34 ` Shark8
2014-12-22 16:55 ` Brad Moore
2014-12-22 23:06 ` Randy Brukardt
2014-12-20 16:49 ` Dennis Lee Bieber
2014-12-20 17:58 ` Brad Moore
2014-12-19 19:43 ` Peter Chapin
2014-12-19 20:45 ` Georg Bauhaus
2014-12-19 20:56 ` Dmitry A. Kazakov
2014-12-19 23:55 ` Randy Brukardt
2014-12-19 23:51 ` Randy Brukardt
2014-12-18 22:33 ` Randy Brukardt
2014-12-19 13:01 ` GNAT�and Tasklets vincent.diemunsch
2014-12-19 17:46 ` GNAT?and Tasklets Brad Moore
2014-12-20 0:39 ` GNAT and Tasklets Peter Chapin
2014-12-20 9:03 ` Dmitry A. Kazakov
2014-12-20 0:58 ` GNAT�and Tasklets Randy Brukardt
2014-12-18 9:34 ` GNAT and Tasklets Niklas Holsti
2014-12-18 9:50 ` Dmitry A. Kazakov
2014-12-17 21:08 ` Brad Moore
2014-12-18 8:47 ` vincent.diemunsch
2014-12-18 21:58 ` Randy Brukardt
2014-12-17 22:18 ` Randy Brukardt [this message]
2014-12-18 0:56 ` Shark8
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox