Sign in with
Sign up | Sign in
Your question

Few questions about cores, threads, frequency etc

Last response: in CPUs
June 22, 2011 1:55:15 AM

Hey guys, so I have a few questions for you CPU freaks :D 

So, here they are:

Say you have a 3 GHz quad-core CPU, does this mean each core can run at up to 3 GHz totaling 12 GHz (assuming they're all under 100% load, yes I know thats unrealistic), or is it they can output 3 GHz altogether, or what, how does that exactly work?

I heard that games were being developed to actually make use of quad-cores, is this true or not? Are there games that utilize 4 cores? Does Bad Company 2? Whats the status of this issue.

Whats the difference between threads and cores, how do they differ, how do they help, pros and cons of both?

Thanks for your time guys, my friend and I were in a debate over the games utilizing 4 cores haha, hope you guys can help me out
June 22, 2011 2:12:40 AM

Okay, so im not a math wiz and stuff but I'll give you a nice run down on how things work:) 

If you have -for example- an i7 processor, it will have 4 cores. If it runs at 3.0ghz then each core will run at an effective 3.0ghz (really like 2970mhz) but they round that shiz so you dont see it.

So think of it like this. Your cpu has 4 brains (cores) in one head (PC). Each brain will run at the speed it says it will. This means you have 4 cores running at the same speed. The speeds are... sadly... not stackable to it making an effective 12ghz.
June 22, 2011 2:15:04 AM

I see, yeah I figured they weren't actually efficient, but supposedly each core is supposed to handle the frequency

So how bout my other 2 questions
Related resources
June 22, 2011 2:25:09 AM

Battle field uses all 4 cores and to my knowledge uses dx11 and is actually a demanding game at really high settings. and YES, quad core based games are getting more coming. Crysis 2 is a good example. The technology is there, it just cost a couple million dollars nowadays to make the games because we have all came to the high standards:p 

Okay so let me explain threads
a b à CPUs
June 22, 2011 2:29:16 AM

They each run at that speed, but they can't work on the same task, so totaling the speeds is pointless.
I believe that BC2 uses 4 cores
but I think most recent games use only 3, and many use 2. However, having an extra core (4) could take the load of normal system tasks, letting the game fully utilize the other 3.
Threads and cores are effectively the same, in that they determine how many tasks can be pursued at once. It's just that actual performance is determined by cores, so having extra threads won't help once the physical cores' workloads are maxed. The core is the physical processor, and the thread is the job that it does.
June 22, 2011 2:31:06 AM

Threads on a CPU: When you have a core in a CPU say a Core 2 duo, it is to effective cores with NO threads. This means you have data and information flowing TOO and FROM the cpu on ONE pipeline. So think of it as a one street with NO line in the middle, you can only have one wave of info/date flowing at one time.

Now, what threading does it it makes 2 SEPARATE pipelines to the CPU. One pipe for incoming data and info. And the other is for Outgoing from the CPU. This makes better CPU efficient because it has more room to work with. It does not create say, another physical core, but it does create a better highway in which it can get information too and from your MOBO, VGA card, RAM etc. Hope this helped man:) 
June 22, 2011 2:36:42 AM

I see I see, so even if games dont support 4 cores, they might utilize 2 or 3, and the other core could be working on processing other programs in the meantime.

and for the threads, basically it opens up another path for each core, so all 4 cores can both send data and receive data am I correct?
June 22, 2011 2:49:58 AM

yea, if you have 4 cores, you will have 8 threads (i7) and 2 cores you will have 4 threads (i5) and i3 is, well, don't get an i3:) 

Each thread helps you see the true potential off the processor. That and cache, but thats another story:) 
June 22, 2011 3:16:36 AM

I thought not all i5s and i7s had 8 threads, the i5-2500k doesnt have hyperthreading so...

a b à CPUs
June 22, 2011 3:22:34 AM

this is what a thread is
pasted from Wikipedia

In computer science, a thread of execution is the smallest unit of processing that can be scheduled by an operating system. It generally results from a fork of a computer program into two or more concurrently running tasks. The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is contained inside a process. Multiple threads can exist within the same process and share resources such as memory, while different processes do not share these resources. In particular, the threads of a process share the latter's instructions (its code) and its context (the values that its variables reference at any given moment). To give an analogy, multiple threads in a process are like multiple cooks reading off the same cook book and following its instructions, not necessarily from the same page.

On a single processor, multithreading generally occurs by time-division multiplexing (as in multitasking): the processor switches between different threads. This context switching generally happens frequently enough that the user perceives the threads or tasks as running at the same time. On a multiprocessor or multi-core system, the threads or tasks will actually run at the same time, with each processor or core running a particular thread or task.

Many modern operating systems directly support both time-sliced and multiprocessor threading with a process scheduler. The kernel of an operating system allows programmers to manipulate threads via the system call interface. Some implementations are called a kernel thread, whereas a lightweight process (LWP) is a specific type of kernel thread that shares the same state and information.

Programs can have user-space threads when threading with timers, signals, or other methods to interrupt their own execution, performing a sort of ad-hoc time-slicing.

"In computer science, a thread of execution is the smallest unit of processing that can be scheduled by an operating system"

