Should Core 2 Duo CPU not be theoretically slower than single core with double MHz?

J

Jason Stacy

I wonder why a two-core CPU with lets say 2 * 1.7 Mhz is theoretically faster
than a single core with 3.4 MHz. I am NOT talking about additional features like
Pipeling and Hyperthreading but the core fact that the power is split over two cores.

Assume the following situation: A NON-THREADED application needs as much CPU power as possible
for some computations. On a 3.4 Mhz machine it can occupied almost 99% of the CPU power
(remaining 1 % are for system services).

When I run the same application on a two core system then it can occupy only ONE of the two cores
with 1.7 MHz. Because it is non-threaded it cannot request the other core as well.
So it must be slower (given all other side-conditions are equal).

Am I wrong?

J.
 
R

Rod Speed

Jason said:
I wonder why a two-core CPU with lets say 2 * 1.7 Mhz
is theoretically faster than a single core with 3.4 MHz.

Because it is in practical situations.
I am NOT talking about additional features like Pipeling and
Hyperthreading but the core fact that the power is split over two cores.
Assume the following situation: A NON-THREADED application
needs as much CPU power as possible for some computations.

Thats not the situation where a dual core processor is theoretically faster.
On a 3.4 Mhz machine it can occupied almost 99% of
the CPU power (remaining 1 % are for system services).
When I run the same application on a two core system then
it can occupy only ONE of the two cores with 1.7 MHz. Because
it is non-threaded it cannot request the other core as well.
So it must be slower (given all other side-conditions are equal).
Am I wrong?

No, just looking at the wrong situation.
 
B

Bob Willard

Jason said:
I wonder why a two-core CPU with lets say 2 * 1.7 Mhz is theoretically faster
than a single core with 3.4 MHz. I am NOT talking about additional features like
Pipeling and Hyperthreading but the core fact that the power is split over two cores.

Assume the following situation: A NON-THREADED application needs as much CPU power as possible
for some computations. On a 3.4 Mhz machine it can occupied almost 99% of the CPU power
(remaining 1 % are for system services).

When I run the same application on a two core system then it can occupy only ONE of the two cores
with 1.7 MHz. Because it is non-threaded it cannot request the other core as well.
So it must be slower (given all other side-conditions are equal).

Am I wrong?

J.

As you've already noted, the gain in moving a workload from a
monoprocessor to a multiprocessor depends on the workload. Doh.

Some workloads will gain nothing, while some will scale almost linearly
(up to some maximum number of processors).

I do have some experience in constructing workloads to show how
wonderful multiprocessors are: when one of my artificial workloads ran
on a monoprocessor, the OS reported that the app got 100% of CPU time;
when it ran on a dual-processor, the OS reported that the app (fully
decomposed by hand) got 205% of CPU time. Amazing, eh?

My father would say: "Benchmarks don't lie, but liars do benchmark".
 
M

mscotgrove

I wonder why a two-core CPU with lets say 2 * 1.7 Mhz is theoretically faster
than a single core with 3.4 MHz. I am NOT talking about additional features like
Pipeling and Hyperthreading but the core fact that the power is split over two cores.

Assume the following situation: A NON-THREADED application needs as much CPU power as possible
for some computations. On a 3.4 Mhz machine it can occupied almost 99% ofthe CPU power
(remaining 1 % are for system services).

When I run the same application on a two core system then it can occupy only ONE of the two cores
with 1.7 MHz. Because it is non-threaded it cannot request the other coreas well.
So it must be slower (given all other side-conditions are equal).

Am I wrong?

J.

I think the real world answer may be that many applications do require
data to and from a hard drive. Any time waiting for this will slow
the process down. Thus most applications will become multi-threaded.

Also, although the processor speed may be so and GHz (nb most CPUs run
at GHz speed these days rather than MHz speed), the different levels
of cache memory are slower .

Have you done any actual tests to see which is fastest?

Michael
 
A

Arno

In comp.sys.ibm.pc.hardware.storage Jason Stacy said:
I wonder why a two-core CPU with lets say 2 * 1.7 Mhz is
theoretically faster than a single core with 3.4 MHz. I am NOT
talking about additional features like Pipeling and Hyperthreading
but the core fact that the power is split over two cores.

Well, it depends highly on the workload. For a non-paralellizable
workload (which is surprinsingly common), the 2-core is only 50%
as fast and nothing at all can be done about it. For a very well
paralellizable workload, it benefits from two caches instead of
one.
Assume the following situation: A NON-THREADED application needs as
much CPU power as possible for some computations. On a 3.4 Mhz
machine it can occupied almost 99% of the CPU power (remaining 1 %
are for system services).
When I run the same application on a two core system then it can
occupy only ONE of the two cores with 1.7 MHz. Because it is
non-threaded it cannot request the other core as well. So it must
be slower (given all other side-conditions are equal).
Am I wrong?

