Processor cores? Helpp

olly29

Honorable
Oct 1, 2015
76
0
10,630
Hey guys,
I recently got a new computer containing a Asus strix Z270G motherboard and an i7-7700 (non-k version). I notice it is a quad core.
Basically, I have no idea about how cores work and I want to find out if enabling all 4 cores will give me better performance?
How would I go about seeing how many cores my processor is utilising at the moment and if so, how to enable the other cores?

Thanks guys !
 

USAFRet

Titan
Moderator


Your CPU is a quad core
https://ark.intel.com/products/97128/Intel-Core-i7-7700-Processor-8M-Cache-up-to-4_20-GHz

Whatever you read about enabling, disabling, parking, or otherwise meddling with the cores....ignore.
Just leave it as is.

Whatever software you happen to be using will use 1 or more cores, as needed and designed.

Leave it be.
 


One at a time:

1. How do they work? What are they?

First, here's a picture of them:
576px-Quad-Core_AMD_Opteron_processor.jpg

See those boxes? Each of those is a core, on top of a processor's main chip.

A core is basically a mini-processor that is wired in to work with the others and share a memory pool. The easiest possible way to think of it is like a highway - your frequency is like the speed of the cars, your cores are like the number of lanes. The objective, in a perfect world, being to get as many cars through in as short a period of time as possible.

Two solutions, obviously. Faster cars, or more lanes, or ideally both. AMD has typically been on the "more lanes" side of processor design for solving this problem, while Intel has typically focused on "higher speed".

Processors have a lot of constraints in how they can be built, like heat, and just fundamental space constraints. Transistors run into space constants for a single die.... so your option is to add more die! This is what a core is. Think of it sort of like a brain hemisphere to the processor being the brain. Running parallel die can also help speed some applications with specific properties (discussed below) by enabling them to do two or three or four things at the same time.

2. The cores should be enabled basically by default. Performance will vary.
What you get out of a multi-core processor is based on how an application utilizes something called threads (think of them as lines of action, like say, a water bucket brigade) . Each core can deal with handling usually a single thread at a time (or 2 for hyperthreaded procs such as yours). However, if an application doesn't set up these brigades for each core (the threads) then it has nothing to do, and therefore there will be no performance increase.

An example would be old games. You could have a billion cores and a single core processor, and provided their other qualities were the same, there'd be no difference - because those extra lanes of traffic are empty - the software has no idea they exist, and even if it does, it has no code designed to use them.

Where multiple cores shine is in applications where different work needs to be done at similar times, such as when compiling code or rendering video in a video editing application. This is because these apps are not only designed to use all the lanes, but additionally, they can.

So your answer there: Depends what you run. Some games and programs are multi-threaded; they use multiple processor cores. Those will benefit from more cores being available. Anything else won't.

3. You can see your processor load in apps (basic) like Task Manager [windows] or something like HWMonitor. CPUZ is another app that can analyze which cores are being used and by how much.

4. Other cores: As said prior, they are typically enabled by default. It's more dependent on if your applications have any cars to pump through those extra lanes, they're usually already open, but can be left unused if an application doesn't support it.



An IRL example, supposing you care to read any further


A really basic example of this is what you may sometimes find with poorly coded applications.
From my experience in writing Visual Basic apps, poorly, I can illustrate an example.

In visual basic, you have the GUI thread (so, the set of instructions that handles drawing the window and adding controls and showing text and whatnot). If you run something intensive, say, heavy file encryption, the application will go not responding or fail to show changes, unless you run it in a separate thread.

This is because you are occupying your only thread, the GUI thread, with these operations, so it is struggling to get its usual task of showing the controls and window done.

What you can do to avoid this is create a second thread, and run things on that. Now your GUI thread can focus solely on making the window and GUI changes, while your other thread is being pushed through another one of these cores (or sometimes the same, depending on how optimization works out) so everything remains snappy and responsive.

Notice, however, that it is a conscious choice on part of the developer to implement this properly. As I mostly program for personal use, I rarely do. So my apps freeze a lot. \_(-_-)_/

 

olly29

Honorable
Oct 1, 2015
76
0
10,630


Thanks so much, big help

If I look in CPU-Z I only see 1 core (Core #0) and also have looked in the performance tab in task manager to find only one graph (indicating one core?). I play a lot of games such as Dota 2 and Playerunknown Battleground which are relatively new. Should I look into unlocking another core(s) to improve some performance? Or would it literally not really make a difference?

Thanks again!

 
Re: Games.
They'll already be coded to handle what they can handle. If they're quad core, great, you'll get full use of your processor, but if they're not, there's nothing to be done on your end. You can have as many cores as you like, if the games aren't programmed to use them for anything, it's not going to help.

Re: Unlocking
Unlocking, or the "K" that your processor model refers to is something somewhat different.

Basically, a processor has its design; a specific speed it works at, specific memory timings, etc.
These are sort of joined lockstep. What an unlocked processor does is let you change the multiplier (this scalar that keeps everything matched up), and specifically, pick a higher speed for your processor than it is "designed" to operate at.

You've probably heard of this: it's called overclocking. As to whether you would do it, that's up to you. It can result in performance boosts, but what you have to be aware of is an unfortunate little mathematical law governing heat output from a processor:

TDP (heat output) = #Transistors * Frequency * voltage^2.

Transistors, of course, is a constant. Voltage can be tweaked resulting in squared contributions or decreases in overall heat output.But if you put it too low, the processor can distinguish between the spike for a 1 and the non-volt for a 0. Problematic. This is actually why processor design has started focusing so much on things like more cores instead of more transistors - because we're reaching fundamental limits with voltage; and because voltage is squared, it gives the most room when we can reduce it to increase the other performance-enhancing metrics.

Anyhow, what you're tweaking in this formula, by and large, is frequency..... so if you increase it, heat output goes up. You have to make sure the cooler on your processor is capable of wicking away more heat than it produces, or else it's sad days. That's why you can only overclock so much before you lose stability, because either you start putting out too much heat, or the voltage requirement goes up... which is a squared addition to heat output.

TLDR: As you overclock, frequency goes up, and voltage may have to as well. These contribute considerably to heat output by your processor, and if you can't wick it away fast enough with your cooler, stability issues result. Sad days. You can use overclocking to try and increase performance, but your mileage will vary - you'll want to make sure your processor remains stable or else your computer will crash until you turn it back down.
 

olly29

Honorable
Oct 1, 2015
76
0
10,630


I see, I specifically bought the non-K version though because I wasn't really interested in overclocking
 
Sorry, I blanked. Thought I saw a k in your model number.

Either way, basically it's up to the software devs to optimize a game for multi-core use. If it isn't, there's nothing else to be done - but usually the devs will make a decent choice in that regard.

Worse-case, intel is known for having strong per-core performance, so you should be fine either way.