amd - Multi-core CPU: can I say I have a 3x2.1GHz=6.3GHz CPU?

08
2014-07
  • Sourav

    I have an AMD A6-3500 three-core CPU. AMD System Monitor shows each core with a maximum 2100 MHz. This also shows in AMD OverDrive.

    Does this processor run at the speed 3*2100 MHz?

    AMD System monitor showing 2100*3 MHz

    Edit

    Can I say that I have got a 6.3 GHz processor?

  • Answers
  • Daniel Andersson

    Multi-core CPU:s can perform several actions per clock cycle, loosely speaking. The clock speed is measured in Hz, and it is not correct to say that it is tripled just because you have more cores.

    Everyone loves car analogies! A three-file motorway as compared to a one-file motorway with the same speed limit will not predictably enable you to arrive at your destination three times faster.

    If you run perfectly parallelizable processes, then a three-core CPU can effectively perform operations at three times the capacity of a single-core CPU at the same clock speed ("all motorway lanes filled").

    However, subsequent CPU operations often depend on previous ones and thus can not be run in parallel. With a perfectly linear process, you will only be able to do calculations on a single core at a time, and thus effectively be identical in processing speed to a single-core CPU.

    Therefore it is very incorrect to say that 3-core CPU @ 2.1GHZ = 6.3GHz.

    For further information, see


    EDIT to address your question edit. Quoting myself from above:

    Therefore it is very incorrect to say that 3-core CPU @ 2.1GHZ = 6.3GHz.

    No, you do not have a 6.3GHz CPU. It would perhaps be something that someone without technical knowledge in a marketing department that tries to sell you new hardware would say, but it is false.

  • Akash

    Your processor has 3 cores, each running in parallel at 2.1Ghz currently

    (as per the specs, it can be variable from 2.1-2.4Ghz)

  • Marcks Thomas

    I will boldly go against the consensus here and argue it is perfectly fine to say the frequency has tripled. Here is why.

    Frequency is not a CPU specification. It is a physical quantity, the reciprocal of time, and it can be used to express a large number of variables. The number of clock ticks per unit time, how many decimals of pi it can calculate per unit time, how often it needs replacement and its angular velocity when you throw the processor around like a frisbee, are all frequencies of your CPU. The unit Hz simply counts the number of events per second, but doesn't specify what event you are counting.

    In the context of CPUs, 'frequency' usually means clock rate. This value is not increased by additional cores. Counting the grand total of clock ticks per second in every core, however, will get you a number three times as large as the clock rate. Likewise, putting a second noisy clock up on the wall does not make time go twice as fast, yet I can hear twice as many ticks per second as before.

    What if two out of three cores are idle and the other one barely has enough to do to keep the computer running? Most clock cycles will pass without the processor doing work. In your screenshot, it's effectively doing about 84 million operations a second. That's also a frequency.

    When bragging about your hardware, these values aren't particularly useful. But even when talking hard numbers and specifications, 'frequency' can mean a number of things: CPU cycles per unit time, front side bus speed, floating point operations per second...

    To be clear, clock rate multiplied by number of cores is not the frequency by which 'we' measure the speed of a processor, but to say it's wrong is something else entirely.

  • Sampo Sarrala

    Akash answer is correct but I am willing to make it more clear.

    Speed is not same as frequency, frequency is not speed and speed is not frequency.

    You are asking about speed but talking about MHz which is frequency unit. Actual speed depends on how each core processes instructions, do they need to wait for each other and do they use common memory or does all cores have reserved cache. You can make use of all cycles only if there is three separate threads so that all cores process instructions at same time.

    Of course, if you are only counting overall cycles, you could say that your CPU speed is
    3 (cores) * 2100 MHz (frequency for each) = 6 300 000 000 Hz
    which means there is overall 6 300 000 000 cycles per second.

    UPDATE:

    You can't say you have 6,3GHz CPU but you can say that in theory you processor can go 6300000000 cycles per second but frequency stays at 2,1GHz for individual cores (2100000000 cycles per secod). You need to say that you have three 2,1GHz processors (or cores as often when speaking about processor it means separate individual units) if one core runs at 2,1GHz and you got three of them.

    If you say that you have 6,3GHz CPU it could do 6300000000 cycles/second for single thread and that is not case with your 3*2,1GHz CPU.


  • Related Question

    How do I calculate clock speed in multi-core processors?
  • NReilingh

    Is it correct to say, for example, that a processor with four cores each running at 3GHz is in fact a processor running at 12GHz?

    I once got into a "Mac vs. PC" argument (which by the way is NOT the focus of this topic... that was back in middle school) with an acquaintance who insisted that Macs were only being advertised as 1Ghz machines because they were dual-processor G4s each running at 500MHz.

    At the time I knew this to be hogwash for reasons I think are apparent to most people, but I just saw a comment on this website to the effect of "6 cores x 0.2GHz = 1.2Ghz" and that got me thinking again about whether there's a real answer to this.

    So, this is a more-or-less philosophical/deep technical question about the semantics of clock speed calculation. I see two possibilities:

    1. Each core is in fact doing x calculations per second, thus the total number of calculations is x(cores).
    2. Clock speed is rather a count of the number of cycles the processor goes through in the space of a second, so as long as all cores are running at the same speed, the speed of each clock cycle stays the same no matter how many cores exist. In other words, Hz = (core1Hz+core2Hz+...)/cores.

  • Related Answers
  • Mokubai

    The main reason why a quad-core 3GHz processor is never as fast as a 12GHz single core is to do with how the task running on that processor works, i.e. single-threaded or multi-threaded. Amdahl's Law is important when considering the types of tasks you are running.

    If you have a task that is inherently linear and has to be done precisely step-by-step such as (a grossly simple program)

    10: a = a + 1
    20: goto 10
    

    Then the task depends highly on the result of the previous pass and cannot run multiple copies of itself without corrupting the value of 'a' as each copy would be getting the value of 'a' at different times and writing it back differently. This restricts the task to a single thread and thus the task can only ever be running on a single core at any given time, if it were to run on multiple cores then the synchronisation corruption would happen. This limits it to 1/2 of the cpu power of a dual core system, or 1/4 in a quad core system.

    Now take a task such as:

    10: a = a + 1
    20: b = b + 1
    30: c = c + 1
    40: d = d + 1
    50: goto 10
    

    All of these lines are independent and could be split into 4 separate programs like the first and run at the same time, each one able to make effective use of the full power of one of the cores without any synchronisation problem, this is where Amdahl's Law comes into it.

    So if you have a single threaded application doing brute force calculations the single 12GHz processor would win hands down, if you can somehow make the task split into separate parts and multi-threaded then the 4 cores could come close to, but not quite reach, the same performance, as per Amdahl's Law.

    The main thing that a multi CPU system gives you is responsiveness. On a single core machine that is working hard the system can seem sluggish as most of the time could be being used by one task and the other tasks only run in short bursts in between the larger task, resulting in a system that seems sluggish or juddery. On a multi-core system the heavy task gets one core and all the other tasks play on the other cores, doing their jobs quickly and efficiently.

    The argument of "6 cores x 0.2GHz = 1.2Ghz" is rubbish in every situation except where tasks are perfectly parallel and independant. There are a good number of tasks that are highly parallel, but they still require some form of synchronsation. Handbrake is a video trancoder that is very good at using all the CPUs available but it does require a core process to keep the other threads filled with data and collect the data that they are done with.

    1. Each core is in fact doing x calculations per second, thus the total number of calculations is x(cores).

    Each core is capable of doing x calculations per second, assuming the workload is suitable parallel, on a linear program all you have is 1 core.

    1. Clock speed is rather a count of the number of cycles the processor goes through in the space of a second, so as long as all cores are running at the same speed, the speed of each clock cycle stays the same no matter how many cores exist. In other words, Hz = (core1Hz+core2Hz+...)/cores.

    I think it is a fallacy to think that 4 x 3GHz = 12GHz, granted the maths works, but you're comparing apples to oranges and the sums just aren't right, GHz can't simply be added together for every situation. I would change it to 4 x 3GHz = 4 x 3GHz.

  • AndrejaKo

    Others made a good argument from technical point of view. I'll instead make a couple of simple analogies which will I hope will explain why 4*3GHz is not equivalent to 1*12GHz.

    For example one woman can manufacture one baby in nine months. Will nine women be able to manufacture one baby in one month? No, because gestation cannot be parallelized (well, at least at this technological level).

    Here's another: In a hydroelectric plant I recently visited, one of the generators was being upgraded. They had to transport the generator's stator by ship. One sixth of the stator could be transported by truck, but they needed to transport whole stator; so they had to use one ship, not six trucks.

    Another case could be precise timing of events. Sometimes computer processors are used as precise timers (although the practice is no longer recommended, because of variable clock on most processors. High precision event timer should be used instead). If we assume that we have a processor with relatively stable 12GHz clock, we can use it to measure time in much higher resolution than on a processor with 3GHz clock. No matter how many 3GHz cores we have, we will not be able to reach resolution of the 12GHz core. That is like having 4 clocks with 7-segment displays where each clock just displays correct time in hours. No matter how correctly they show hours, you can't use them to measure time intervals in one second range.

  • blastawaythewall

    I'm not an expert on the subject, but I do have a degree in Computer Engineering. In theory (this is a highly conceptual answer), a quad-core 3GHz each processor can be the equivalent of one 12GHz processor if, for example, there were four sets of calculations needed for a single end result. That is what's called parallel processing.

    To simplify the logic, let's say we're talking about a dual core processor. If a set of calculations were, say:

    a=b+1;

    c=d+1;

    then, those two calculations could be executed on separate cores, and an xGHz processor would be equivalent to a single-core 2*xGHz processor. This is because the two calculations, although done at x speed, would be processed at the same time. Whereas the single-cored processor could do them at 2*x speed but one after the other. If the two CPUs executed this code at the same time, they would finish at the same time. However, if the code were:

    a=b+1;

    c=a+1;

    then, the dual-core processor would take twice as long as the single-core processor because in the second instruction, the value of a is dependent on the first instruction and thus cannot be executed in parallel. This is how some software can take advantage of multi-threaded processors.

    So, in theory, a 12GHz single-core processor can always run as fast (or faster) than a 3GHz quad-core processor, but not vice-versa.

  • Faken

    This is a complicated question to answer, but the short answer is: No

    In real world applications four 3Ghz processors will not be as fast as a single 12Ghz processor due to inefficiencies. They may be very close, but they will NOT equal a single processor in terms of processing power.

    The reason for this lies in the small inefficiencies when dealing with programs that can run on more than one processor. Assuming that the program in question can run in parallel, we will still run into problems with different cores competing against each other for other resources such as RAM or even cache and thread synchronization problems. Also, there are always parts of programs that can not be parallelized and need to run on a single core by itself.

    Take a look at this article: http://en.wikipedia.org/wiki/Amdahl%27s_law

  • Harmeet Singh

    It appears that we can't say that 4 cores @ 3 GHz can be said as 12 GHz.

    Various Constraints like shared memory, cache contention and other resources too are common to all the cores so running a piece of code parallel on these cores will not be as efficient as running it on 12 Ghz processors (although it is difficult to build such a processor ).

    Also i read somewhere that if we double the transistors embedded on the chip (CMP) , the speed up we are going to get is only 40% . This provides a significant hint to this topic also.

  • Jimmy

    As far as clock cycles executed is concerned, yes a multi-core processor does complete x * cores cycles of work per second. Conventionally, clock speeds are listed on a per-core basis for easier comparison (otherwise how would you easily compare a 4GHz dual-core chip running at 2GHz/core vs a 4GHz quad-core chip running at 1GHz/core?).

    Unfortunately, the problem gets complex when you try to compare different processors in real-world applications.

    First, most multi-core processors have some resources shared between the cores (e.g. CPU cache). They have to share access to that cache, so you can't have both cores storing or reading data at full speed. This is often mitigated in many-core CPUs by having multiple shared caches (e.g. most quad-core chips have 2 caches, each shared by a pair of cores), in order to better divide the chances of a bottleneck on a shared resource.

    Second, and perhaps less known in the non-techie world, is that comparing clock speeds can sometimes be like comparing apples and oranges. Different CPUs accomplish a different amount of work in a single clock cycle, so saying you have 1GHz vs. 1.2GHz sounds great, but the 1GHz chip might actually get more work done in a given interval of time. The Pentium 4 drove this point home, leading to the Megahertz Myth (which I didn't know had a name coined until writing this post).

  • David Schwartz

    Two cars each going 50 miles per hour don't "add up" to 100 miles per hour. It really is that simple. The clock speed of a processor is not a measure of the rate at which work is done, it's a measure of how fast the clock ticks.

  • jtbandes

    See this post on Yahoo Answers — the clock speed is per core. It's just that, a speed — the speed at which the electronic is running to advance the processor. If you have four cores running at 3GHz, that means 3 billion cycles per second per core. There's no way any part of the processor is magically running at 12GHz.

    Also, remember, clock speed and core-edness give you very different performance improvements. With multiple cores, programs that were written to take advantage of multithreading will work much faster. With single-core processors, a clock speed increase will make more of a difference.

  • mohak

    simpal ex. you have a car which run 120km/hour and you have two bike which run 60/hour so when race start bike runs at 60km/only having two bike meanes not you get 120 km/speed

  • AdmiralDamage

    well if you have a quad core 2 ghz processor it is still better than a single core 8 ghz processor because with an 8 ghz processor you will almost always get some errors meaning it has to resend data or redo calculations when you have lower frequency's you will have less or no errors. at 8 billion cycles per second any small bit if interference could cause an error and the other hardware will start to find it hard to distinguish between 1 and 0 (on and off)