No. You have it exactly right.

Arno
 
I

Ian D

Jason Stacy said:
I wonder why a two-core CPU with lets say 2 * 1.7 Mhz is theoretically
faster
than a single core with 3.4 MHz. I am NOT talking about additional
features like
Pipeling and Hyperthreading but the core fact that the power is split over
two cores.

Assume the following situation: A NON-THREADED application needs as much
CPU power as possible
for some computations. On a 3.4 Mhz machine it can occupied almost 99% of
the CPU power
(remaining 1 % are for system services).

When I run the same application on a two core system then it can occupy
only ONE of the two cores
with 1.7 MHz. Because it is non-threaded it cannot request the other core
as well.
So it must be slower (given all other side-conditions are equal).

Am I wrong?

J.

The 1.7GHz Core 2 Duo running single core will be slower than
a 3.4GHz P4. On the other hand, a 2.4GHz Core 2 Duo on single
core will beat the 3.4GHz P4. It's because the Core 2 processes
more instructions per clock cycle than a P4, but the ratio is less
than 2:1.

Being multithreaded does not automatically enable an application
to use more than one core. The application must be coded to utilize
multiprocessors. Most applications are multithreaded, but few can
fully utilize more than one core. If you look in the Processes tab of
Task Manager you can see how many threads an application uses.
 
D

DevilsPGD

In message <[email protected]>
I wonder why a two-core CPU with lets say 2 * 1.7 Mhz is theoretically faster
than a single core with 3.4 MHz. I am NOT talking about additional features like
Pipeling and Hyperthreading but the core fact that the power is split over two cores.

Assume the following situation: A NON-THREADED application needs as much CPU power as possible
for some computations. On a 3.4 Mhz machine it can occupied almost 99% of the CPU power
(remaining 1 % are for system services).

When I run the same application on a two core system then it can occupy only ONE of the two cores
with 1.7 MHz. Because it is non-threaded it cannot request the other core as well.
So it must be slower (given all other side-conditions are equal).

Am I wrong?

If you're comparing a single-core processor based on the "Core 2"
architecture vs a single threaded app on a Core 2 Duo then performance
will be roughly twice as fast on the single core CPU.

However, if you're comparing a P4 based CPU vs something in the Core 2
generation, then the picture is more complicated then raw clockspeed
would indicate, but the short version is that Core 2 CPUs tend to be
anywhere from 1.2x to 2.0x more efficient then P4 based CPUs at the same
clock speed.

Lastly, even if you're using a single-threaded application, the other
core will likely have other tasks to do which would otherwise borrow a
bit of CPU away from your CPU intensive single thread.
 
M

Mike Ruskai

I wonder why a two-core CPU with lets say 2 * 1.7 Mhz is theoretically faster
than a single core with 3.4 MHz. I am NOT talking about additional features like
Pipeling and Hyperthreading but the core fact that the power is split over two cores.

If you're talking about a single core at 3.4GHz, then you're talking about a
Pentium 4, which is a horribly designed chip.

Considering just the speed of a single core, for comparison, that 3.4GHz P4 is
about the same speed as a 1.8GHz Core 2, or a 2.0GHz AMD Athlon X2. That's
how bad it is.

Performance varies from app to app, of course, so you'll no doubt be able to
find something single-threaded that runs faster on a 1.7GHz Core 2 than a
3.4GHz P4.

I guess the basic lesson you haven't learned is that pipelining and whatnot
matters. Not all CPU cycles are equal, which is why a modern 3000MHz chip is
quite a bit more than 30 times faster than an old 100MHz Pentium, and why a
100MHz Pentium completely outclassed a 100MHz 486.
 
S

shawn

If we previously had Pentium 3.8Ghz processors, then why can't they just
make 3.8Ghz dual or quad core processors? Why are they always at such low
speeds?

Is size really a factor? Can't they just make the chips an inch or two
larger to accomodate or will heat be the issue?
 
J

James Kosin

shawn said:
If we previously had Pentium 3.8Ghz processors, then why can't they just
make 3.8Ghz dual or quad core processors? Why are they always at such low
speeds?

Is size really a factor? Can't they just make the chips an inch or two
larger to accomodate or will heat be the issue?

