#139 Intel/AMD Multicore support

general
open
nobody
None
2013-06-16
2013-03-07
PARALAX
No

I would apprectiate multicore support for all current Intel or AMD processors. It's sad to see that most emulators, and even WinUAE, don't use more than a single core which leads to slowdowns or buffers when only one core has reached 100% and others aren't used (seen on WinUAE on my older Core2Quad PC when using an expanded 68060 emulation). VICE could benefit as well with the warp function which is used regularly for speed up loading times or testing a program. Most practual would be if you could set the amount of used cores in another option menu.

Discussion

  • Ingo Korb
    Ingo Korb
    2013-03-07

    The current SVN version supports multiple threads to separate emulation and rendering if compiled with the correct options, at least on Unix systems. It won't help much (if at all) with warp though because that mode already sacrifices rendering for increased emulation speed.

    The main problem is that the cycle-accurate emulation of a complex single-CPU system is a highly sequential process. For a program running in the emulator the system must look as if there is a CPU that executes instructions in a certain order and at certain times, with the support chips reacting to the CPU instructions at the correct time too. If you tried to parallelize this, for example by using one thread for the CPU and another for the VIC, you'd incur a very large communications overhead between the two to ensure that they stay synchronized. I'm not aware of any emulators running on a PC that uses multiple threads in the core emulation of a system that uses only a single CPU core. There is one in the embedded space (open1541), but that runs on a CPU that is itself optimized for multithreading with extremely fast communication between threads.

     
  • PARALAX
    PARALAX
    2013-03-07

    That's true. I thought that all cores are working synchronous the whole time at the same clock speed to keep the system stable but my knowings are very limited to understand the workings of any x64 CPU's in detail. Thanks for explaining!

     
  • gpz
    gpz
    2013-06-16

    • Group: --> general
    • Category: -->