comp.lang.ada
 help / color / mirror / Atom feed
From: eachus@spectre.mitre.org (Robert I. Eachus)
Subject: Re: Parallel & RT GC (was Re: Real-Time GC (was Re: Widespread C++...?)
Date: 20 Jan 1995 14:49:01 GMT
Date: 1995-01-20T14:49:01+00:00	[thread overview]
Message-ID: <EACHUS.95Jan20094901@spectre.mitre.org> (raw)
In-Reply-To: ncohen@watson.ibm.com's message of 19 Jan 1995 19:59:51 GMT


In article <3fmgbn$rns@watnews1.watson.ibm.com> ncohen@watson.ibm.com (Norman H. Cohen) writes:

 > This doesn't make sense, because there is a well known programming trick
 > (used more in analysis-of-algorithms than in real programs because of the
 > large constant factor) for marking a large section of memory as
 > uninitialized in constant time...

   Read barriers are a neat trick, but for real-time applications
replacing a boolean with a pointer and... is totally intolerable.  I
have used algorithms in this class in real-time systems, and although
we devoted a whole page to each bit-vector, the typical maximums are
on the order of a few hundred bits.  But the difference between say 5
clocks and 20 (clearing two words at a time) is crucial.

    So yes, you are correct that these algorithms can be replaced by
more complex versions without the special memory clearing instruction,
but the large constant multiplier makes that approach useless.  To
give a real world example, in one application, if all the time
available was assigned to the innermost loop of an N^2 lg2 N
algorithm, you had 25 clocks per iteration--and a cache miss could
take most of that.  Fortunately I found an algorithm which met the
theoretical complexity limit, and where the all the inner loop did was
set a bit-vector of length N to false.  In that case limiting the size
of the bit-vector (so I could keep it in a register pair and avoid
write throughs) was sufficient.

--

					Robert I. Eachus

with Standard_Disclaimer;
use  Standard_Disclaimer;
function Message (Text: in Clever_Ideas) return Better_Ideas is...



  parent reply	other threads:[~1995-01-20 14:49 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <787227087snz@wslint.demon.co.uk>
     [not found] ` <3da1nd$fss@gateway.wiltel.com>
     [not found]   ` <3e1rqn$ouh@news.parc.xerox.com>
     [not found]     ` <3e22hi$pqf@baygull.rtd.com>
     [not found]       ` <3e26mc$n9u@Starbase.NeoSoft.COM>
1994-12-31  1:09         ` What's Real-Time? (was Re: Widespread C++ Competency Gap?) Henry Baker
1994-12-31  2:12           ` Don Yuniskis
1994-12-31 17:08           ` Przemek Klosowski
1995-01-01  9:35             ` Robert J Carter
1995-01-02 17:10               ` Przemek Klosowski
1995-01-03 23:20               ` Robert I. Eachus
1995-01-04 22:05           ` Fred McCall
     [not found] ` <3ckb8g$841@gateway.wiltel.com>
     [not found]   ` <1994Dec21.151952.8902@merlin.h>
     [not found]   ` <1994Dec21.151952.8902@merlin.h <19941230.201628.350635.NETNEWS@UICVM.UIC.EDU>
     [not found]     ` <3e9f60$8du@jive.cs.utexas.edu>
     [not found]       ` <3epfsi$64d@gamma.ois.com>
     [not found]         ` <3eua1r$4ea@gnat.cs.nyu.edu>
1995-01-11  1:44           ` Parallel & RT GC (was Re: Real-Time GC (was Re: Widespread C++...?) Henry Baker
1995-01-13 13:30           ` R. William Beckwith
1995-01-13 14:59             ` Kelvin Nilsen
1995-01-17  2:45               ` R. William Beckwith
1995-01-19 15:57                 ` Kurt Bischoff
1995-01-17 16:29               ` Robert I. Eachus
1995-01-18 15:27                 ` Henry Baker
1995-01-19 19:59                 ` Norman H. Cohen
1995-01-20  2:20                   ` Henry Baker
1995-01-20 14:49                   ` Robert I. Eachus [this message]
1995-01-22  2:56                 ` David Hanley
1995-01-23 17:06                   ` Robert I. Eachus
1995-01-13 21:04             ` Henry Baker
1995-01-17 10:37               ` Mark Reinhold
replies disabled

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