Heat is a BIG issue.
The Pentium IV (4) was the last to really push the speed barrier. Most
newer systems are now into multiple cores to achieve the improved speed.

There are many factors...

(a) The die area and manufactured size. Back in the day most were 90nm
or larger. Today 65nm and 45nm processes are available. Also, die area
is expensive and the larger the die the more of a chance for bad yields.

(b) The package or size you see on the outside is not always the same
size the CPU chip is on the inside. Another trick would be to
efficiently transfer the heat to the surface of the chip from the die.
In most CPUs I've seen that is what that little square in the middle is
doing for you. Then to efficiently transfer the heat from the square to
the heat sink. Making the square bigger may not be a really good
option; only so much and you may encounter breakage to the die
underneath and/or making a well where the heat gets concentrated instead
of dissipated.

(c) It would probably be more than an inch or two to get the needed
cooling. The ridiculous power usage is incredible on many of these new
systems. I use to be able to run a FULL TOWER on a 200-watt or 250-watt
power supply. Some systems today supply 900-watt or more!!! In my
opinion that is a lot of power for a PC.

James
 
P

Paul

shawn said:
If we previously had Pentium 3.8Ghz processors, then why can't they just
make 3.8Ghz dual or quad core processors? Why are they always at such low
speeds?

Is size really a factor? Can't they just make the chips an inch or two
larger to accomodate or will heat be the issue?

This is a question best asked in a computer architecture group, as there
are multiple factors at work.

*******

Much has changed over the years. The Prescott generation was the last
generation with what appeared to be a serious leakage problem. 25% of
the power used, was just wasted, and did no useful work. This could
not continue. The switch to 65 or 45 or 32nm could not fix the leakage
issue, which would only get worse. With each generation, the transistors
had to be redesigned, the material science changed, to make the
scaling of the transistor worthwhile. If a Prescott transistor was
just made smaller, there'd be a smoking hole in the ground.

As I understand it, more complicated structures are used now for the
gates. Some transistor structures have stuff added, to reduce or eliminate
leakage. When absolute speed is needed, perhaps a small percentage of the
structures still leak, in the interest of getting the most speed. So they
pick and choose, in the interest of reducing the leakage of the processor
to manageable levels. I think they've done an admirable job, based on
my own power measurements (my 65W processor uses 36W max, on a 65nm
Core2 Duo).

The pipeline length on the new processors is shorter. They really
couldn't continue on the "Prescott" path, because AMD was kicking
their ass. The result is

lower frequency
shorter pipeline
able to retire more instructions per clock cycle (parallelism inside a core)
multiple cores (only really impressive, for software that uses it well)

The thing is, technology exists to do really silly things, but for the
retail price point, you'd be saying "no thanks, I'd rather buy a car".
The current delivered technology is cheap and powerful, so stop complaining :)

Technology exists that can run at 40GHz. You could build a processor with it
(if say, you had a bar bet with a buddy). No memory subsystem could reasonably
supply it with information. But it would make a great room heater.

(In the following article, some of the references to frequency, are for
Ft of the transistor. It takes multiple transistors to make a flip-flop
storage element. And the operating frequency of one of those, will be
lower than the numbers seen in this article. This is just to show that
there is stuff other than CMOS available to build circuits. The fiber
optics criss-crossing the nation, rely on some of the following
technology, to work at incredible speeds.)

http://en.wikipedia.org/wiki/Heterojunction_Bipolar_Transistor

http://www.ntt.co.jp/news/news06e/0609/060929a.html

"InP ICs, which can be operated at over 50 GHz were used in
multiplex and demultiplex circuits..."

HTH,
Paul
 
B

Barry OGrady

I wonder why a two-core CPU with lets say 2 * 1.7 Mhz is theoretically faster
than a single core with 3.4 MHz.

Its a lot slower, just as 2 x 1.7Ghz CPUs are slower than 1 x 3.4Ghz.
A single core 2Ghz Athlon is rated as 3000+ where a dual core 2.7Ghz Athlon
is rated at 5400+.
I am NOT talking about additional features like
Pipeling and Hyperthreading but the core fact that the power is split over two cores.

Assume the following situation: A NON-THREADED application needs as much CPU power as possible
for some computations. On a 3.4 Mhz machine it can occupied almost 99% of the CPU power
(remaining 1 % are for system services).

When I run the same application on a two core system then it can occupy only ONE of the two cores
with 1.7 MHz. Because it is non-threaded it cannot request the other core as well.
So it must be slower (given all other side-conditions are equal).

Am I wrong?

J.

Barry
=====
Home page
http://members.iinet.net.au/~barry.og
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top