[plug] maximum RAM linux can cope with
Cameron Patrick
cameron at patrick.wattle.id.au
Mon May 7 23:43:36 WST 2007
Patrick Coleman wrote:
> >[I'm not up-to-speed with whether a quad core system
> >actually comprises 4 cpu's or a single cpu with 4 internal processing units
> >or something].
>
> A quad core CPU contains four actual CPUs wacked onto one chip. I'm
> not completely sure if they share the same cache or not - I don't
> think so (wasn't that why 'hyperthreading' sucked?), but I could be
> wrong.
The 4 cores share 2 separate caches in the current Intel designs. It's
probably best to think of them as two dual-core CPUs sitting on the same
bit of silicon. The Intel Core2Duo design is rather more complex, but
still ends up having twice the grunt of an equivalent single-core CPUs
(for workloads which are trivially parallelisable).
The reason that hyperthreading sucked was that it also shared execution
units, and didn't have any more of them than a non-hyperthreading CPU -
i.e. the additional thread could only help if one thread was waiting for
something else, e.g. accessing memory. A dual-core CPU has twice the
number of integer, floating point, etc units that a single core CPU has;
and a quad-core has twice that number again.
To use large amount of memory on these machines, there are a couple of
options. One is to run an i386 kernel and use PAE (as Patrick
described). This means that each process is limited to only 3GB of RAM
since they still only have a 32-bit address space, but the additional
RAM can still be used for cache, or for multiple applications running
simultaneously, or similar.
The other option is to run an amd64 kernel, which can address more
memory than you can physically insert into any machine commercially
available today. Despite the name, the "amd64" instruction set is
completely supported by current Intel CPUs too. You'll see higher
performance (~30% in some tests I did a while ago, but your mileage will
vary) due to being able to access more registers and less brain-damaged
floating point instructions (no longer pretending to be talking to a
separate FP co-processor living on another chip).
The downside of running an amd64 kernel is that you'll need a 64-bit
build of whatever software you want to run. If it's well-known open
source applications you're using, this will be a non-issue; for example,
I run 64-bit Ubuntu on my desktop at home and the only things I miss are
browser plug-ins like Flash and Java[1]. A lot of high-end commercial
software (Mathematica, Oracle, ...) is available in 64-bit builds too.
HTH,
Cameron
[1] Sun Java is available for amd64, but the web browser plug-in is not.
No idea why Sun thought that was a clever idea.
More information about the plug
mailing list