Closed sbird closed 2 years ago
The Julia benchmarks are now configured to run with julia-0.7.0 and julia-1.0.0. There were only a few changes needed from 0.6, mostly due to things moving out of Base into packages like Statistics and LinearAlgebra. But it would be good to have 0.6, 0.7, and 1.0 compatibility for comparison purposes. I'd be happy to take PR for that, or I'll see if I can do it myself next week.
About the Rust and Go errors, writing a robust multiplatform build system for thirteen different languages is a pretty tall order! I have found it necessary to tweak the Makefile a bit for changes in language and libraries versions. BLAS is a frequent culprit.
I'm doing the benchmark builds on openSUSE Leap 15.0, btw. What operating system are you working on, @sbird?
It would definitely be good to specify the microbenchmark build and run process in the README.md file. There's an issue filed on that; I hope to get time for it soon.
I absolutely agree that the build system for 13 languages is a bit challenging - have you considered just not doing it? The blas tests are probably the least useful anyway, since they really exercise the blas library and if they are a pain to maintain...
I'm using archlinux, and I also tried it on fedora 28.
The BLAS tests feel useful to me in that they show which languages take matrix operations seriously enough to call BLAS, and which don't.
I don't mind making small tweaks to the Makefile for my platform. It's doing it for all platforms that seems practically impossible. But better documentation of the frequent issues would go a long way towards helping people figure out the right tweaks for their platforms.
For the Rust benchmark, I would double-check that the latest Rustup is installed and that the compiler toolchain in use is exactly the one specified in the file "rust-toolchain". That error message suggests that the wrong toolchain was used.
@ViralBShah for future reference, it would be helpful to add a comment explaining why this issue was closed.
Right - aren't all these already working in the CI? If not, can reopen.
Ah, I had misread the conversation above. I was under the impression it was about the local setup of the environment to run the benchmarks locally, but yeah, the opening comment does make reference to actual errors in some of the benchmark code, and indeed a running CI would suggest those issues are fixed. Sorry for the noise :)
I tried to compile and run these microbenchmarks from the git repo, but could not. Note that I changed the Makefile to use system libm and system cblas. I did not test luajit or java because installing them was too much hassle, and I did not test octave because it is unreasonably slow.
Remaining problems were:
rust test does not compile with rust 28: "error[E0554]: #![feature] may not be used on the stable release channel
--> src/main.rs:1:1 | 1 | #![feature(test)] | ^^^^^^^^^^^^^^^^^ "