[RC5] Re: Needing testers (Mac OS X/G5)

Slawek sgp at telsatgp.com.pl
Wed Aug 11 17:03:02 EDT 2004

In message to "D.net Discussion" <rc5 at lists.distributed.net> sent Wed, 11
Aug 2004 11:57:34 +0800 you wrote:

 SP>> There are obviously situations which will always work slower because
 SP>> of distributed.net client. For example: 1. background threads (zeroing
 SP>> freed memory, garbage collection) need to fight for CPU with
 SP>> distributed.net

 E> I think it's not 'fighting' for CPU time. If the background process is
 E> using very little CPU time and suddenly wants some, it'll get it
 E> (compared with a process that has been hogging the CPU all the time).
 E> Or so.

I guess it depends on operating system. I'm aware of operating systems which
has a strict policy that if there is a thread ready for execution with
higher priority that any other thread, higher priority will receive CPU for
as long as it wants (unless some other equal priority or higher priority
thread becomes ready for execution).

Well, in fact it looks like for example in Free BSD 5.x "pagezero" system
process is running with priority "52", while d.net works with priority "20"
(lowest possible for user's processes) and it looks like dynamic boosting of
thread's priority can't boost it that much.

 SP>> 2. threads requiring much cache memory (cache would be taken by d.net
 SP>> client
 SP>> whenever application's thread goes idle waiting for HDD or network or
 SP>> something)

 E> Very little cache would be taken by dnetc, because most things are in
 E> registers anyway, and dnetc doesn't need much memory anyway (S[26],
 E> L[3], 11 in RC5_72UnitWork, and 1 for *iterations is only 41 longs, or
 E> 164 bytes, which is 0.5% of a 32K cache).

You're right unless we consider program memory cache.

D.net cores like loops' unrolling...

 SP>> 3. systems which throttle CPU clock on overheating (which are designed
 SP>> to do that when CPU is used in 100%)

 E> I'm not sure if the CPU does that (PowerBooks *may*, but usually they
 E> do this when the CPU usage is low, so there's no penalty of reducing
 E> the clock speed).

I've noticed some PC notebooks do that. Especially those using full-blown
Pentium 4 processors.

 SP>> 4. systems where running multiple CPUs simultanously causes each of
 SP>> the processors to work a little bit slower then it works when being
 SP>> the only one working at the moment (logical processors with Hyper
 SP>> Threading bring this to extreme)

 E> Not really. It's only memory access that needs to be synchronised
 E> properly, like memory access (so when one CPU writes to memory, it
 E> signals the other CPU to drop it from the cache). But since
 E> everything's in registers, it doesn't make much of a difference.

Well... I don't know operating systems' internals (there may be some data
required to be synchronised by the OS itself), but you're probably right.

 E> HyperThreading is slower because the two threads have to share the same
 E> functional units (e.g. integer, floating point, etc).

Yes. P4 is the main issue here. I wonder if there is any portable beetween
OSs way to detect if the other logical processor is used at the moment and
pause d.net cruncher if it is.

Slawek Piotrowski

More information about the rc5 mailing list