Reputation: 91
Do current architectures provide support for running the same single thread on multiple cores of a single system? What kind of issues would be involved in such a situation?
Upvotes: 4
Views: 2323
Reputation: 2845
You're basically asking, are sequential instructions automatically parallelized? There are many ways to implement parallel execution, with different levels of efficiency based on the work load. This can also happen at different levels, at the µarch (related to your question) , the ISA, the OS, and etc...
If I can assume correctly, and attempt to answer what I believe your asking. It is theoretically possible, but hasn't been implemented on commercially available commodity hardware. Hence the many higher level methods for parallelization.
Upvotes: 0
Reputation: 4850
It does not exist because the hardware doesn't permit but this is a bottleneck that could theoretically be eliminated with some ingenuity from Intel.
Upvotes: 0
Reputation: 1625
This would actually slow down the thread. Every time a thread switches cores, all the state of the previous core needs to be transfered. Ideally a thread would stay on one core.
What advantages are you thinking will come from running on multiple cores?
Upvotes: 2
Reputation: 58491
Not that I know of.
A thread can be stopped an started again on a different core but a thread in and by itself can not run parallel.
If you have code in a thread that could run parallel, you should split it up in two threads.
Upvotes: 4