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.60 - MacBook Pro M2 - 4P+4E - precompiled MacOS (Intel) - MacOS 15 - yush
0.55 - AMD Ryzen 5900X - 12C/24T - precompiled Linux - mx-linux - PrussianHeathen
0.53 - AMD Ryzen 7730U - 8C/16T - Qt 6.8, gcc 14.2 - openSUSE Tumbleweed - Liviu Lalescu
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
3.12 - AMD Ryzen 7730U - 8C/16T - Qt 6.8, gcc 14.2 - openSUSE Tumbleweed - Liviu Lalescu
2.85 - MacBook Pro M2 - 4P+4E - precompiled MacOS (Intel) - MacOS 15 - yush
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.77 - AMD Ryzen 7730U - 8C/16T (8) - Qt 6.8, gcc 14.2 - openSUSE Tumbleweed - Liviu Lalescu
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.08 - MacBook Pro M2 - 4P+4E (4) - precompiled MacOS (Intel) - MacOS 15 - yush
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


Liviu Lalescu

My ñew Spanish gift ASUS Vivobook, processor AMD Ryzen 7 7730U (8 cores, 16 threads).

Compiled by me on GNU/Linux openSUSE Tumbleweed, GCC 14.2.1, Qt 6.8.0.

In chronological order:

Single:

1) 0.526316
2) 0.528634
3) 0.529412

16 threads:

1) 3.24324
2) 3.1631
3) 3.12364

8 threads:

1) 2.84024
2) 2.7907
3) 2.76923

The multi-threads were decreasing in speed. At first try the processor was warming, then at 2nd and 3rd tries it went cooler.

Volker, I think my desktop Ryzen 7 2700X 16-threads result might be wrong, because it is much better than my new laptop, while the single and 8-threads are better on the laptop.

Volker Dirr

Thank you. I added your results.
Maybe repeat you benchmarks if you are not sure.

If you do a benchmark with a laptop, then be careful. If you do it with cell only, then many CPUs will run slower. So please plug in your power connector if you do the benchmark.
(I think we should always do the benchmarks with power connector. Or should we do them with cell only?)

An other problem of Laptops might be not so good cooling. So they might slow down the CPU if it is running for a longer time. But it's difficult to care about that in the benchmark. We can just add the number that we measure.

If other guys have also results, please report. I am also interested in the new Mac M4 and Intel and AMD CPUs with 10 or more cores. But also any other CPU.