That is the main definition
what pitchdragon is getting confused with is HyperThreading which is an Intel
technology for duplication some parts of the cpu on the die so it can handle
two threads at the same time

open up task manager (cntrl-alt-del)
and look at performance
currently my Windows 7 Ultimate 64-Bit is running 979 threads
average is usually about 500 or so

this is link from Wikipedia
used as a reputable SOURCE

please pitchdragon we at Toms appreciate you being here
but please source out your info you post here
June 22, 2011 3:25:37 AM

Not to sound unappreciative but the Wikipedia didnt help, I know how to use Wikipedia, I came here for an explanation from the community. The Wiki is too complicated, I dont need to spend hours trying to fully dissect what a thread truly is, Id rather have it explained to me. So basically I got half truth answers, and a copy and paste from wiki

Best solution

a b à CPUs
June 22, 2011 3:46:44 AM

"In computer science, a thread of execution is the smallest unit of processing that can be scheduled by an operating system"

basically a program creates a process which creates a thread

your OS runs many threads at the same time

each individual core can handle a thread at one time

with Intel HyperThreading a single core can handle two threads

as long as that thread doesnt use the same part of the core

so a dual core without hyperthreading can handle two threads concurrently (same time)

a dual core with hyperthreading can handle 4 threads

a quad core w/o HT can handle 4 threads

a quad core w/ HT can handle 8 threads

A quad core is good even without HT for handling any game out there

it will be a while before games use more than 4 cores

If you do encoding video, 3D rendering etc than the more cores the better since they are multihreaded

I was trying to clear up the "half truth answers" for you

I paid money and went to school for this

I had to read many large books

Dont insult people trying to help you

Dont worry about reading and go back to playing games

I got WORK to do on my computer that make me money :) 
June 22, 2011 3:56:18 AM

I dont play many games, Im studying for my finals, and Im not insulting you, Im saying that anyone can copy and paste from Wikipedia, I also know how to go to Wikipedia and search what it is, the forums exist because the community breaks down things to an easy to understand level, and thats how people gain experience and knowledge over time. You dont try to teach someone a complex math subject without teaching them the basics first, to me most of that was gibberish, so I needed it to be broken down, just as anyone else here would prefer.
a b à CPUs
June 22, 2011 4:18:20 AM

Sorry :) 
I drank too much coffee and have an itchy keyboard finger LOL

I used Wikipedia as a referenced source since many here will spread
some inaccurate info

You just specifically mentioned games
Good luck with finals
They are F-ing brutal

basically in reference to games a fast (over 2.8 ghz) dual core would be normally better than a slow quad core (2.6 under) with most games

with that said
a fast Quad core is the best
something around 3.0ghz and higher

for example the I5 2500k SandyBridge is a better deal for gaming than
a I7 2600k since the I7 has HT for more thread handling but costs more

so a I7 2600k would be preferred for multithreaded applications like video editing/rendering, 3D modeling etc

but a I5 2500k would be a better deal for games since it is cheaper
and the games are not going to use 8 threads

really though the more cores that can handle the most threads in the long run
is the best (as long as cores are fast (2.8 or higher))
since the future of all software development is trending towards more multithreaded

right now some games use 4 cores
in about two to three years I wouldnt be surprised if they can use more

so basically buy the fastest cpu with the most cores you can afford :) 
to "future proof" (i hate using that phrase)

again my apologies for snapping at you
rough day :) 
June 22, 2011 4:32:12 AM

No problem I understand, future proofing I can see why you hate that term haha, I got you

You've helped me quite a bit, thank you very much, I have learned something new, success!
June 22, 2011 4:33:31 AM

Best answer selected by Reaper2794.
a b à CPUs
June 22, 2011 4:48:29 AM

Thank you for selecting me as Best Answer

Though I wish you didnt pick that post since I was such a jerk on it :) 
a b à CPUs
June 22, 2011 5:34:57 AM

king smp said:
Thank you for selecting me as Best Answer

Though I wish you didnt pick that post since I was such a jerk on it :) 

Hi King!
But really now,
the post was very informative.
a b à CPUs
June 22, 2011 5:39:01 AM

Hey ghnader
Nice to "see" you again
PM me and let me know how youve been
I have been semi-retired on Toms for a little while :) 
a b à CPUs
June 22, 2011 7:59:46 AM

king smp said:
"In computer science, a thread of execution is the smallest unit of processing that can be scheduled by an operating system"

basically a program creates a process which creates a thread

your OS runs many threads at the same time

Most of what you said is accurate. I just want to add to the piece I quoted above.

A simple-minded program will have one process running one thread. Modern games aren't all simple-minded :) 

A single program may have multiple processes (not common, but it happens). A single process may have multiple threads (fairly common).

For a program to take advantage of multiple cores, it must have multiple threads (either multiple processes, or multiple threads in a process, or both). A simple-minded program (one process/one thread) cannot take advantage of multiple cores.

A rule of thumb in multi-threaded coding is to aim to have roughly twice as many threads as there are available cores (counting hyper-threaded cores as two) - that way there's always work for the cores to do (some threads will be waiting on I/O, etc).
a b à CPUs
June 22, 2011 1:40:01 PM

Very true
I was just keeping it simple :)