Re: Rise of the multicore machines
- From: "Chris Thomasson" <_no_spam_cristom@xxxxxxxxxxxxxxxxxxxx>
- Date: Sat, 19 Nov 2005 18:22:26 -0600
>> I almost forgot
>> 14) tracing GC (e.g. Java lock-free linked lists)
>>
> 15) Yet Another Rabbit (YAR)
>
> Another hat trick. It's secret at this point until I decide what
> do with it (assuming it works). It has the advantage of being
> more portable
That's the route I took with VZOOM; the memory visibility requirements can
be guaranteed to work via. POSIX mutex semantics. So, I can add yet another
pattern to your list:
16) Distributed Proxy Ref-Counting (DPRC)?
Each thread has an array of reference counters that track the total amount
of proxy references there are to an object. Sum of all threads counters is
total proxy count for an object. Two or more objects are allowed to share
the same per-thread reference count. Adjustments to the count can be made
without any atomic ops and/or membars. Repeatedly iterating over a large
shared circular linked-list could be as simple as this:
int loops = 0;
int loop_sync = 8192;
item *f, *nx;
f = vz_persistent_inc( &col.front );
while ( f )
{
nz = vz_persistent_inc( &f->next );
do_work( f );
if ( ! ( (++loops) % loop_sync ) )
{
vz_sync();
}
vz_persistent_dec( f );
f = nx;
}
This simple example happens to voluntary execute a synchronization (membar),
however they can also be tracked by relying on highly non-portable operating
system information, ect... The reason I use the term "persistent" is because
references can exist across calls to vz_sync() and/or operating system
induced synchronizations, also the number of references a thread can acquire
is basically unbounded. IMHO, this is what I think sets VZOOM apart from
most of the schemes that are currently out there. I will be able to provide
some working examples that are based on various Distributed Proxy
Ref-Counting schemes in early December so you can see VZOOM in action...
> and having less patent entanglement problems (unless
> I patent it of course).
Yes. It seems that the claims for most of the relevant patents in this area
are narrowed down to a point where you can slide around "some of them",
indeed... For instance, I can claim that VZOOM requires a thread/processor
in a plurality of threads/processors to periodically, episodically or
randomly execute a "memory barrier". This simple claim is very broad and
doesn't need to be narrowed down to support the patent teachings. It also
did not infringe on existing relevant patent claims...
;)
.
- Follow-Ups:
- Re: Rise of the multicore machines
- From: Joe Seigh
- Re: Rise of the multicore machines
- References:
- Rise of the multicore machines
- From: Joe Seigh
- Re: Rise of the multicore machines
- From: Doug
- Re: Rise of the multicore machines
- From: Joe Seigh
- Re: Rise of the multicore machines
- From: John Hickin
- Re: Rise of the multicore machines
- From: Joe Seigh
- Re: Rise of the multicore machines
- From: Joe Seigh
- Re: Rise of the multicore machines
- From: Joe Seigh
- Rise of the multicore machines
- Prev by Date: Re: Process got stuck after receiving signal SIGUSR1
- Next by Date: Thread within c++ class
- Previous by thread: Re: Rise of the multicore machines
- Next by thread: Re: Rise of the multicore machines
- Index(es):
Relevant Pages
|