André Thieme <firstname.lastname@example.org> wrote:
| Kaz Kylheku schrieb:
| > You are dreaming if you think that there are any circumstances
| > (other than circumstances in which performance doesn't matter)
| > in which you don't have to concern yourself about the difference
| > between a uniprocessor and a 256 CPU machine.
| What about 1 core vs. 2 cores?
That's the biggest difference, but...
| And 2 cores vs. 256 cores?
As they say in the military, "Quantity has a quality all its own." ;-}
Even Dekker's Algorithm might be a reasonable way to do mutual
exclusion with only 2 cores, but *no* single-lock solution is
going to work well for 256 cores. Even with hardware support [such
as LL/SC, say], if nothing else the "write invalidate" traffic from
the lock location is going to create a hot spot in the memory system.
Back at SGI, it was often the case that an app that worked very well
on a 64-CPU ccNUMA system fell over when the CPU count was raised to 256.
Ditto a working 256-CPU app when expanded to 1024-CPU.
Amdahl's Law <http://en.wikipedia.org/wiki/Amdahl%27s_Law> always
gets you, eventually... ;-} ;-}
 O.k., so nobody is going to *seriously* consider using Dekker's
Algorithm for user-mode programs these days, though I *have* used
it successfully for simple interlocks between a single-CPU host
computer and a "smart" DMA controller. [*Much* more efficient
than interrupting the host, actually.]
Rob Warnock <email@example.com>
627 26th Avenue <URL:http://rpw3.org/>
San Mateo, CA 94403 (650)572-2607