iu-parfunc / HSBencher

General benchmarking framework. Especially good at parameter studies.
13 stars 8 forks source link

[Re]Design ASCII benchmark file format #86

Open rrnewton opened 9 years ago

rrnewton commented 9 years ago

Whether or not this is a good idea is debatable.

Designing a format is an ugly process. The old ASCII format for benchmark lists was terribly limited. Here are some early ideas of what might work in the future:

As with all configuration file design there's a tradeoff between having passive data and an active script. An example challenge problem in the HSBencher case is varying the number of threads. We don't set the number of threads to a fixed value, e.g. [1,2..16]. Rather, it's based on reading the number of cores on the current machine, which requires running code!

This is why the hsbencher benchmark config will probably need to include some kind of script component. I think we basically need small script chunks that are evaluated to a string and bound to a top-level variable. These can be arbitrary "shebang" scripts, so they could be Haskell, bash, python whatever.

Thus, a typical script that varies the number of threads will have a mostly declarative config for where benchmarks live and what parameters to vary. But the bit that computes the domain for THREADS will be a small script.

rrnewton commented 9 years ago

@eholk -- if we proceed with this I'd like some feedback from someone who has tried to use hsbencher but does not write Haskell code all the time. The ideal would be to require little to no Haskell knowledge.