1 |
Nikos Chantziaras <realnc@×××××.de> posted gi4ng7$6qp$1@×××××××××.org, |
2 |
excerpted below, on Mon, 15 Dec 2008 06:47:06 +0200: |
3 |
|
4 |
> The reason I recommend the dual core over the quad core is that |
5 |
> compiling isn't the primary use of a desktop PC. Application |
6 |
> performance is, that's why the higher speed per core of the E8400 is IMO |
7 |
> better. |
8 |
|
9 |
I won't disagree with you, but I will throw in my own experience going |
10 |
from single CPU to dual socket (before the dual-cores), now to dual dual- |
11 |
core socket (so four cores, total), and add another factor to think |
12 |
about. While it doesn't match your recommendation, it fails to match due |
13 |
to one specific aspect, that may or may not be a factor for the OP. |
14 |
|
15 |
A bit of history, first, going back some years to establish the |
16 |
foundation. The upgrade to my first Athlon, the lowest speed they |
17 |
offered IIRC, 500 MHz, was a very good one for me. I was extremely happy |
18 |
with that machine, because for the first time I could run intensive |
19 |
streaming, etc, say (keep in mind the era) a 300 kbps Real Video stream, |
20 |
and keep up both with playing the video and handling the network video |
21 |
stream, without a hitch! I could even drag the playing window around |
22 |
with the mouse (in Windows 98, IIRC), and the thing would keep playing, |
23 |
not a hitch! That 500 MHz Athlon was good stuff! |
24 |
|
25 |
A few years later, I upgraded, way more than doubling the CPU and with |
26 |
other efficiencies as well, to 1.33 GHz. I was quite disappointed with |
27 |
that upgrade, particularly after the great experience I'd had with the |
28 |
500 MHz Athlon. I thought, way more than double the speed, it should be |
29 |
able to handle two of the things well that the 500 MHz machine could |
30 |
handle one of so well, or handle one intensive one while being able to |
31 |
keep up with several less intensive background tasks, say encoding a |
32 |
video (or now, doing the latest emerge -uDN @world) while continuing to |
33 |
do normal stuff on the desktop. I was wrong, it could still do only one |
34 |
thing at a time well. Trying to get it to do something heavy in the |
35 |
background while continuing to web browse or whatever in the foreground |
36 |
didn't really work so well, and I ended up rather disappointed in that |
37 |
upgrade. |
38 |
|
39 |
Living with that for a few years, I realized what I had done wrong. Yes, |
40 |
the thing was faster, but it was just a single CPU. I would have been |
41 |
better off getting a dual CPU machine, even at just a GHz or likely even |
42 |
at 800 MHz, than I was with the 1.33 GHz single CPU. I determined that I |
43 |
wasn't going to make /that/ mistake again. |
44 |
|
45 |
It was during this time that I switched from MSWindows (98) to Linux, |
46 |
rather than upgrading to what I quickly labeled eXPrivacy, which was a |
47 |
very bitter disappointment to me as I had to that point been a loyal MS |
48 |
user (even running the IE 4, 5, and 5.5 betas). But eXPrivacy crossed a |
49 |
line I simply was not going to cross, and MS very literally gave me |
50 |
little choice BUT Linux. Of course, now, I'm glad they gave me that push |
51 |
(can't thank them enough for it, actually!), but without it, I'd have |
52 |
likely still been an MS user today. Unfortunately, the problem was NOT |
53 |
just the W98 scheduler, as Linux was bumpy trying to do multiple things |
54 |
at once too. I really DID need a multi-CPU solution, and determined that |
55 |
was what my next one would be. |
56 |
|
57 |
As it turned out, my next upgrade was from ia32 to amd64, as well as from |
58 |
single CPU to dual CPU. I purchased a dual socket Opteron box, |
59 |
originally dual Opteron 242s. And yes, I had been correct in my guess. |
60 |
The dual Opteron, even tho I just upped the speed from my previous 1.33 |
61 |
GHz to the 1.6 GHz of the Opteron 242s, and only had a gig of RAM, was |
62 |
everything I had dreamed about in terms of properly multitasking. Even |
63 |
if I let the heavy multi-threaded task use all the scheduler would give |
64 |
it of both CPUs, it was STILL WAY WAY WAY smoother and more pleasant to |
65 |
work with than the single CPU. |
66 |
|
67 |
But, I DID notice one nagging problem. If for some reason something got |
68 |
in an infinite loop, hogging one of the CPUs, while it didn't mean no |
69 |
hope, reboot and get it over with, like could have with a single CPU, |
70 |
that old jerkiness of running the rest of the system on a single CPU came |
71 |
back. Having actually experienced the smoothness a dual CPU could give, |
72 |
the experience both under runaway thread conditions and under extreme CPU |
73 |
load still left something to be desired. |
74 |
|
75 |
Well, as it happens, I still have that same mobo, but I've upgraded |
76 |
pretty much everything else around it. I'm now running 4-way md/kernel |
77 |
RAID-6 for my main system (with some parts I don't need redundancy on |
78 |
RAID-0, for speed), and upgraded the memory to a full 8 gigs, which was |
79 |
nice. |
80 |
|
81 |
But the upgrade to dual dual-cores, for four cores total across two CPU |
82 |
sockets, was what really surprised me. Like you I /had/ thought dual- |
83 |
core was pretty much enough for me. After all, I run pretty much a |
84 |
desktop system, altho as probably all of us here it's Gentoo, which does |
85 |
put us in the upper 20% of the demand profile for those with desktop |
86 |
systems. |
87 |
|
88 |
BUT, what I found out, was that actual usability VASTLY improved! In |
89 |
fact, I haven't been as happy with an upgrade since that upgrade to my |
90 |
first 500 MHz Athlon that I started this story with! The four cores |
91 |
really DO make a difference, and it's MUCH MUCH bigger a difference that |
92 |
I would have ever expected. |
93 |
|
94 |
Now, running Gentoo, I'm sure you're familiar with compiling stuff, and |
95 |
possibly with trying to do something else while you do. On a single CPU |
96 |
single-core, yeah, there are things you can do to mitigate the effects |
97 |
and make it sort of work, but you definitely still notice it. On a dual- |
98 |
core or a dual-socket single-core, you can actually do stuff while |
99 |
compiling without too much of a problem, but, you do still notice it a |
100 |
bit. |
101 |
|
102 |
What amazes me is that with the four cores, as long as I keep memory |
103 |
usage under control, I can run utterly ridiculous load averages, say |
104 |
several hundred, while compiling the kernel, a load average of 100 per |
105 |
core. Yet properly tuned, /you/ /pretty/ /much/ /don't/ /even/ /notice/ |
106 |
/it/! Keep in mind that it's NOT the memory, as I had upgraded to the |
107 |
the 8 gigs RAM before I upgraded to the dual dual-cores, and it's NOT the |
108 |
RAID, for the same reason. Neither is it the fact that I have |
109 |
PORTAGE_TMPDIR pointing at tmpfs, again, because once I got the 8 gigs |
110 |
RAM, I was doing that back with the dual-cores too. |
111 |
|
112 |
Now, the kernel is nice to run lots of build jobs on, because those jobs |
113 |
do use relatively little memory. In practice, I normally run -j -l21, |
114 |
limiting to 21 load not because of the CPU load directly, but because of |
115 |
the memory most compiles require. But as I said, as long as memory usage |
116 |
stays reasonable (which with the 4-way striped swap, means say half a gig |
117 |
or less into swap, the same effect on a single-disk machine would be |
118 |
probably 100 MB or so into swap, maybe less), once I upgraded from a |
119 |
total of two cores to four, load average basically /does/ /not/ /matter/ |
120 |
any more. It literally ceases to be an issue. A load average of one |
121 |
(0.25 per core), 2 per core, 10 per core, 100 per core, doesn't matter, |
122 |
the desktop is still very close to as responsive as it always is. |
123 |
|
124 |
The same goes for those runaway processes I mentioned. With a single |
125 |
core, it was pretty much game over. You could usually quit programs and |
126 |
shutdown safely if you tried, but it was an exercise in patience to do |
127 |
so. With dual cores (either as two sockets single-core each, as I |
128 |
originally had on this board here, or the single socket dual-cores so |
129 |
common now), it's better. You can still run your stuff, sort of, and the |
130 |
system continues functioning well enough to shut down without too much |
131 |
trouble. |
132 |
|
133 |
With the four cores, a few days ago I noticed a runaway process (a kernel |
134 |
process, no less, inotify or whatever, watching for a changed file, only |
135 |
something went wrong when I deleted the file, likely because I'm running |
136 |
directly off of Linus' git kernels and that code likely hit a bug) on my |
137 |
ksysguard graph, and wondered to myself how long it had been pegging 100% |
138 |
on that core, since I hadn't noticed any difference in performance at |
139 |
all. Well, I wasn't ready to reboot at the time, and I let it run. The |
140 |
thing ran for well over 24-hours, unkillable because it's a kernel |
141 |
thread, pegging 100% on one or another of the cores (it would switch |
142 |
cores once in awhile), while I did my thing, uninterrupted. I eventually |
143 |
did reboot when I came to a convenient point to do so, mainly because I |
144 |
was tired of seeing that thing spiking 100% all the time, not because it |
145 |
affected performance. If I'd have not had the ksysguard graphing it, I'd |
146 |
have literally never even known! |
147 |
|
148 |
Of course, once you've seen the system handle 100 load per core without a |
149 |
sweat, it's little surprise that it could handle a single-thread runaway |
150 |
process keeping a single core pegged to 100, with the others effectively |
151 |
idling most of the time, or even if they had a bit of work to do some of |
152 |
the time. |
153 |
|
154 |
It's that experience that has me recommending something different than |
155 |
you. Yes, it's a desktop machine. But we DO run Gentoo, so DO put it to |
156 |
use once in awhile. And, having at least three cores does make a big |
157 |
difference over two. With two, if one drops out, either because of a |
158 |
runaway process or because you're compiling in the background (at -j1 so |
159 |
it only affects the one CPU), the remaining single core is left having to |
160 |
multitask everything else, and it really does show up in lowered system |
161 |
usability. That third core (tri-core Phenom) or go for four, really DOES |
162 |
make a difference, at least the way I use my machine, and the way I |
163 |
expect most Gentoo users will want to use it, if they can. There's |
164 |
desktop, and there's Gentoo desktop, and at least for a Gentoo user, that |
165 |
third core DOES make a difference. |
166 |
|
167 |
OTOH, I really can't see what I'd do with >4 cores ATM. As the |
168 |
experience above demonstrated, with four, a single core can drop out and |
169 |
I don't notice it. What would I do with eight, or even six? Maybe |
170 |
decrease the compile-time where I'm merging stuff that can parallelize |
171 |
sufficiently? Sure, but is it worth it? At this point, four cores is |
172 |
I'd say the sweat spot. |
173 |
|
174 |
Then there's memory. Seriously. make it 4 gig. You'll use it. 8 gig is |
175 |
nice, but honestly, the last couple gig, or even the last four, run empty |
176 |
a lot of the time. So 8 gig memory if you can afford it, at least for a |
177 |
quad-core (4 for a dual-core is almost the same as 8 for a quad-core, for |
178 |
a dual-core, I'd say 2 gig minimum), but do plan on getting four, or |
179 |
you'll be crimping the efficiency of those cores. |
180 |
|
181 |
Then there's disk. Honestly, I'd say go for a 4-spindle SATA array you |
182 |
can run kernel RAID on, before upping from 4 to 8 gigs RAM. A quad-core |
183 |
(or minimum tri-core for those going AMD who can therefore get it), 4 gig |
184 |
RAM, 4-way-SATA-in-kernel-RAID system, is going to be a very well |
185 |
balanced system, remarkably free of bottlenecks. The learning curve on |
186 |
kernel RAID can be a bit steep, certainly, but get a system that well |
187 |
balanced tuned to make use of all components well, and you /will/ notice |
188 |
the difference! You /will/ wonder how you ever got along without it. |
189 |
|
190 |
-- |
191 |
Duncan - List replies preferred. No HTML msgs. |
192 |
"Every nonfree program has a lord, a master -- |
193 |
and if you use the program, he is your master." Richard Stallman |