What's new

Dolphin optimized for Quadcore ( Dolphin-Q)

babylon123

New member
Hi,

Knuckles said that dolphin is optimized for dual core and one core handles the
video processing (2nd one ) and the rest goes for the other core...

Why not optimize it for quad core cpu ? like one or two cores handles the video
and the other 2 handles the rest of the job....theoretically speed can be doubled
....
 

Knuckles

Active member
Moderator
you can't split threads. I'm not the "full" expert on that, but I know you can't. I think it was already discussed a while back.

Ector will prolly be able to enlight you more on this.
 
OP
B

babylon123

New member
I think i got an idea about what you were talking...

I got this info from wiki..

" perhaps the most interesting application of the technology is when it is applied to a single process to enable parallel execution on a multiprocessor system.

This advantage of a multithreaded program allows it to operate faster on computer systems that have multiple CPUs, CPUs with multiple cores, or across a cluster of machines. This is because the threads of the program naturally lend themselves to truly concurrent execution. In such a case, the programmer needs to be careful to avoid race conditions, and other non-intuitive behaviors. In order for data to be correctly manipulated, threads will often need to rendezvous in time in order to process the data in the correct order. Threads may also require atomic operations (often implemented using semaphores) in order to prevent common data from being simultaneously modified, or read while in the process of being modified. Careless use of such primitives can lead to deadlocks"


However it seems possible but very hard to do...i dont know much about programming...maybe i am wrong about it..

Its up to Fires and Ector....and ......(knuckles maybe).....
 
Last edited:

Toasty

Sony battery
It's far easier said than done to split a task into two tasks that can be done side-by-side. In a GameCube, there is a GPU and a CPU. They are two separate processors that operate somewhat independently. So, splitting the video processing and general processing into two threads isn't too enormous of a deal, since the two tasks normally run concurrently anyway. But that's where it ends. You can't split a single processor down the middle and give half of its work load to one thread and the other half to another - it just doesn't work that way.

Think of it this way: You've been given the task of writing a report about a movie. To do the task yourself will take you a total of three hours. You decide the task could be done quicker if you had a friend's help. Sounds easy! You split up the single task into a few sub-tasks:
  1. Go to the video store and rent the movie (15 minutes)
  2. Watch the movie (2 hours)
  3. Write the report (40 minutes)
  4. Spell check the report (5 minutes)
Well, the largest sub-task there is obviously number 2, so you decide to do task 2, and let your friend do tasks 1, 3 and 4. There! Not perfectly balanced, but we should be able to shave the time needed from three hours down to two, right? Wrong.

Task 2 can't be performed until task 1 is completed. And task 3 can't be performed until task 2 is completed. And go figure - task 4 can't be performed until task 3 is completed. So, even with your friend's help you still haven't managed to perform the task any quicker. As a matter of fact, it took you even longer because you had to communicate the essential points of the movie to your friend between tasks 2 and 3.

With a processor it is even more complicated. There are hundreds of different operations that need to be performed, and attempting to split them up and keep them coordinated is no trivial matter. Add in the fact that the emulator has no way of 'knowing' before-hand what kind of task (game/program) it will have to emulate and it's very difficult to optimize things accordingly.
 
OP
B

babylon123

New member
Thanks for the explanation Toasty..

From what you are saying that the operations in the gamecube CPU is strongly
dependent on each other and cannot be seperated and processed simultaneously to save time...

And i believe that the creators Fires and Ectors already thought about it....i just wanted to know why not trying a different approach..

Well this means that all we can do is to wait for new CPUs with higher frequencies...

Also i wanted to thank the Dolphin team i like this project more than pcsx2....

Good luck guys..
 

Top