comp.lang.ada
 help / color / mirror / Atom feed
From: Jacob Sparre Andersen <sparre@nbi.dk>
Subject: Arguments for single-mutex-exclusion on protected types (Was: Does Ada tasking profit from multi-core cpus?)
Date: Fri, 16 Mar 2007 15:29:15 +0100
Date: 2007-03-16T15:29:15+01:00	[thread overview]
Message-ID: <ygey7lxb6tg.fsf_-_@hugsarin.dmusyd.edu> (raw)
In-Reply-To: pKiHh.734$PF.381@attbi_s21

Jeffrey R. Carter wrote:

> The last time I looked at the GNAT sources for protected objects,
> each had a mutex associated with it that was obtained before any
> action, even functions. I guess that hasn't changed.

Isn't that the most efficient implementation on a POSIX system?

 a) We use threads (and not processes) for tasks, since it is more
    efficient and a better conceptual match.

 b) We know that it is considered good style to make protected
    function bodies small.

 c) Since we use threads (a) we should use mutexes (and not
    semaphores) to implement inter-task exclusion.

 d) Since the protected function bodies can be assumed to be small
    (b), there will be a relatively large overhead in keeping track of
    the number of queued calls to protected functions and procedures.

 e) Since the protected function bodies can be assumed to be small
    (b), the probability of colliding calls to protected functions is
    relatively small.

 f) It is thus likely that using a single mutex to provide exclusion
    on a protected object is more efficient than adding counters.

The balance in (f) depends on your average collision rate for
protected function calls.  More concurrent threads (more CPU cores)
increase this value.  So does larger protected function bodies.

Now that multi-CPU-core systems are more common, it may be worthwhile
to make a proper examination of the numbers which may change the
balance against (f).

This could also be a challenge for code profilers and optimisers.  It
may be that some protected types need a detailed queue, while others
need a single mutex - depending on the code and the number of
available CPU cores.

Greetings,

Jacob
-- 
Scripts for automating parts of the daily
operations of your Linux system:
                    http://edb.jacob-sparre.dk/tcsh-samling/



  reply	other threads:[~2007-03-16 14:29 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-01-29 11:57 Does Ada tasking profit from multi-core cpus? Gerd
2007-01-29 12:04 ` Georg Bauhaus
2007-01-30 13:55   ` Gerd
2007-02-09 10:18     ` karl
2007-02-09 11:03       ` Stefan Lucks
2007-02-09 11:35         ` Ludovic Brenta
2007-03-04 17:54 `   jpluto
2007-03-05 10:08   ` Ludovic Brenta
2007-03-05 13:12     ` Dmitry A. Kazakov
2007-03-06  5:33       ` tmoran
2007-03-06  8:44         ` Dmitry A. Kazakov
2007-03-07  7:52           ` tmoran
2007-03-07  9:31           ` tmoran
2007-03-06  9:40         ` Colin Paul Gloster
2007-03-06 12:47           ` Jeffrey Creem
2007-03-06 14:44           ` Georg Bauhaus
2007-03-06 16:53         ` Dr. Adrian Wrigley
2007-03-06 18:58           ` tmoran
2007-03-07 10:11             ` Colin Paul Gloster
2007-03-07 18:47               ` tmoran
2007-03-06 18:51         ` Jeffrey R. Carter
2007-03-16 14:29           ` Jacob Sparre Andersen [this message]
2007-03-17  5:26             ` Arguments for single-mutex-exclusion on protected types (Was: Does Ada tasking profit from multi-core cpus?) Jeffrey R. Carter
2007-03-17 17:22               ` Robert A Duff
2007-03-17 17:52                 ` Jeffrey R. Carter
2007-03-17 23:06                 ` Randy Brukardt
2007-03-18 17:57                   ` Robert A Duff
2007-03-19 21:49                     ` Randy Brukardt
2007-03-20  0:55                       ` Jeffrey R. Carter
2007-03-20  1:36                         ` Randy Brukardt
2007-03-20 16:32                           ` Jeffrey R. Carter
2007-03-20 17:51                             ` Randy Brukardt
2007-03-21  0:10                               ` Jeffrey R. Carter
2007-03-26 23:38                               ` Robert A Duff
2007-03-26 23:24                           ` Robert A Duff
2007-03-17 10:25             ` Dmitry A. Kazakov
2007-03-18 17:15               ` Arguments for single-mutex-exclusion on protected types Jacob Sparre Andersen
2007-03-18 18:50                 ` Dmitry A. Kazakov
2007-03-20 12:38                 ` Florian Weimer
2007-03-07  3:58       ` Does Ada tasking profit from multi-core cpus? Steve
2007-03-07  8:39         ` Dmitry A. Kazakov
2007-03-08  5:21           ` Randy Brukardt
2007-03-08 10:15             ` Dmitry A. Kazakov
2007-03-08 21:18               ` accuracy (was: Does Ada tasking profit from multi-core cpus?) Björn Persson
2007-03-09  8:33                 ` accuracy Dmitry A. Kazakov
2007-03-10  1:39                   ` accuracy Randy Brukardt
2007-03-10  9:11                     ` accuracy Dmitry A. Kazakov
2007-03-11  3:03                       ` accuracy Randy Brukardt
2007-03-11  5:21                         ` accuracy tmoran
2007-03-11  8:52                         ` accuracy Dmitry A. Kazakov
2007-03-11 13:57                           ` accuracy Pascal Obry
2007-03-11 14:16                             ` accuracy Dmitry A. Kazakov
2007-03-11 14:37                               ` accuracy Pascal Obry
2007-03-11 15:50                                 ` accuracy Dmitry A. Kazakov
2007-03-11 17:38                                   ` accuracy Pascal Obry
2007-03-11 18:48                                     ` accuracy Dmitry A. Kazakov
2007-03-12 20:20                           ` accuracy Randy Brukardt
2007-03-13  9:33                             ` accuracy Dmitry A. Kazakov
2007-03-10 14:53                     ` accuracy Stephen Leake
2007-03-10 18:36                       ` accuracy Cesar Rabak
2007-03-05 18:46   ` Does Ada tasking profit from multi-core cpus? Jeffrey R. Carter
replies disabled

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