1 |
-----BEGIN PGP SIGNED MESSAGE----- |
2 |
Hash: SHA1 |
3 |
|
4 |
Dieter Ries wrote: |
5 |
> |
6 |
> BTW, what is NUMA exactly? And when should one use it? |
7 |
> |
8 |
|
9 |
I don't know the details for linux support for NUMA, but it means |
10 |
non-uniform memory architecture, as opposed to symmetric |
11 |
multi-processing (SMP). |
12 |
|
13 |
In an SMP box all CPUs have equal access to all memory. |
14 |
|
15 |
In NUMA a particular CPU has faster access to some memory than other memory. |
16 |
|
17 |
For few CPUs SMP is feasible and simpler to handle - each CPU sits on a |
18 |
bus with all the RAM, and each CPU accesses any piece of RAM in the same |
19 |
way. The problem is that this doesn't scale well - you get bus |
20 |
contention and maybe even distance/timing issues when you have lots of |
21 |
CPUs. |
22 |
|
23 |
The solution to the problem is to give each CPU (or group of CPUs) a |
24 |
dedicated chunk of RAM, and the ability to access the rest of the RAM by |
25 |
asking other CPUs/busses/etc for help. Access to the local memory is |
26 |
faster than access to non-local memory. The lowered contention for |
27 |
local memory makes it possible to scale up the local speed, but you pay |
28 |
a penalty for accessing non-local memory. |
29 |
|
30 |
So, an OS needs to know about NUMA to get optimum performance. For |
31 |
starters, you'd want to place a processes code and data in the local |
32 |
memory for the CPU it runs on most of the time. |
33 |
|
34 |
And I'm sure somebody who knows a lot more about NUMA would be able to |
35 |
add a lot more to this discussion, and I'm sure I have at least a few |
36 |
errors in my description.... :) |
37 |
-----BEGIN PGP SIGNATURE----- |
38 |
Version: GnuPG v1.4.7 (GNU/Linux) |
39 |
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org |
40 |
|
41 |
iD8DBQFGg/nZG4/rWKZmVWkRAjIRAJ4ymOD7u/QIBNz2hCtfDQQoZfyPtACgo8OU |
42 |
hLGhZqMmpK8RxvhhRo8+z98= |
43 |
=ijjk |
44 |
-----END PGP SIGNATURE----- |