Recommended CPU for timetabling - new benchmark

Started by Volker Dirr, October 05, 2023, 04:41:02 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Volker Dirr

It's time to update the FET benchmarks.
Sadly the old benchmark is pretty out of date. You can still see the old results here:
https://lalescu.ro/liviu/fet/forum/index.php?topic=166.msg729#msg729

FET improved pretty much in speed the last years, because:
- the FET algorithm is better now
- FET support multi core CPUs
- Qt 6 is faster than Qt 5
- FET is compiled now with 64 bit instead of 32 bit
- the compilers are better now

The old benchmark also become too easy for new CPUs and it can't be compiled with Qt 6 anymore.

If you are interested in speed improvements you can maybe already view some of my videos:
https://www.youtube.com/watch?v=XxfJAaPRmxo (Speed up by CPU)
https://www.youtube.com/watch?v=MVt0Yb9y8xc (Speed up by Multi Core)
https://www.youtube.com/watch?v=DejTeNM0T6I (Speed up by software)
https://www.youtube.com/watch?v=nEmsf_-f6P4 (Speed up by software)
https://www.youtube.com/watch?v=rl5N_ZyBB6A (Speed up by time limit)

Volker Dirr

#1
You can download the FET benchmark here:
Benchmark data set file for all users (as zip file. You must unzip it!):
https://www.timetabling.de/download/BENCHMARK/BENCHMARK.fet.zip
Benchmark data set file for all users (unziped):
https://www.timetabling.de/download/BENCHMARK/BENCHMARK.fet


Executable files:
Windows: https://www.timetabling.de/download/BENCHMARK/fet-6.9.6-BENCHMARK.exe
MacOS (ARM): https://www.timetabling.de/download/BENCHMARK/fet-6.9.6-BENCHMARK-macOS-Apple-M1-M2.dmg
MacOS (x86): https://www.timetabling.de/download/BENCHMARK/fet-6.9.6-BENCHMARK-macOS-Intel-x86.dmg
Linux: https://www.timetabling.de/download/BENCHMARK/fet-6.9.6_BENCHMARK-x86_64.AppImage
Source: https://www.timetabling.de/download/BENCHMARK/fet-6.9.6-BENCHMARK.zip

The benchmark rules are not difficult:
1. Download the FET data set file and the needed executable.
2. Run the data set file on a single thread. Wait until you generated at least 3 timetables and report the last "Tables per minute"-value. ((Load the file: FET -> File -> Open) and (Generate: FET -> Timetable -> Generate multiple))
3. Run the data set file on all available threads. Wait until you got at least 3 times the "Tables per minute"-value and report the last one.
4. Run the data set file only with as many threads has you have performance cores. So without SMT, Hyper-threading, and without efficiency cores.

You can see a small manual also in this video:
https://www.youtube.com/watch?v=GQLiak8AkYQ

You can see some detailed benchmarks here:
https://www.youtube.com/watch?v=OMNvgEuyV-g
(This video is more detailed than the following results)

You will find (shorten) results of the single core and the multi core benchmark results in the next post. Please write your benchmark results here.

Volker Dirr

#2
The precompiled versions use Qt 6.5.3
Windows uses MinGW 11.2
MacOS uses clang 14 for x86 and clang 15 for ARM
Linux uses gcc 12.3

Single core:
------------
Tables per Minute - CPU - Cores - compiled or precompiled - OS - metered by
---------------------------------------------------------------------------
0.75 - Ryzen 7700x - 8C/16T - precompiled Linux - Linux (Manjaro) - 200Puls
0.67 - Ryzen 7800x3d - 8C/16T - precompiled Linux - Linux (Chmimera OS) - 200Puls
0.63 - Apple ARM M2 - 4P+4E - precompiled MacOS (ARM) - MacOS 14 - Volker Dirr
0.55 - AMD Ryzen 5900X - 12C/24T - precompiled Linux - mx-linux - PrussianHeathen
0.51 - AMD Ryzen 5600G - 6C/12T - Qt 6.5, gcc 11.4 - Kubuntu 22.04 - Volker Dirr
0.46 - AMD Ryzen 3900X - 12C/24T - Qt 6.6, gcc 13.2 - Fedora 38 - HITCHER_I
0.39 - Intel i5 9500 - 6C/6T - precompiled Linux - Debian 12 - PrussianHeathen
0.38 - AMD Ryzen 2700x - 8C/16T - Qt 6.5, gcc 12.3 - openSUSE Leap 15.4 - Liviu Lalescu
0.27 - Intel Pentium G4560 - 2C/4T - precompiled Windows - Windows 10 - Volker Dirr
0.26 - Intel i4460 - 4C/4T - precompiled Windows - Windows 10 - Volker Dirr
0.26 - Broadcom BCM2712 (Pi 5) - 4C/4T - Qt 6.4, gcc 12.2 - Raspberry OS Bookworm, Volker Dirr
0.22 - Intel i5-4308U - 2C/4T - precompiled MacOS (x86) - MacOS 12 - Volker Dirr
0.18 - AMD Athlon II X2 270 - 2C - Qt 6.5, gcc 11.4 - Kubuntu 22.04 - Volker Dirr
0.08 - Broadcom BCM2711 (Pi 4) - 4C/4T - Qt 6.4, gcc 12.2 - Raspberry OS Bookworm, Volker Dirr

Volker Dirr

#3
The precompiled versions use Qt 6.5.3
Windows uses MinGW 11.2
MacOS uses clang 14 for x86 and clang 15 for ARM
Linux uses gcc 12.3

