4 ms·
> Some people download the scripts and make measurements straight-away, as always YMMV. Without setting up the language environments? I doubt it. Some highligh
by spion 14y ago
> Some people download the scripts and make measurements straight-away, as always YMMV.
Without setting up the language environments? I doubt it. Some highlights:
3) LINUX QUICK START [ WIN32 QUICK START ]
3.1) unzip in ~ directory [ unzip in c:\ ]
Requiring a path? Very poor.
*** TO BE CONTINUED ***
Oh so its not fully documented, but its easy to use straight away...
I'll take the bite. Lets try and add luajit and compare it to lua.
> 12.1) In the [tools] section of the ini file, define a name that will substitute for the location of the new language implementation.
Where is that INI file? The README doesn't say. Oh its my.linux.ini (its not mentioned anywhere in the document).
> For example
[tools]
PYTHON3 = /usr/local/src/Python-3.2/bin/python3.2
Fair enough, lets add my current luajit
LUAJIT = /usr/local/bin/luajit
> 12.2) Choose a file extension to identify programs
> and measurements made with the new language
> implementation, for example - python3.
Okay, picking .luajit
> 12.3) In the [commandlines] section of the ini file, define a command line that will be used to run program source code files that have the new file extension you chose.
> For example, for file extension python3
[commandlines]
python3 = $PYTHON3 %X %A
No comment on what %X or %A may mean - they could mean anything, really. Of course %X is the source (or built) file and %A are the arguments. Easy enough.
luajit = $LUAJIT %X %A
> 12.4.1) EITHER alias existing source code files that have a different file extension with the new file extension, in the [alias] section of the ini file.
> For example, re-use all source code files with file extension python but make measurements identified with file extension python3
[alias]
python = python3
So let me get this straight, to define the "python3" alias, I need to add the "python" key to the alias section and set it to "pyton3". Definitely not intuitive, I would rewrite this to be reversed.
But okay, I'll define the luajit alias
[alias]
lua = luajit
> 12.5) Run the bencher.py script.
Running.
bencher release 0.9
gtop import failed - measure cpu & elapsed time
Wed 21:22:51 .....OK .....nbody.python [2]
Wed 21:22:58 .OK .....regexdna.python [1]
What, only python? Oh, I need to copy the programs from the "bench" dir. Where in the readme does it say that? Nowhere.
Okay, did that, re run the script, and it runs all nbody and regexdna benchmarks, and none of the others. Why?
Going back to my.linux.ini. Could it be "onlydirs" perhaps? So I should add all the items in onlydirs, lets try that.
Okay, now its working - at least for the extensions that have a command defined. Its time to wait...
But wait, it complained about gtop? Why? Oh, it uses an old way of importing GTop, the new way is to use the introspected bindings
from gi.repository import GTop
lets patch uselinux.py
Wed 21:55:42 .EMPTY pidigits.luajit
of course, I had to remove everything in tmp/* before re-running the test, otherwise it thinks there is "nothing to be done".
Okay, that didn't quite work. Lets forget about gtop for now and look at the results we got without it
> 6) LOOKING AT THE MEASUREMENTS
> ~/bencher/summary/all_measurements.csv
> Open all_measurements.csv with a text editor.
No summary dir here. Well shoot, what does the README say about a missing summary dir? Nothing.
Oh, its in ~/bencher/tmp/all_measurements.csv So what do the times say?
binarytrees,luajit,3,0,633,0.004,0,0,%,0.010
binarytrees,lua,2,0,525,0.000,0,-2,%,0.005
binarytrees,lua,3,0,633,0.000,0,-2,%,0.007
binarytrees,luajit,2,0,525,0.000,0,0,%,0.003
Lets compare that with the summary data:
binary-trees,Lua,2,12,446,0.796,4516,0,0% 0% 1% 100%,0.801
So uhh, I have to configure the parameters for every benchmark. Why don't you share your configuration? Oh, I see, there are various paths defined there appropriate for your environment.
Wait what? Why don't you separate the test configuration from the environment configuration?
First conclusion:
The bencher needs more work to make it easier to fork:
* improve readme by actually mentioning which ini file users should look at, telling them about the tmp dir, explaining the value syntax for the commandlines section etc. (important)
* invert entries in the [alias] section, because the way its set up now it makes no sense. (not that important)
* separate test and environment configuration in different files and share the test configuration files used on the website to help people reproduce the same results. (very important)
* fix the script to use the introspection bindings for gtop
Second conclusion:
The claim that its "easy" to set up has been nullified.
- igouy 14y ago>>Without setting up the language environments? I doubt it.<< You seem to have run nbody.python without setting up the language environment for it. I'm going to ignore all the rest of your editorializing and try to find something of substance. Let's just note that you've jumped from #3.1 to #12.1 -- ignoring #3.2 which checks for problems and the subsequent sections that work through those problems and explain some of what you later find so puzzling. >>Where is that INI file? The README doesn't say. Oh its my.linux.ini (its not mentioned anywhere in the document).<< You seem to have found the ini file. >>No comment on what %X or %A may mean<< Actual comments on what %X or %A may mean: ; %X %T %B %I %A in commandlines are replaced like this: ; ; nbody.python-4.python %X = nbody.python-4.python ; nbody.python-4.python %T = nbody ; nbody.python-4.python %B = nbody.python-4 ; nbody.python-4.python %I = 4 ; ; %A = [testrange] value or 0 when the program takes input from stdin >>What, only python? Oh, I need to copy the programs from the "bench" dir. Where in the readme does it say that? Nowhere.<< You don't seem to have read sections #3 through #11. >>Okay, did that, re run the script, and it runs all nbody and regexdna benchmarks, and none of the others. Why?<< You don't seem to have read sections #3 through #11. >>Oh, it uses an old way of importing GTop<< That actually is worth updating the readme about! >>of course, I had to remove everything in tmp/* before re-running the test, otherwise it thinks there is "nothing to be done".<< No you didn't. You don't seem to have read sections #3 through #11. >>No summary dir here.<< That actually was a bug! Empty directories weren't included in the snapshot zip. >>improve readme by...<< You didn't seem to read sections #3 through #11 (very important)
- spion 14y agoNo, you didn't seem to read my suggestions at all. >>What, only python? Oh, I need to copy the programs from the "bench" dir. Where in the readme does it say that? Nowhere.<< > You don't seem to have read sections #3 through #11. If you grep the file, there is no mention of the bench dir anywhere in sections 3-11. Please do tell where you found it. The readme does say how to add new programs, but it doesn't say where the original programs of the shootout are in the distribution. >> of course, I had to remove everything in tmp/* before re-running the test, otherwise it thinks there is "nothing to be done".<< > No you didn't. You don't seem to have read sections #3 through #11. No, you didn't read what I was doing. I had to remove everything in tmp/* because I was trying to enable gtop by editing the source code of the program. The old results were made without gtop and only contained cpu and elapsed time. Finally the "actual comments" on what variables are available for the commandline strings aren't written anywhere. Only "%A" is explained in 9.3 and "%I" isn't even mentioned. So it looks like all my suggestions remain valid: From the first suggetion, removing the "tmp" dir assuming that the summary dir bug is fixed in the future: 1) improve readme by mentioning the location of my.linux.ini and my.win32.ini and adding the complete syntax for the commandlines section etc. (important) 2) invert entries in the [alias] section, because the way its set up now it makes no sense. (not important) 3) separate test and environment configuration in different files and share the test configuration files used on the website to help people reproduce the same results. (very important) 4) fix the script to use the introspection bindings for gtop Note that you failed to comment on (3) which will by far improve the bencher the most. Infact, that is exactly where I stopped trying to reproduce your results - I stopped at the point where I had to extract all the values for the testrange from your CSV files, as the ones used on the website aren't distributed anywhere. But of course, you're free to continue ignoring useful comments from other people. Which brings me to the original point, we're in dire need of a new benchmarks game.