mpasternak

Distinguished
Apr 27, 2005
533
0
18,980
A intro guide to Dual Core CPU's By mpasternak

1. What is a Dual Core CPU?
A> A Dual core CPU is in fact 2 separate Processors that are packaged or created and put within 1 die or 1 package. This will allow 1 "chip" to be used instead of two separate processors on a motherboard, saving space and money.

2. So a processor runs at 2 times the speed?
A> NO! This is not the case with dual core / dual CPU's. a 2.2Ghz dual core system does NOT give you 4.4ghz to work with. it gives you 2 individual 2.2ghz CPU's to handle two separate threads at the same time.

3. What’s a Thread?
A> When a task / program runs, it creates what is called a thread. a thread is a open string of data that needs to be processed. This must go through the CPU in order for a program to work. Most programs create 1 thread and send all it's data linearly through that thread. When multiple applications are running, the Operating system breaks up the threads so that the processor can run them all and simulate multi-tasking.


3. How Do dual-core CPU's effect these Threads?
A> Simple. it allows the computer to actually process 2 threads simultaneously.
In a single CPU system, all threads must be processed through 1 CPU.
*(Each Letter represents a thread)
CPU1: ABCDABCDABCDABCDABCDABCDABCDABCD
in dual core (or more) they're broken up and then sent to different CPU's
CPU1:ABCDABCDABCDABCD
CPU2:ABCDABCDABCDABCD

4. Seems to good to be true, What’s the Downside?
A> while they handle multiple threads well, Single threaded applications will still only use 1 core / 1 CPU at a time, Leaving the 2nd CPU core often underused or not used at all. Games in particular are virtually all single threaded. (We’ll call thread A)
CPU1:AAAAAAAA
CPU2:BCDBCDBCDBCDBCDBCDBCDBCD
What ya can see that if you set the game to use up an entire Core, yes, you can run other threads on the 2nd core without a hit to the game performance. BUT those background threads will all have to share the 2nd core and will take a bit longer to run. to further this problem. The OS doesn’t fully optimize the CPU's this way. and there are some intermittent threads that make it onto Core 1.
CPU1: AABCABDAAAACDA
CPU2: BCDBCDBCDBCDBCDBCD
The game is still slowed down even more by the other CPU intensive applications.

5. What’s this mean really?
A> that yes, a Dual core CPU allows you to run multiple threads, and resource intensive applications at the same time. But when you get into something like gaming where the game requires intensive use of 1 CPU only, you run into a situation of the OS / Thread scheduler not appropriately controlling the threads for maximum performance. Often gaming performance is either sacrificed while the CPU evenly assigns other threads to the CPU the games using, or the 2nd CPU runs mostly idle or underused because you don't run anything else while running the game.

6. What does the future bring?
A> for a Dual Core CPU to be most effective, it requires better scheduling of the OS (Vista is supposed to be better than XP). for gaming, it requires that games be written to be multi-threaded and be able to be evenly spread out amongst the processors in order for them to really run at the peak performance. Until this happens, a dual core CPU is NOT the best buy for a gaming rig. You will get more performance in your game if you run just the game on a single core that runs faster.

7. Why would anyone want a dual core then?
A> if your NOT a gamer and do a lot of processing that requires multiple threads. Like Cad work, encoding, decoding, and pure multitasking. These are all tasks that dual core will help with, any software that fully takes advantage of multiple threads really. As I’ve said though, Current games DO NOT!
 

Clob

Distinguished
Sep 7, 2003
1,317
0
19,280
Ahh... Much more readable..

Maybe a mention of Latest Nvidia drivers and their impact.

Also maybe talk about Intel and AMD options including Opteron and Xeon.
 

endyen

Splendid
I love to be picky so, In gaming, the game will take a much bigger hit from other resources (fsb/HTT or memory mainly) than from stray threads.
For online gaming using some form of IM, and antivirus, which is fairly common these days, duallies are better.
Some games still have issues with dual cores.
 

pat

Expert
Most newbies don't read stickies or FAQs anyway. They don't even use google. they simply ask. Not that they want to know..no.. they don't have a life and need some attention.. [/sad fact]
 

Schmide

Distinguished
Aug 2, 2001
1,442
0
19,280
You may want to add something or do some research towards the effect of:

While a game maybe written as inherently single threaded, the rendering system and the OS are multithreaded. When a game runs on a system, there are generally three main players at work, the actual game code, the graphics interface/driver (DirectX/OpenGL) and the graphics card (hardware). For the most part the CPU and the GPU complement each other passing one task to the other and allowing them to basically run in parallel. While a game can typically be CPU bound (the GPU has to wait for the CPU to give it data) or GPU bound (The complexity of rasterization causes the CPU to idle while waiting for the GPU), adding a second GPU or CPU or both will not typically alleviate this situation. If you add a second GPU (or a more powerful GPU) the graphics system can now handle larger and more complex geometry at higher resolution and or rendering time will be reduced. The system usually at this point becomes CPU bound until you increase the resolution or complexity of the geometry to the point where the GPU is again slower thus balancing the tasks. However, adding another CPU (or more powerful one) does not necessarily drastically improve this situation. Certain tasks done in a game are inherently linear and often block the processing of other tasks. There maybe some room for parallelism, but often dividing a small task into two smaller tasks makes a bigger task. Once these prerequisites are resolved, production of data for the GPU can start. This is where a parallel CPU can improve performance but only to some degree. At some point, the production of data will reach or exceed the ability of the GPU to accept or process it or the overhead of dividing the data will exceed the cost of running the data through one task. In general, games will continue to be GPU bound until game developers design new tasks (Physics/complex input) for a second CPU to use.
 

kittle

Distinguished
Dec 8, 2005
898
0
19,160
Id add a blurb about hyperthreading. what it is.. what its not, etc.

my personal experiance shows what schmide says is quite true. you dont get a Huge performance boost with multi-cpu systems and games, but you will see "some" performance hits if you disable the 2nd cpu (or in my case turn off hyperthreading).

Good stuff overall!
 

dhlucke

Polypheme
Nice work. I'd make it sticky but it might be more convenient in Spitfire's sticky. He'll give you full credit. I'm just thinking we're going to have too many stickies otherwise.
 

julius

Distinguished
May 19, 2004
168
0
18,680
even if this gets stickied, when the damn info is already on top of the page, i can guarantee some noob will still ask the same goddamn questions. nothing helps.
 

johngoodwin

Distinguished
Dec 15, 2005
94
0
18,630
How Do dual-core CPU's effect these Threads?

I believe "affect" is proper here.

As an aside, one thing that should be noted is that in some cases, running two instances of a game may be desired in which case the performance of each "game window" will be smoother than with a single processor.

Also, when you run dual core/cpu, it takes a lot more programs running for the computer to "feel slow" compared to single core.

Enjoy,

John