Multi core: (All threads)
-------------------------
Tables per Minute - CPU - Cores - compiled or precompiled - OS - metered by
---------------------------------------------------------------------------
6.71 - Ryzen 7700x - 8C/16T - precompiled Linux - Linux (Manjaro) - 200Puls
6.60 - AMD Ryzen 5900X - 12C/24T - precompiled Linux - mx-linux - PrussianHeathen
6.23 - AMD Ryzen 3900X - 12C/24T - Qt 6.6, gcc 13.2 - Fedora 38 - HITCHER_I
5.93 - Ryzen 7800x3d - 8C/16T - precompiled Linux - Linux (Chmimera OS) - 200Puls
3.84 - Apple ARM M2 - 4P+4E - precompiled MacOS (ARM) - MacOS 14 - Volker Dirr
3.75 - AMD Ryzen 2700x - 8C/16T - Qt 6.5, gcc 12.3, openSUSE Leap 15.4 - Liviu Lalescu
3.67 - AMD Ryzen 5600G - 6C/12T - Qt 6.5, gcc 11.4 - Kubuntu 22.04 - Volker Dirr
2.02 - Intel i5 9500 - 6C/6T - precompiled Linux - Debian 12 - PrussianHeathen
0.99 - Intel i4460 - 4C/4T - precompiled Windows - Windows 10 - Volker Dirr
0.98 - Broadcom BCM2712 (Pi 5) - 4C/4T - Qt 6.4, gcc 12.2 - Raspberry OS Bookworm, Volker Dirr
0.65 - Intel Pentium G4560 - 2C/4T - precompiled Windows - Windows 10 - Volker Dirr
0.44 - Intel i5-4308U - 2C/4T - precompiled MacOS (x86) - MacOS 12 - Volker Dirr
0.36 - AMD Athlon II X2 270 - 2C - Qt 6.5, gcc 11.4 - Kubuntu 22.04 - Volker Dirr
0.30 - Broadcom BCM2711 (Pi 4) - 4C/4T - Qt 6.4, gcc 12.2 - Raspberry OS Bookworm, Volker Dirr

Volker Dirr

#4
The precompiled versions use Qt 6.5.3
Windows uses MinGW 11.2
MacOS uses clang 14 for x86 and clang 15 for ARM
Linux uses gcc 12.3

Multi core: (Only Performance cores. So WITHOUT SMT, HT, and WITHOUT Efficiency cores)
--------------------------------------------------------------------------------------
Tables per Minute - CPU - Cores (used threads) - compiled or precompiled - OS - metered by
------------------------------------------------------------------------------------------
5.70 - AMD Ryzen 5900X - 12C/24T (12)- precompiled Linux - mx-linux - PrussianHeathen
5.52 - Ryzen 7700x - 8C/16T (8)- precompiled Linux - Linux (Manjaro) - 200Puls
5.25 - Ryzen 7800x3d - 8C/16T (8) - precompiled Linux - Linux (Chmimera OS) - 200Puls
4.86 - AMD Ryzen 3900X - 12C/24T (12) - Qt 6.6, gcc 13.2 - Fedora 38 - HITCHER_I
2.90 - AMD Ryzen 5600G - 6C/12T (6) - Qt 6.5, gcc 11.4 - Kubuntu 22.04 - Volker Dirr
2.73 - Apple ARM M2 - 4P+4E (4) - precompiled MacOS (ARM) - MacOS 14 - Volker Dirr
2.72 - AMD Ryzen 2700x - 8C/16T (8) - Qt 6.5, gcc 12.3 - openSUSE Leap 15.4, Liviu Lalescu
2.02 - Intel i5 9500 - 6C/6T (6) - precompiled Linux - Debian 12 - PrussianHeathen
0.99 - Intel i4460 - 4C/4T (4) - precompiled Windows - Windows 10 - Volker Dirr
0.98 - Broadcom BCM2712 (Pi 5) - 4C/4T - Qt 6.4, gcc 12.2 - Raspberry OS Bookworm, Volker Dirr
0.44 - Intel Pentium G4560 - 2C/4T (2) - precompiled Windows - Windows 10 - Volker Dirr
0.39 - Intel i5-4308U - 2C/4T (2) - precompiled MacOS (x86) - MacOS 12 - Volker Dirr
0.36 - AMD Athlon II X2 270 - 2C (2) - Qt 6.5, gcc 11.4 - Kubuntu 22.04 - Volker Dirr
0.30 - Broadcom BCM2711 (Pi 4) - 4C (4) - Qt 6.4, gcc 12.2 - Raspberry OS Bookworm, Volker Dirr

Volker Dirr

I added the Results for Raspberry Pi 4B:
Single Core:
0.08 - Broadcom BCM2711 (Pi 4) - 4C/4T - Qt 6.4, gcc 12.2 - Raspberry OS Bookworm, Volker Dirr

Multi Core:
0.30 - Broadcom BCM2711 (Pi 4) - 4C/4T - Qt 6.4, gcc 12.2 - Raspberry OS Bookworm, Volker Dirr

More detailed about Bookworm vs. Bullseye vs. Buster. And also 32-bit vs 64-bit in my video:
https://www.youtube.com/watch?v=l6bFVfcvUpc


Liviu Lalescu


Volker Dirr

I added the results of the new Raspberry Pi 5 (2.4 GHz) in the benchmark tables.
There will be more information about power consume and other stuff on my YouTube channel soon.




Liviu Lalescu