My next motherboard

Quote from nitro:

Banjo,

Those are good products. However, those products are meant for people that need very fast capacity to store data _in_memory_to_disk_. In other words, database type applications.

My applications require data to fly from the network adapter into memory and to not to "drop" the quotes. Once a quote is in memory, I unleash CPUs operating at 1 BILLION operations a second at it.

One thing I have never tried is to get one of these massive L1 cache CPU's and see what the cache rate hit is on realtime market data. It is an expensive experiment though at about $3K per CPU.

I wish there was a service that allowed me to lease a quad opteron machine with large L1 cache CPUs for a day or two to test it myself...

nitro

a billion ops/sec!.. you are da man!!

{{sigh}} ..if i had only one-tenth your manliness i'd rue the markets :(
 
Quote from weewilly:

if your NIC is on the PCI bus, you may be asking for trouble since all devices on that bus share interrupts.

wee
No!

The new (Quad only?) opteron boards have dual channel PCI/X buses! That is the whole point! Check out:

http://www.amdboard.com/tyan_s4882_opteron_board.html

Look at "Expansion Slots" - "Two independent PCI-X buses."

However, I do not know how the hardware interacts with the OS on this.

To add to that, I have no idea on what bus the _onboard_ NICs are. Even in this case, there is probably no way to assure that the NIC's get one PCI-X bus to itself. Ugh, I honestly don't know.

nitro
 
Quote from nitro:

Second part of my question is: Assuming it is a smart thing to do, what about raising the Base priority of the TCP/IP stack from the default of "normal" to "high" or even "realtime" ?

The win32 kernel (including tcp/ip) already runs at a priority between "high" and "realtime". User process running at "high" priority can not preempt the kernel. User process at "realtime" will preempt the kernel causing the system to freeze.
 
i think it's a driver-level concern -- try it for sure -- you may get good results by exploiting the cache on the one cpu. be sure to benchmark it though with affinity off and on. if it's not better on, then bag it. recognize, however, that the ideal solution is to use software designed to exploit multi-processor machines, i.e, with lots of parallelism, and not simply to "lean" on one processor.

good luck.
 
Quote from nitro:

One thing I have never tried is to get one of these massive L1 cache CPU's and see what the cache rate hit is on realtime market data. It is an expensive experiment though at about $3K per CPU.

You should be able to profile your code and figure out roughly how much cache is optimal. You can also modify the core algorithm, adjust it's memory footprint then examine how performance is affected.
 
Quote from prophet:

The win32 kernel (including tcp/ip) already runs at a priority between "high" and "realtime". User process running at "high" priority can not preempt the kernel. User process at "realtime" will preempt the kernel causing the system to freeze.
prophet,

Can you provide me with a link that shows that the TCP/IP stack is already running at these priorities?

nitro
 
Quote from prophet:

You should be able to profile your code and figure out roughly how much cache is optimal. You can also modify the core algorithm, adjust it's memory footprint then examine how performance is affected.
The first part makes sense. However, I don't follow the second. The memory footprint of the program has nothing to do with the cache hit on the CPUs internal cache(s)?

My machine has gobs of RAM (4GB at this point.) It is my Xeon CPUs that only have 512KB of CACHE, as opposed to the 3MB cache some of these MP CPU's have.

As it is, I have heard that too much cache can slow down a program, as the pipeline gets flushed (I believe that AMD and INTC processors have a similar strategy for cache hits/misses.) if no cache hit and that takes some time.

I really need to understand the way that the caches interact.

nitro :confused:
 
Back
Top