Skip to content
This repository has been archived by the owner on Jan 12, 2020. It is now read-only.

Benchmarks updated to 0.6.0 #643

Merged
merged 5 commits into from
Oct 10, 2017
Merged

Benchmarks updated to 0.6.0 #643

merged 5 commits into from
Oct 10, 2017

Conversation

johnfgibson
Copy link
Contributor

Updated benchmark data for julia-0.6.0 and current versions of Matlab, Python, etc.

Expanded names of benchmarks to emphasize the algorithms, e.g. fib -> recursion_fibonacci.
Added missing benchmarks for several languages, e.g. print_to_file (formerly printfd) for Fortran.
Fixed benchmarks.ipynb bug that excluded fibonacci data from plot.
Ordered plots and table by geometric mean of benchmark timings, with C put first. Julia comes in second to Lua.

The benchmark plot Never mind the font problems in the converted PNG. The SVG plot looks fine.

@ViralBShah
Copy link
Member

Looks nice!

@johnfgibson
Copy link
Contributor Author

Thanks! Stefan mentioned on Discourse that it would be sensible for JuliaLang.org to show Julia first, then others by geometric mean. Let me know if you all prefer that, and if you prefer dropping C from the plot and table.

@ararslan
Copy link
Member

Listing Julia first makes sense, and I think it's good to keep C in there for clarity. IMO anyway.

@ViralBShah
Copy link
Member

I certainly prefer having C too. It would be nice to have Julia first.

Update benchmark to 0.6.0

Reordered benchmarks to C, Julia, LuaJIT
@johnfgibson
Copy link
Contributor Author

I reordered the benchmarks to C, Julia, LuaJIT and pushed to these changes to johnfgibson:benchmarks-0.6.0.

I'm afraid the commit logs are a bit of a mess. I tried to squash a number of commits by rebasing, but I think I made things worse. I'm just getting started with git.

@ChrisRackauckas
Copy link
Member

The maintainer can squash when merging to master.

@StefanKarpinski
Copy link
Member

Change the name for "Lua" to "LuaJIT" maybe? It's mostly the same, but there are (IIUC) some subtle semantic differences and limitations that are specific to LuaJIT. OTOH, we list "JavaScript" and use a specific JavaScript implementation. ("JavaScript" should also be camelcased.)

@StefanKarpinski
Copy link
Member

StefanKarpinski commented Oct 10, 2017

Nevermind: I see you already changed it to LuaJIT. Thanks so much for putting in the work to do this. Getting all of those benchmarks running is no small amount of effort, so it's greatly appreciated and we were sorely in need of an update!

@jebej
Copy link

jebej commented Oct 10, 2017

I was trying to get the go benchmarks to run, but I didn't couldn't get it to compile because of cgo. It also seems that gonum/blas has been deprecated and the repository is now gonum/gonum. Given how performant Go has become, it would be a shame to remove it from the microbenchmarks.

@StefanKarpinski
Copy link
Member

Given how performant Go has become, it would be a shame to remove it from the microbenchmarks.

It can be added back any time if someone can fix the code. It shouldn't hold up this PR.

@StefanKarpinski StefanKarpinski merged commit 785bd86 into JuliaLang:master Oct 10, 2017
@ViralBShah
Copy link
Member

We need to re-run them if possible with this small fix to the python ones:
JuliaLang/julia#24089

@johnfgibson Grateful if you can use the perf.py from the PR above and rerun.

@StefanKarpinski
Copy link
Member

@johnfgibson, if you can run them on the same system then only the Python benchmarks need rerunning since they're the only ones that changed. Honestly, I don't expect much change.

@ViralBShah
Copy link
Member

Yes, I don't expect much change either, and it is quite likely that the plot doesn't even need regenerating.

@johnfgibson johnfgibson deleted the benchmarks-0.6.0 branch October 11, 2017 00:36
@pkofod
Copy link
Contributor

pkofod commented Oct 11, 2017

should there be a plot on the page? I only get a table in firefox and chrome, but there are two </col> tags just before the table.
https://julialang.org/
jit

@ViralBShah
Copy link
Member

I think we should bring the plot on this page instead of the table. It's a bit odd that the nice visual is buried behind a link. If anything the table should be behind the link and the plot up front.

@StefanKarpinski
Copy link
Member

StefanKarpinski commented Oct 11, 2017

I fixed the </col> stuff (again): 078002c (and made it stick: JuliaLang/julia#24099).

@johnfgibson
Copy link
Contributor Author

johnfgibson commented Oct 11, 2017

I reran the Python benchmarks with the (#24089)[https://github.com/JuliaLang/julia/pull/24089] fixes top matrix_statistics. It actually runs a little slower, going from 16.35 normalized to 18.35, but not noticeable on the log plot.

I let one larger error slip in: the 967.94 JavaScript print_to_file is bogus. It's really missing data which I filled in as 9999 unnormalized while debugging.

So there are a few mopping-up operations to do still

  • fold in new Python results (even is they're slower, because that's what experts would do?_
  • remove the bogus JavaScript print_to_file
  • change to capitalized language names throughout (I've been doing this w emacs on benchmarsk.csv)
  • run benchmarks on a prepped, quiescent Linux system (shielded processors, etc)
  • [EDIT] get go running (fix seg faults in BLAS calls)

I should be able to do that this week.

+1 on putting the plot up front and the table behind a link. It'd help reduce the text-heavy feel of the page.

@StefanKarpinski
Copy link
Member

It actually runs a little slower, going from 16.35 normalized to 18.35

This is expected since Python was previously doing one less iteration than it should have been.

@johnfgibson
Copy link
Contributor Author

Filed a PR with the revisions a few posts up: JuliaLang/julialang.github.com#647.

I was hoping to join the CAJUN meeting tonight but I couldn't get a babysitter :-(

@ChrisRackauckas ChrisRackauckas mentioned this pull request Oct 18, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants