Understanding Processor Speed
<div class="IPBDescription">where art thou clock speed?</div>I remember when it was very easy to tell which CPU was the best - you'd look at the clock speed and depending how many Ghz the thing was you'd know how fast it is. Now we've got front side bus, cache, and duo cpu to worry about. Honestly it means very little to me.
I know that an "old school" p4 at 3.2ghz is actually much slower than say a 2.66ghz dual core cpu. But beyond the obvious well it's faster caues it's dual core I have no idea how to measure which processor is better in a lineup. How <i>much </i> faster is the dual core - would it be analagous to just going 2.66 x 2 or is it not that effecient.
Anyone have a simple set of rules for figuring out what is best and by how much?
I know that an "old school" p4 at 3.2ghz is actually much slower than say a 2.66ghz dual core cpu. But beyond the obvious well it's faster caues it's dual core I have no idea how to measure which processor is better in a lineup. How <i>much </i> faster is the dual core - would it be analagous to just going 2.66 x 2 or is it not that effecient.
Anyone have a simple set of rules for figuring out what is best and by how much?
Comments
like here's another one intel core 2 duo and extreme - extreme is quad core - does it literally translate into 4 times the processing power or is it some other factor.
I guess that's as basic as the question gets - does duo core literally operate like dual core?
if you have a dual core processor, in many or most cases, it won't perform better than the single core version of the processor if you are only running one processor intensive program at a time. This is because for a program to make use of multiple cores/processors it has to be threaded, which is a matter of how the program is written, and whether the program can physically be written to use multiple cores. Because of this, you can't say that a dual core 2.4 ghz processor is equivalent to a single 4.8 ghz processor. Most common programs and games are not written to take advantage of multiprocessor systems, but this is changing as dual core processors become more common. For example, Crysis will supposedly perform much better with a multicore processor. For some programs that are threaded, there may be a huge boost in performance. Also, most people don't run only one program at a time. For example, on my dual core system i can play a game while running a virus scan with very little drop in fps. You're really better off just finding benchmarks.
as a rule of thumb, the more expensive it is and the higher the model number, the better it probably is. <img src="style_emoticons/<#EMO_DIR#>/wink-fix.gif" style="vertical-align:middle" emoid=";)" border="0" alt="wink-fix.gif" />
I start with just basic a basic multi-core setup. Simply put having 4 cores does not mean 4 times faster, it means that the CPU can do 4 things, calculations and whatnot, simultaneously. However, this is only true if your operating system supports multiple processors. Windows XP should support multiple cores, but even then there is likely a limit to the number it can handle. Furthermore, if the operating system you are running supports multiple processors, but the software you are running on top if it doesn't, that program will see no added benefit other than it will have more time with a single CPU. It should see more time with a single processor if the operating system actually distributes the load evenly across all available cores. One word of warning though, if the CPU you want is actually 2 chips Microsoft Windows will be slower than a single chip with an equal number of cores. This is because Windows lacks proper <a href="http://en.wikipedia.org/wiki/Non-uniform_memory_access" target="_blank">NUMA</a> support. That is about all I know of multi-core and multiple processor technology.
Now as for the cache, simply put more is better. The cache on the CPU is where it stores what it should do next. If this is large it reduces how often the CPU should have to access the RAM in the system. The CPU can access this much faster than the RAM in the system.
The front side bus is how the CPU accesses other parts of the system. I am not too familiar with it myself, but I will try my best to explain it. The speed of your front side bus directly determines how fast your system can actually run. A slow front side bus will cause the CPU to have idle time since it will be working faster than the front side bus can supply it with instructions. The speed of the RAM in the system plays a roll in this as well. The system RAM also has a clock speed which, if it is slower than the front side bus, will slow down the system. According to <a href="http://en.wikipedia.org/wiki/Front-side_bus" target="_blank">the Wikipedia</a> article system performance can vary unexpectedly with differing speeds of memory and the front side bus.
Other things can also affect how the performance of the CPU. If, for example, one had a system with identical computer in every way except for the CPU being made by different companies; the performance of once system could vary from program to program. This is due to how the programs were compiled and how they were written. Since no companies make CPUs with identical specifications and software can, and often does, preform differently on competing processors; a true benchmark is therefor very difficult. So, in the end, direct comparison of processors is next to impossible between brands, however it should be possible to do a direct comparison between processors made by the same manufacturer. The only way to know for certain which processor would be better would be to do a benchmark between them on similar systems and running the type of application you needed it to run.
I wasn't clear on duo core limitations either so the software explaination is handy too. I think that'll make me postpone a hardware upgrade until they are more commonplace and can actually be used to their potential by programs I may be using.
(oh and I was making the distinction between duo core and dual core as in dual core being 2 physical cores, not one core replicating two pipelines or whatever you call them. Either way the point has been made and I understand the difference now)
thanks guys!
An example of where this is really great, Niagara. It's a webserver with multiple multi-core CPUs. In webserving, the individual job delay doesn't matter much so long as it isn't horribly long but there are many users who want content so parallelism is more important than individual job speed. This setup handles that very well.
You must note that single thread programs are actually slower here, but overall performance increases.
While we are asking questions about multi-core hardware, I figured I'd ask about a hole in my knowledge about the software link. <img src="style_emoticons/<#EMO_DIR#>/smile-fix.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile-fix.gif" />
what I do not understand is how you can write a piece of software to utilize multi-threaded instructions. How do you do that? Isn't that entirely up to the OS? If it's easy, then why don't more companies (and especially game developers) use that?
While we are asking questions about multi-core hardware, I figured I'd ask about a hole in my knowledge about the software link. <img src="style_emoticons/<#EMO_DIR#>/smile-fix.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile-fix.gif" />
<!--QuoteEnd--></div><!--QuoteEEnd-->
There aren't multi-threaded instructions afaik. All you're doing is running multiple threads (a thread being a procedural set of instructions). Even on single cpu configurations, you can write multi-threaded applications using generic multitasking. For single cpu you don't get anything done any faster, but you can have one thread doing something that takes a long time while the other thread is doing windows maintanence or running a game loop or whatnot.
Just to be clear. Multi-threaded programming is a nightmare to debug. There are lots of ways to approach it, but they all get nasty really fast the more you have the threads interact with each other.
Sneaky threads.
[edit]The link above is pretty much a Mac advertisement. <img src="style_emoticons/<#EMO_DIR#>/tounge.gif" style="vertical-align:middle" emoid=":p" border="0" alt="tounge.gif" /> But, it's fairly true. What he leaves out is that no processor is designed for general purpose processing. You need to choose the hardware that's going to suit the software you run. You wouldn't pit a 4-by-4 mammoth against a formula 1 car on a track and expect the 4x4 to win any more than you'd pit them on a mountain and expect the formula 1 to win.