Raspberry Pi vs Power Mac G5

Discussion in 'PowerPC Macs' started by AphoticD, Mar 20, 2018.

  1. AphoticD, Mar 20, 2018
    Last edited: Mar 20, 2018

    AphoticD macrumors 68000

    AphoticD

    Joined:
    Feb 17, 2017
    Location:
    Australia
    #1
    Pi-vs-G5.jpg

    Out of interest, I just bought a Raspberry Pi 3 Model B+ to play around with. The new Pi system has a number of improvements over the previous model, including improved cooling and a bumped up CPU which is now:
    • SoC: Broadcom BCM2837B0 quad-core A53 (ARMv8) 64-bit @ 1.4GHz
    I haven't had any prior experience with these mini computers, but I think it performs incredibly well for web browsing and Youtube with it's default Raspbian OS and it handles UI graphics smooth and responsive when connected over HDMI to my 27" display.

    Having onboard wifi means you can just connect it to power (5V, 2.5A) after initial config and wirelessly login via SSH or VNC without using a USB dongle or any other connected devices. This makes it a tidy little box for a media server or a portable little sandbox server for PHP/python development.

    To disable the automatic GUI / login on boot, run raspi-config and change Boot Options > B1 Desktop / CLI to "B1 Console".

    After reading some benchmarks, I tried replicating some of them with both the 2018, passive-cooled ARM based Quad Core Pi @ 1.4Ghz running Raspbian and the late 2005, air-cooled Dual Core PowerPC (970mp) G5 @ 2.3Ghz running Ubuntu Mate.
    Code:
    pi:~ $ uname -a
    Linux 4.9.80-v7+ #1098 SMP Fri Mar 9 19:11:42 GMT 2018 armv7l GNU/Linux
    
    Code:
    g5:~ $ uname -a
    Linux 4.4.0-116-powerpc64-smp #140-Ubuntu SMP Mon Feb 12 22:00:40 UTC 2018 ppc64 ppc64 ppc64 GNU/Linux
    

    Sysbench (0.4.12) CPU Benchmark
    (Thread count has been matched to the number of cores)
    Code:
    pi:~ $ sysbench --test=cpu --num-threads=4 run
    ...
    Test execution summary:
        total time:                          33.8234s
        total number of events:              10000
        total time taken by event execution: 135.2127
    ...
    
    Code:
    g5:~ $ sysbench --test=cpu --num-threads=2 run
    ...
    Test execution summary:
        total time:                          31.9690s
        total number of events:              10000
        total time taken by event execution: 63.9280
    ...
    
    CPU Benchmark Results:
    Pi
    CPU Test: 33.82 seconds
    ----------
    G5 CPU Test: 31.96 seconds

    Lower results are better. As you can see, the mighty G5 is only slightly quicker (~5.5%) than the little Pi!


    Sysbench Memory Benchmarks (READ/WRITE)
    Pi Memory Read

    Code:
    pi:~ $ sysbench --test=memory --memory-block-size=1K --memory-total-size=10G --memory-oper=read run
    ...
    Operations performed: 2097152 (870860.93 ops/sec)
    
    2048.00 MB transferred (850.45 MB/sec)
    
    Test execution summary:
        total time:                          2.4081s
        total number of events:              2097152
        total time taken by event execution: 1.7553
    ...
    
    Pi Memory Write
    Code:
    pi:~ $ sysbench --test=memory --memory-block-size=1K --memory-total-size=10G --memory-oper=write run
    ...
    Operations performed: 2097152 (652977.86 ops/sec)
    
    2048.00 MB transferred (637.67 MB/sec)
    
    Test execution summary:
        total time:                          3.2117s
        total number of events:              2097152
        total time taken by event execution: 2.5592
    ...
    
    G5 Memory Read
    Code:
    g5:~ $ sysbench --test=memory --memory-block-size=1K --memory-total-size=10G --memory-oper=read run
    ...
    Operations performed: 2097152 (1202025.79 ops/sec)
    
    2048.00 MB transferred (1173.85 MB/sec)
    
    Test execution summary:
        total time:                          1.7447s
        total number of events:              2097152
        total time taken by event execution: 1.1654
    ...
    
    G5 Memory Write
    Code:
    g5:~$ sysbench --test=memory --memory-block-size=1K --memory-total-size=10G --memory-oper=write run
    ...
    Operations performed: 2097152 (856017.41 ops/sec)
    
    2048.00 MB transferred (835.95 MB/sec)
    
    Test execution summary:
        total time:                          2.4499s
        total number of events:              2097152
        total time taken by event execution: 1.8698
        per-request statistics:
    ...
    
    Memory Benchmark Results:
    Pi Memory Read: 850.45 MB/sec
    Pi Memory Write: 637.67 MB/sec
    EDIT: Tests re-run with --num-threads=4
    Pi *Multithreaded* Memory Read: 2749.16MB/sec
    Pi *Multithreaded* Memory Write: 2271.43MB/sec
    ----------
    G5 Memory Read: 1173.85 MB/sec
    G5 Memory Write: 835.95 MB/sec
    EDIT: Tests re-run with --num-threads=2
    G5 *Multithreaded* Memory Read: 1288.34MB/sec
    G5 *Multithreaded* Memory Write: 852.00MB/sec

    Ok, so [single-threaded] memory performance of the Pi isn't quite as good as the G5 and it is massively limited at only 1GB of RAM, as opposed to the G5's ceiling of 16GB.

    EDIT: Multithreaded memory tests show memory throughput on the Pi to be more than twice as fast as the G5!

    Real World Benchmarks
    Now for a real world test. Compiling QEMU 2.11.1 from source, after installing dependancies.
    (make is executed with 2 threads per CPU e.g. make -j 8)
    Pi configure
    Code:
    pi:~/Downloads/qemu-2.11.1/build$ time ../configure --target-list=ppc64-softmmu,ppc-softmmu,i386-softmmu,x86_64-softmmu --disable-spice
    ...
    real    0m22.329s
    user    0m14.970s
    sys    0m2.850s
    
    Pi make
    Code:
    pi:~/Downloads/qemu-2.11.1/build$ time make -j 8
    ...
    real    18m29.085s
    user    66m50.310s
    sys    2m50.230s
    
    G5 configure
    Code:
    g5:~/Downloads/qemu-2.11.1/build$ time ../configure --target-list=ppc64-softmmu,ppc-softmmu,i386-softmmu,x86_64-softmmu --disable-spice
    ...
    real    0m12.802s
    user    0m7.136s
    sys    0m2.928s
    
    G5 make
    Code:
    g5:~/Downloads/qemu-2.11.1/build$ time make -j 4
    ...
    real    12m26.464s
    user    22m22.660s
    sys    1m49.316s
    
    QEMU Build Time Results:
    Pi
    configure and build time: ~19 minutes
    ----------
    G5 configure and build time: ~12.5 minutes


    Booting The Mac OS 9.2.2 Universal iso in QEMU (PPC, no KVM)
    qemu-os9.png
    Code:
    pi:~ $qemu-system-ppc -M mac99 -m 128 -cdrom ~/vm/macos922uni.iso -boot d -vnc :5,password -monitor stdio
    
    Pi Time to boot and show the Mac OS 9.2.2 Read Me: 4 minute 01 seconds

    Code:
    g5:~ $ qemu-system-ppc -M mac99 -m 128 -cdrom ~/vm/macos922uni.iso -boot d
    
    G5 Time to boot and show the Mac OS 9.2.2 Read Me: 1 minute 27 seconds


    Booting Debian 9 x86_64 img in QEMU (x86_64, no KVM) [With thanks to @Lastic]
    qemu-debian9.png
    Code:
    pi:~ $ qemu-system-x86_64 -smp cpus=4 -boot c -hda vm/debian9_x64.img -m 512 -net nic -net user -vnc :5,password -monitor stdio
    
    Pi Time to boot to user login prompt (no GUI): N/A (I gave up after 13 minutes of zero progress)

    Code:
    g5:~ $ qemu-system-x86_64 -smp cpus=2 -boot c -hda vm/debian9_x64.img -m 512 -net nic -net user -vnc :5,password -monitor stdio
    
    G5 Time to boot to user login prompt (no GUI): 3 minutes 52 seconds


    Booting KolibriOS in QEMU (i386, no KVM)
    qemu-kolibri.png
    Code:
    pi:~ $ qemu-system-i386 -m 256 -cdrom kolibri.iso -boot d -vnc :5,password -monitor stdio
    
    Pi Boot to Desktop: ~11 seconds

    Code:
    g5:~ $ qemu-system-i386 -m 256 -cdrom kolibri.iso -boot d -vnc :5,password -monitor stdio
    
    G5 Boot to Desktop: ~6 seconds

    Both machines could run a smooth game of Doom in an emulated x86 system delivering graphics over VNC, running KolbriOS (the Pi is running over wifi, the G5 is on gigabit).


    EDIT: Despite these two systems being capable of performing CPU based multithreaded activities at similar speeds (with other factors causing bottlenecks, e.g read/write of the 16GB micro-SD card vs the G5's 7200rpm SATA 1TB HDD), the clear highlight here is that energy consumption has been the real advancement in the 13 years between these two systems. The G5 has a 1kW capable PSU with a real world draw of approx 150 - 250 watts per hour. The Pi on the other hand will draw ~6w under full load, with an idle of ~2w.

    At least the final PowerPC Mac, the Mighty Quad G5 will continue to stand up against a few more revisions of the Pi until it's beat out by this tiny opponent. :apple:
     
  2. Dronecatcher, Mar 20, 2018
    Last edited: Mar 20, 2018

    Dronecatcher macrumors 68030

    Dronecatcher

    Joined:
    Jun 17, 2014
    Location:
    Lincolnshire, UK
    #2
    I bought the first model Pi when they were released...but took it back when configuring it to do anything was such an uphill struggle...my impatience again. I think the process is a lot slicker now.
    Will have to revisit soon but I find the Pi Zero more alluring being an even more reduced form factor...would love to bung one into an old radio chassis and make a portable Software Defined Radio.
     
  3. AphoticD thread starter macrumors 68000

    AphoticD

    Joined:
    Feb 17, 2017
    Location:
    Australia
    #3
    I can imagine the early revisions would have been challenging. But they have come a long way in terms of ease of use.

    When I first plugged it in, it took maybe 30 seconds on initial boot to sort itself out and then I was staring at a ready to use desktop UI, with a very responsive Chromium as the default browser. I'm impressed with this little device and have been stepping through some of their projects on the Pi site for fun. I can see how good these can be for schools to teach the kids about "building" a computer, identifying what's what on the system board, and even learning to code with Python, etc

    It also made me think about how second-hand lower spec PowerPC Macs could easily fulfil the same need at roughly the same price point (and often less). Something like an iBook G4 (with Airport Extreme) would be perfect for kids to learn on without too many distractions.
     
  4. AphoticD, Mar 20, 2018
    Last edited: Mar 20, 2018

    AphoticD thread starter macrumors 68000

    AphoticD

    Joined:
    Feb 17, 2017
    Location:
    Australia
    #4
    For reference, here are the same benchmarks from my 2008 Mac Pro 3,1 (2x Quad Core 3.2Ghz Xeon).

    Mac Pro CPU Test

    Code:
    cMP:~ $ sysbench --test=cpu --num-threads=8 run
    ...
    CPU speed:
        events per second:  8268.55
    
    General statistics:
        total time:                          10.0010s
        total number of events:              82718
    ...
    
    Mac Pro Memory Read *Multithreaded*
    Code:
    cMP:~ $ sysbench --test=memory --threads=8 --memory-block-size=1K --memory-total-size=10G --memory-oper=read run
    ...
    Number of threads: 8
    ...
    Total operations: 10485760 (23677316.36 per second)
    
    10240.00 MiB transferred (23122.38 MiB/sec)
    
    General statistics:
        total time:                          0.4401s
        total number of events:              10485760
    ...
    
    Mac Pro Memory Write *Multithreaded*
    Code:
    cMP:~ $ sysbench --test=memory --threads=8 --memory-block-size=1K --memory-total-size=10G --memory-oper=write run
    ...
    Number of threads: 8
    ...
    Total operations: 10485760 (4491974.58 per second)
    
    10240.00 MiB transferred (4386.69 MiB/sec)
    
    General statistics:
        total time:                          2.3316s
        total number of events:              10485760
    ...
    
    Memory tests also benefit from being multithreaded. I'll re-run the Pi and the G5 memory tests again to reflect multithreaded performance.

    Compiling QEMU benchmarks:

    cMP configure

    Code:
    cMP:~ $ time ../configure --target-list=ppc64-softmmu,ppc-softmmu,i386-softmmu,x86_64-softmmu --disable-spice --python=/usr/bin/python
    ...
    real    0m9.141s
    user    0m4.102s
    sys    0m4.809s
    
    cMP build
    Code:
    cMP:~ $ time make -j 16
    ...
    real    1m46.595s
    user    8m29.961s
    sys    1m47.083s
    
    Total configure and build time: less than 2 minutes.
     
  5. Lastic macrumors 6502a

    Joined:
    Mar 19, 2016
    Location:
    North of the HellHole
    #5
    Interesting comparison.

    I once coupled an Odroid-W to a Motorola lapdock and was also impressed of it running Qemu and mplayer quite good.

    However fried it trying to add a flat USB connector and now the lapdock serves as a HDMI KVM for my Xserve G4
     
  6. marcofranchimoretti, Aug 24, 2018
    Last edited: Aug 24, 2018

    marcofranchimoretti macrumors newbie

    marcofranchimoretti

    Joined:
    Aug 24, 2018
    #6
    Welcome at all. I will post my contribute.
    Libre Computer Le Potato
    [https://libre.computer/products/boards/aml-s905x-cc/]

    Linux lepotato 4.14.52-meson64 #6 SMP PREEMPT Thu Jun 28 11:17:29 UTC 2018 aarch64 GNU/Linux. [Armbian]

    sysbench 0.4.12: multi-threaded system evaluation benchmark
    Running the test with following options:
    Number of threads: 4
    Doing CPU performance benchmark
    Threads started!
    Done.
    Maximum prime number checked in CPU test: 10000
    Test execution summary:
    total time: 2.6804s
    total number of events: 10000
    total time taken by event execution: 10.7122
    per-request statistics:
    min: 1.03ms
    avg: 1.07ms
    max: 33.78ms
    approx. 95 percentile: 1.05ms
    Threads fairness:
    events (avg/stddev): 2500.0000/24.69
    execution time (avg/stddev): 2.6780/0.00

    sysbench --test=memory --memory-block-size=1K --memory-total-size=10G --memory-oper=read run
    sysbench 0.4.12: multi-threaded system evaluation benchmark
    Running the test with following options:
    Number of threads: 1
    Doing memory operations speed test
    Memory block size: 1K
    Memory transfer size: 10240M
    Memory operations type: read
    Memory scope type: global
    Threads started!
    Done.
    Operations performed: 10485760 (1259478.29 ops/sec)
    10240.00 MB transferred (1229.96 MB/sec)
    Test execution summary:
    total time: 8.3255s
    total number of events: 10485760
    total time taken by event execution: 5.9370
    per-request statistics:
    min: 0.00ms
    avg: 0.00ms
    max: 0.17ms
    approx. 95 percentile: 0.00ms
    Threads fairness:
    events (avg/stddev): 10485760.0000/0.00
    execution time (avg/stddev): 5.9370/0.00

    sysbench --test=memory --memory-block-size=1K --memory-total-size=10G --memory-oper=write run
    sysbench 0.4.12: multi-threaded system evaluation benchmark
    Running the test with following options:
    Number of threads: 1
    Doing memory operations speed test
    Memory block size: 1K
    Memory transfer size: 10240M
    Memory operations type: write
    Memory scope type: global
    Threads started!
    Done.
    Operations performed: 10485760 (859664.11 ops/sec)
    10240.00 MB transferred (839.52 MB/sec)
    Test execution summary:
    total time: 12.1975s
    total number of events: 10485760
    total time taken by event execution: 9.8195
    per-request statistics:
    min: 0.00ms
    avg: 0.00ms
    max: 0.14ms
    approx. 95 percentile: 0.00ms
    Threads fairness:
    events (avg/stddev): 10485760.0000/0.00
    execution time (avg/stddev): 9.8195/0.00

    P.S. All for terminal emulator under XFCE with browser Chromium open.
     

Share This Page