Is Rosetta multi-processor optimised?

Discussion in 'macOS' started by Spanky Deluxe, Feb 8, 2006.

  1. Spanky Deluxe macrumors 601

    Spanky Deluxe

    Joined:
    Mar 17, 2005
    Location:
    London, UK
    #1
    Do we actually know for sure if Rosetta is opimised for multi-core environments? Emulation software rarely is. If its not then non Universal binary applications should run the same speed on Core Solo machines as Core Duo machines.

    Edit: Sorry this was meant to go in the Macintosh Hardware forum. I've got flu and am slightly delerious.
     
  2. gnasher729 macrumors P6

    gnasher729

    Joined:
    Nov 25, 2005
    #2
    There are some fundamental misunderstandings here.

    First of all, just nitpicking: You don't optimise for multi-core environments, you optimise for multi-processor environments. It doesn't matter one bit whether you have one chip with two cores or two chips with a single core each.

    More important: Rosetta is not an emulator. Rosetta is a code translator. When you start a PowerPC application, Rosetta will translate all the code into x86 code, and then its job is done: You now have an x86 application. If the PowerPC application was multi-processor aware, then the translated x86 application is multi-processor aware, and if the PowerPC application wasn't multi-processor aware, then the translated x86 application won't be multiprocessor aware.

    Emulators like Virtual PC work completely different. They emulate a different computer. An emulator can decide whether it wants to emulate a single processor computer or a multi processor computer. Since emulating a multi processor computer is difficult, they don't do it - it would usually be pointless because emulating a dual processor computer would take twice as long. On the other hand, multiple processors are of very little use if you try to emulate a single processor computer.

    Third, you forget that you can run multiple applications simultaneously on a Macintosh. Even if one application doesn't run any faster because it uses a single processor only, that means on a dual processor system you still have another processor available that can do other tasks and can run other applications at full speed.

    Fourth: There will never be a Macintosh with a Core Solo processor. Google for "Intel price list" and read for yourself why.
     
  3. mdavey macrumors 6502a

    mdavey

    Joined:
    Nov 1, 2005
    #3
    You make some good points, but fail to answer the question of whether the Rosetta application itself is able to take advantage of multiple prosessors to reduce the time it takes to translate an application.
     
  4. gnasher729 macrumors P6

    gnasher729

    Joined:
    Nov 25, 2005
    #4
    I couldn't care less. How often do you start Photoshop?
     
  5. SiliconAddict macrumors 603

    SiliconAddict

    Joined:
    Jun 19, 2003
    Location:
    Chicago, IL
    #5
    from what I've read It’s a tad more complicated then simply translating the application's code and it’s done with it. I read an article on ARStechnica about Rosetta’s core tech a few months back. Having Rosetta act as a server on one core and letting the OS act as a receiving client on another could very well garner better performance. Whether or not Rosetta does this is anyone's guess. Personally my guess is that API calls are being run through Rosetta as well since some Altivec apps are supported in Rosetta and some aren't. Since Altivec isn’t in the Core Duo the only alternative is to let Rosetta manage the translation. Also anything that is doing heavy AU instructions, Read: Photoshop, Rosetta is doing the translation between the x86 ISA and the PPC ISA.
     
  6. portent macrumors 6502a

    Joined:
    Feb 17, 2004
    #6
    Rosetta is an emulator. Granted, it's a very sophisticated emulator, compared to VirtualPC or the like, but it is an emulator. In a sense, it's an emulator that takes notes to avoid emulating the same thing twice.
     
  7. iSee macrumors 68040

    iSee

    Joined:
    Oct 25, 2004
    #7
    More nitpicking

    Actually it is more correct to say multi-core environments. That covers machines with multiple processors with one core each as well as machines with one processor with multiple cores...

    Now, I won't even touch the Emulator vs. Translator thing. Another fine line, but I don't have the energy to touch...

    :rolleyes:

    Well, OK. I'll do it. I think Rosetta is an emulator implemented as a caching code translator rather than as a virtual machine. That's right, Rosetta is BOTH an emulator AND a translator! :D
     
  8. Spanky Deluxe thread starter macrumors 601

    Spanky Deluxe

    Joined:
    Mar 17, 2005
    Location:
    London, UK
    #8
    All this multi-core, multi-processor nitpicking is silly. Gnasher, if you really want to be pedantic, what I should of said was optimising for multi-threading. I don't understand why there was such a problem in saying multi-core since cores and processors up until a couple of years ago were basically the same thing. Processors had a core. Now processors can have two 'processors' on one chip and are called multi-core. Who cares.

    As far as Rosetta not being an emulator well it really is. Its emulating a G4 CPU and a few other parts of older mac systems. It may involve translating code but at the end of the day its doing the job of a G4 processor in a different environment and that's emulation! Emulators have used JIT emulation techniques by cacheing re-used code as Rosetta does for a good while now.

    All I was asking was whether anyone knew if Rosetta was optimised for multicore/processor/thread environments. I certainly hope Apple won't use a Core Solo in any of their machines and I understand that a Core Duo doesn't cost much more than a Core Solo but that isn't the point. I want to know if Rosetta will be able to run PPC native applications at a decent speed like the Core Duo machines.
    Someone could do a photoshop benchmark with their Intel iMac then reboot, press F8 and enter "cpus=1" as a boot parameter before doing the same benchmark and there we go, bob's your uncle, fanny's your aunt we'll be able to see how a Core Solo machine would theoretically perform.
     

Share This Page