Experimental - Linux Compile Benchmark

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

Patrick

Administrator
Staff member
Dec 21, 2010
12,511
5,792
113
Starting some data collection work on a linux kernel compile benchmark. Please treat this as SUPER experimental.

Do NOT run it on a production system. Please only run it on a Ubuntu LiveCD.


Bash version:
Code:
curl http://files.linux-bench.com/lb/compilebench.sh | bash
Python version:
Code:
python <(curl http://files.linux-bench.com/lb/PyKCB.py)
If you do run it, please post at minimum CPU configuration and times in this thread.
 
Last edited:

TuxDude

Well-Known Member
Sep 17, 2011
616
338
63
Ok, so I broke the rule in large red text...

On my home file server - dual L5520's, 96GB RAM, running Gentoo on a 4.1.15 kernel:
real 16m43.772s
user 220m16.920s
sys 11m31.870s

On my desktop at work - Core i5-2500, 12GB RAM, running Fedora 20 (yes, I need to upgrade):
real 26m47.275s
user 82m50.501s
sys 9m30.538s
 
  • Like
Reactions: Patrick

Blinky 42

Active Member
Aug 6, 2015
615
232
43
48
PA, USA
Centos 6.7 w/ 128G ram, Single Intel(R) Xeon(R) CPU E5-2660 v2 @ 2.20GHz running on cheap OCZ Trion 100

real 10m5.740s
user 169m17.688s
sys 17m51.110s
 
  • Like
Reactions: Patrick

Patrick

Administrator
Staff member
Dec 21, 2010
12,511
5,792
113
Ok, so I broke the rule in large red text...
I am still giving you a like but breaking the rule is bad!

BTW I am not 100% sure why but I decided to write a python wrapper that changes a few things:
  • Move the apt-get to a function so that only runs once (also so we can add normal L-B logic with the script easier)
  • Move the download to a function so it is only downloaded once, then removed after the script completes
  • Option to re-run benchmark at the end (without having to re-download/ dependency check. This also makes it easier to loop later (e.g. if you want to have it run 10 times)
Still working on this a bit but it is getting better, in that the last part is what I am working on now.

@Blinky 42 crazy this is working in CentOS also.
 

Patriot

Moderator
Apr 18, 2011
1,450
789
113
To be fair.... I just posted the curl command in irc without any instructions...
Then again, I have posted rm -rf / in a different channel and had someone tell me they got a permission error...

edit:
Compile Linux 4.4.2 kernel using 72 threads
real 3m13.864s
user 159m50.100s
sys 12m41.060s

OS power control
real 3m4.820s
user 152m4.096s
sys 11m45.200s

-jedi hand wave- rubylaser will like this post
 
Last edited:
  • Like
Reactions: rubylaser

Patrick

Administrator
Staff member
Dec 21, 2010
12,511
5,792
113
@Patriot those are python or bash versions?

I told @William he should do it on the 4P! But I also now have some new toys.

I think I like the Python version "much" better. Since I am very much early at learning Python, I still need to figure out how to parse the real, user, sys times from the end of the output but I ran on a bunch of AWS instances as well and it seems relatively consistent at least. I may have to enlist help for the parsing bit. The python version also can loop for a number of times specified. It would be great if we could parse the output and get it all into an array so we can print it at the end of the runs or get it all into a web application.

The Python version is also doing a bit more on the compile side. I think make menuconfig has some compile go on before it pops the menu up which is why the bash only version is faster.

With the numbers you have, and the numbers I am guessing William and I are going to get on the even larger systems, I do wonder if we need to swap to the allmodconfig that @mstone suggested.
 
  • Like
Reactions: William

Evan

Well-Known Member
Jan 6, 2016
3,346
598
113
The thing about this I love...
Makes me think back to the pre 1.0 kernel build on Slackware systems I used to maintain.
"Make dep ; make clean ; make zlilo" is forever burnt into my brain.. Oh and instead of 3 minutes it used to take well more than 3 hours... Depending if it was a 486 or a pentium... :)
 

Biren78

Active Member
Jan 16, 2013
550
94
28
I may have to enlist help for the parsing bit. The python version also can loop for a number of times specified. It would be great if we could parse the output and get it all into an array so we can print it at the end of the runs or get it all into a web application.
Another idea for you is that you could change this more. You're calling the main bash script to run all of the commands and such. Why not time it in Python?
 

Patriot

Moderator
Apr 18, 2011
1,450
789
113
@Patrick Pretty sure both are bash... iirc python was 3m2s
It is a ridiculous rig... can try on one of the 4p's next week... :)
I need to get those fully functional...