Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-pascal / 2023-05

Compile time -> processor benchmark values

5 messages · 5 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Rainer Stratmann

Now I have a i7-3770S

cpubenchmark says:
Average CPU Mark: 6175
Single Thread Rating: 2043
https://www.cpubenchmark.net/cpu.php?cpu=Intel+Core+i7-3770S+%40+3.10GHz

I expect to buy a new computer with a i5-13400F or similar cpubenchmark says:
Average CPU Mark: 25969
Single Thread Rating: 3702
https://www.cpubenchmark.net/cpu.php?cpu=Intel+Core+i5-13400

What is important for the compile time?
The average CPU Mark that means more than 4 times faster? Or the single thread rating that means 1,8 times faster?

Besides faster memory, ssd, etc.

Sven Barth
to Rainer Stratmann
Rainer Stratmann wrote 18 lines
Now I have a i7-3770S cpubenchmark says: Average CPU Mark: 6175 Single Thread Rating: 2043 https://www.cpubenchmark.net/cpu.php?cpu=Intel+Core+i7-3770S+%40+3.10GHz I expect to buy a new computer with a i5-13400F or similar cpubenchmark says: Average CPU Mark: 25969 Single Thread Rating: 3702 https://www.cpubenchmark.net/cpu.php?cpu=Intel+Core+i5-13400 What is important for the compile time? The average CPU Mark that means more than 4 times faster? Or the single thread rating that means 1,8 times faster? Besides faster memory, ssd, etc.

FPC itself is single threaded. So for that the single thread rating is more important. However Lazarus (and fpmake) can parallelize the building of packages if they don't depend on each other. On the other hand this is only really important when rebuilding and not when doing normal builds.

So in my opinion I'd keep an eye on the single thread rating.

Regards,
Sven

Hairy Pixels
to Sven Barth
On May 29, 2023, at 9:24 PM, Sven Barth via fpc-pascal wrote: FPC itself is single threaded. So for that the single thread rating is more important. However Lazarus (and fpmake) can parallelize the building of packages if they don't depend on each other. On the other hand this is only really important when rebuilding and not when doing normal builds.

I was curious about this, if the compiler was overhauled and it could be made multi-threaded could it compile each unit on a different thread? Maybe it would be complicated but if a unit graph was constructed you could isolate units that don't depend on each other and compile them on their own threads right?

If I recall this is impossible currently because of the use of global variables.

Regards,
Ryan Joseph

Michael Van Canneyt
to Hairy Pixels
Hairy Pixels wrote 11 lines
> On May 29, 2023, at 9:24 PM, Sven Barth via fpc-pascal wrote: > > FPC itself is single threaded. So for that the single thread rating is more important. However Lazarus (and fpmake) can parallelize the building of packages if they don't depend on each other. On the other hand this is only really important when rebuilding and not when doing normal builds. I was curious about this, if the compiler was overhauled and it could be made multi-threaded could it compile each unit on a different thread? Maybe it would be complicated but if a unit graph was constructed you could isolate units that don't depend on each other and compile them on their own threads right?

Theoretically, yes.

But there are some global structures that would need to be protected from simultaneous access by the various threads (e.g. symbol tables).

It is far from sure this can be done in a manner that does not destroy the advantage of multi-thread. It could well be that the threads spend more time waiting than actually compiling.

If I recall this is impossible currently because of the use of global variables.

Yes. There are lots of them.

Michael.

Marco van de Voort
to Sven Barth: FPC itself is single threaded. So for that the single thread rating is more important.…
Sven Barth wrote 6 lines
FPC itself is single threaded. So for that the single thread rating is more important. However Lazarus (and fpmake) can parallelize the building of packages if they don't depend on each other. On the other hand this is only really important when rebuilding and not when doing normal builds.

Each core above 4 is increasingly irrelevant.

I bought some machines recently, and did test some build times on Windows for FPC snapshot (clean,build,install, with as many options as I know):

i7-3770 desktop 142s

Ryzen 5800H laptop  103s

Ryzen 4800H laptop 118s

Ryzen 5700X desktop 89s

Note that some of the 5700X's speed comes from a nearly twice as fast clean (15s vs 28-33s)as the other machines. The only reason I can think of for that is that the machine has a retail SSD (Corsair MP510, decent, but nothing extreme), the other two Ryzens also have PCIe SSDs, but factory installed.

I tested some of the 8 core ryzens with settings to 6 cores, and the difference is a few seconds only.