| Subject: Re: P4 Hyperthreading/Improving cache usage |
| From: "Michael D. Ober" <obermd.@.alum.mit.edu.nospam> |
| Date: 01/09/2004, 03:59 |
Actually, SETI Driver will see the HT cores as two seperate processors and
will launch and manage two seperate images of the same program. The SETI
CLI is a single threaded application, and as such, can only run on one CPU
at a time. SETI Driver simply runs multiple instances of it.
Now for the fun part on HT processors (this is based on feedback in this NG)
- The SETI CLI only resides in memory once since Windows shares read-only
images across processes.
- You are correct in that the L2 cache is shared between WUs. However, many
of the HT enabled processors also have an L3 cache that is at least 1Mb in
size - more than enough to keep two entire WUs in cache memory at a time.
- The chance of an L2 cache miss is still reasonably high as only the newest
HT enabled processors have a 1Mb L2 cache. However, main memory on almost
all these systems is running at 800MHz so the delay to fetch more data is
reduced as well.
- When one of the HT cores needs to fetch main memory, the other core will
frequently still be processing, so only half the processor is idled by the
main memory access.
- In order to reduce main memory latency even more, these processors have a
very deep processing pipeline that detects main memory fetches several
cycles before the memory is needed, drastically reducing the number of times
the processing core has to wait for memory.
- Locking two very CPU and memory intensive processes (two instances of the
SETI CLI) will cause serious contention on the memory bus. This contention
is so severe that your system will actually stop responding. This is why I
tell people to not use the "Set Affinity" checkbox in SETI Driver when
running on HT enabled systems.
Mike Ober.
"f/f george" <george@yourplace.com> wrote in message
news:j7q8j0df17b08mgp4re02kc1nj53alk2ls@4ax.com...
Yes run SetiDriver and set it to run 2 processes at one time.
They both run from the same directory and you don't have the "issues"
you are speaking about.
On Tue, 31 Aug 2004 12:12:26 +0100, "Mike W" <mw_phil@yahoo.co.uk>
wrote:
Please post me a link if this has been covered before!
If you are running two copies of Seti on a HT Pentium, I believe that
they
are seen by Windows
as being two separate images, since you have to run each one in its own
directory.
This means that they use two separate chunks of cache memory, leading to
potentially lower perfomance if the cache gets full.
Has anyone found a way of letting Windows know that you want to use two
copies of the /same/
program, therefore allowing both copies to share cache memory contents
where
appropriate?
I tried, using a "shortcut" to the first .exe file for the second
instance
of Seti, without success.
Regards
Mike.