Outdated. Seriously. "New stuff" worse than old stuff. Get Infiniband. 450 nanoseconds guaranteed transfer time AND cheaper than 10g. Only disadvantage - a quite brutal length limit. not of interest in the same set of racks.
Yep. Infiniband is faster, but only mildly so. And, it requires proprietary programming. The 10GigE is standard stuff...
The size of the pipe is not what I am talking about, but the latency. Re TCP/IP, really? I thought you had to make special calls to an Infiniband method and had to link to proprietary libraries?
TCP is a seven layer network. IP on the other hand I believe there is no reason it can't be fast. Most of this stuff by HFT programmers is done by injecting a message directly into a memory location bypassing all such overhead, at least as I understand it.
No, there is a LAN "simulation" available for infiniband. While it DOES carry some overhead, it simply is SIGNIFICANTLY faster than 10g because the wire level is so. http://www.mellanox.com/pdf/whitepapers/IB_TCP_in_the_datacenter_WP_110.pdf THAT SAID: I would scrap TCP and go with named pipes, which are supported by windows low level AND windows has a shared memory implementation. Has a good chance to be expended over Infiniband - just not sure. http://www.hpcadvisorycouncil.com/pdf/IB_and_10GigE_in_HPC.pdf has some more info saying the latency if 10G is 5-6 times that of infiniband. Let me add that you can get decent server motherboads with Infiniband on board and an infiniband switch is cheaper than a 10g Like always for stuff like that, SuperMicro is your best bet - 2U, 4 "nodes" in trays, each with 2 processors.
This "trick" (called "zero copy ethernet", google the term), have been around at least 15 years (I heard about it when I was doing some linux kernel stuff in early 1990s), and is well known to almost all linux hackers. Basically, in a standard OS setup, to send a piece of data, it is first copied to the kernel, and then the kernel perform a copy to the ethernet card memory space. "zero copy" essentially by-passes all of that, just point to the memory (properly aligned!), and tell the card to "fetch". If you flip through the network part of quake source code, it is clearly documented. As an aside, even through HFT have been widely described as an "arms race", the video game industry have done much more innovative things with hardware and specialized coding, even today.
Right. Interesting I didn't realize how well the Quake stuff is documented: http://fabiensanglard.net/quakeSource/quakeSourceNetWork.php