i386 vs amd64 - benchmark results

Charles Swiger cswiger at mac.com
Wed Jul 27 16:18:03 GMT 2005

On Jul 27, 2005, at 11:52 AM, Vivek Khera wrote:
> The amd64 memory architecture is NUMA -- that is, depending on  how  
> your RAM is layed out, some of it is faster to access for each  
> processor.  Accessing RAM "local" to the other processor(s) is slower.
> There are many subtle issues relating to non-uniform memory access  
> and how to code programs to take advantage of it (or try to avoid  
> being bit by it).  It is a very hard problem, and the three letters  
> following my name came to be from researching this issue 11 years  
> ago :-)
> The FreeBSD scheduler and memory allocators are definitely not NUMA  
> aware.

No, although there appears to be some integration of concepts like  
"virtual memory objects" and binary format branding into FreeBSD from  
Mach, which did make efforts to support assymmetric multiprocessing,  
heterogenous processor types in one box, and NUMA memory architecture.

It is a really hard problem to deal with :-), and you tend to end up  
with processors that could do specific things very quickly, if only  
the communications bandwidth between them and other CPUs was fast  
enough that the cost of distributing work around exceeds the benefits  
of allocating the right processor for a specific job.

I suspect that FreeBSD is going to deal more with this in the context  
of x86 or AMD64 hardware which has a fancy GPU, maybe a smart RAID  
controller, and the specialized NIC hardware which can handle more of  
the TCP/IP stack (not just computing checksums, but handling IPsec,  
VLAN or other encapsulation of frames, doing IP fragment reassembly,  
or even higher layer stuff), then with a couple of 68040's glued to a  
56001 DSP, with i960's running on the Dimension boards...


More information about the freebsd-stable mailing list