| Perhaps clarifications rather than questions. > "Critique: 2.2.1 Programming Language versus Implementation" In context, it seems possible to read "Programming Language" as shorthand for "Programming Language Implementation" as-appropriate. (Especially since “Pereira et al.” list "Compiler / Interpreter Versions" such-as "JRuby : jruby 9.1.7.0" and "Ruby : ruby 2.4.1".) > "Critique: 2.2.2 Quality of Benchmark Implementations" Surely not the quality of the particular programs, selected from the benchmarks game and used for comparison by “Pereira et al.”; surely the suitability of the selection process used by “Pereira et al.” to choose programs for their purpose. That "corpus of small benchmark implementations" most likely provided both parallel and sequential programs, most likely provided both SIMD and non-SIMD programs, etc. Presumably “Pereira et al.” could have chosen only sequential / non-SIMD / standard library programs for their comparison, but did not. > "Critique: 2.2.3 Apparent Anomalies." > "C++ is reported as being 34% less energy efficient
and 56% slower than C" For a single outlier (regex-redux) there's a 12x difference between the measured times of the selected (pcre) C and (boost/regex) C++ programs. As you say, apparent anomalies presented without investigation or explanation. > "TypeScript is reported as being 4.8× less energy efficient and 7.1× slower than JavaScript." It seems that there may have been some kind-of problem with tsc back in the day. The exact same fannkuch-redux program that took 1,234.81 seconds (node.js v8.1.3 and tsc 2.4.1) in July 2017, only took 147.23 seconds (node.js v9.4.0 and tsc 2.6.2) in January 2018. (Unfortunately the Internet Archive is currently unable to provide details.) |
Correct. "Selection of Benchmark Implementations" is a better name here. We'll update this in the next iteration. The point in this subsection is indeed that the selection is not adequate for comparison. This is not the only issue, even an adequate selection of perfectly idiomatic and identical implementations would not have resulted in accurate comparison.
> C/C++ Outlier
Correct, Section 4.5.2 details this. It is 8.9x for us.
> JS/TS Outlier
The main outlier on our machine is mandelbrot, 21x (Section 4.5.1). Our second outlier is n-body (not discussed).