Poll of the Day > Why don't computers have 1 main core and multiple sub-cores?

Topic List
Page List: 1
Lokarin
05/13/19 12:44:12 AM
#1:


That way you get maximum power for both single and multi threading applications.
---
"Salt cures Everything!"
My YouTube: https://www.youtube.com/user/Nirakolov/videos
... Copied to Clipboard!
Ogurisama
05/13/19 12:52:47 AM
#2:


... Copied to Clipboard!
joemodda
05/13/19 12:58:29 AM
#3:


It's called a master-slave system, and they certainly exist
---
The sin is not in being outmatched, but in failing to recognize it
-Ancestor
... Copied to Clipboard!
Oops_All_Berrys
05/13/19 1:05:24 AM
#4:


Someone a lot smarter than you already worked out why if it isn't the case
---
When you're such a mistake that God laughs in your face.
... Copied to Clipboard!
Sephiroth C Ryu
05/13/19 2:07:14 AM
#5:


Short answer:

Multiple cores is basically a way to get around the problems with just making faster single core processors.

Namely, you get to a point where making it faster increases power use and heat generation, and also to where you can no longer miniturize it any further without running into fidelity issues simply due to quantum mechanics being annoying (whether in just the etching/creating process, or in the function of the chips themselves).

To put it another way though:

What you are asking in the topic title is literally what they already do for the most part. Just about any half-baked program made by people who don't know how to multi-thread will typically run on the first core only. This is more an OS issue from what I can tell. That said, a modern OS may be willing to toss a single-thread program to a different core.

If you want this "main core" to be faster, then build a computer with an unlocked CPU, and then overclock the first core higher than the others.
.
---
I am the Hunter of Topics. My post never fails to kill its prey.
*pounces* Nyaa!
... Copied to Clipboard!
Yellow
05/13/19 2:09:02 AM
#6:


You basically described the CPU/GPU relationship. A GPU has thousands of weak cores. They can be used for just about anything assuming your program is designed for it.
---
... Copied to Clipboard!
Sephiroth C Ryu
05/13/19 2:24:09 AM
#7:


Given the nature of the TC's question, let's also just get something else out there:

You can't just arbitrarily multi-thread a single thread. A single "thread" is something that cannot proceed with the next calculation until the results of of the current calculation are done, as it likely relies on the current calculation.

If it doesn't, then this is a job for the programmers to split the thread into multiple ones if possible (it won't always be possible due to various things including blah blah blah risk of 2+ threads trying to change the same memory value at the same time, but yeah).

Naturally, if an OS or whatever else just decided to try and arbitrarily split threads across CPUs, it would create all those issues.
.
---
I am the Hunter of Topics. My post never fails to kill its prey.
*pounces* Nyaa!
... Copied to Clipboard!
Sahuagin
05/13/19 1:16:38 PM
#8:


Lokarin posted...
That way you get maximum power for both single and multi threading applications.

I don't think it works the way you describe. it's going to be a trade-off no matter how you do it, not "maximum power". as was said, something like a GPU might be designed to be really efficient for a particular type of computation, but the CPU should be general-purpose. (see also Google's new TPUs which are a mind-blowing concept.)

current cores are already basically maxed out. your 1 main core is not going to be faster than existing cores. you already are in the situation where you have multiple "main cores" which is going to be better than 1 "main core" with many "sub-cores", unless you specifically need a ton of cores for some reason.

I think you're imagining single threaded applications being given to the "main core", making them run faster, and then multi-threaded applications being given to the "sub-cores", making them run "faster". that's not really how it works. your cores are already "main cores", and any single-threaded application can run on any of them. if you want to run three STAs, they can each use a single "main core", and they each get "maximum power" without getting in each other's way.

a multi-threaded application doesn't necessarily benefit at all from multiple cores, unless it is specifically doing some kind of parallel computation. multi-threaded often just means that the application can do time-consuming things, like wait for hard-drives or databases or network connections, without blocking the main thread. multiple cores are not needed to achieve this.

with STAs, having multiple cores lets you split them up and give them each their own "main core". with MTAs, same thing, but otherwise many cores also lets you do super intense computation at rates faster than a single core would allow, but very rarely will that ever be something the average user needs. these days it's pretty rare that the main bottleneck of your computer is CPU, unless you have a really really old computer, or are doing something very specific.
---
... Copied to Clipboard!
CarefreeDude
05/13/19 3:10:47 PM
#9:


joemodda posted...
It's called a master-slave system, and they certainly exist


But slavery has been abolished!
---
3DS friend code: 5112-3770-6561 IGN: Chris
Rock Safari: Pupitar, Rhydon, dwebble
... Copied to Clipboard!
Sephiroth C Ryu
05/13/19 9:25:44 PM
#10:


Incidentally, the reason you can easily multi-thread a CPU is because, once the program (usually a game in this case) is done figuring out what has happened during the last frame, what each and every pixel should be showing based on that information can be calculated independently of each other. The calculation for a pixel doesn't affect the one for the pixel next to it.
.
---
I am the Hunter of Topics. My post never fails to kill its prey.
*pounces* Nyaa!
... Copied to Clipboard!
Topic List
Page List: 1