Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm developing a numeric application (nonlinear optimizer), with a zillion knobs to tweak and rising.

It's not my first foray into this domain, but this time there are even more variables in the code and I'm on a tight schedule. Don't want to waste time fiddling.

Days or even months can potentially be wasted adjusting variables, recompiling, and reprocessing benchmark datasets. The resulting data is viewed and trouble spots are checked. The overall quality of the solution is reported by the program but the meaning of the report could change over time. (Numeric units for the report are one thing I'm trying to nail down.)

One main problem is organizing result files to identify each with specific code changes. Note taking can be a pain, is there software to help with this?

Are there agreed best practices to making this kind of development cycle reliably move forward? The solver package converges to its optimal solution with mechanical determination, but I'm all too familiar with the way an excess of design decisions can mire development.

share|improve this question

1 Answer 1

oh boy there is a lot going on in this question, and I'm not sure I understand all of what you are asking but lets try:

Days or even months can potentially be wasted adjusting variables, recompiling, and reprocessing benchmark datasets

at the very least I'd suggest pulling the variables out into a config file so you do not need to recompile to change them. Ideally you would also write some benchmarks and maybe use a technique such as hill climbing or GA to programatically refine the variables towards an optimal solution

(Numeric units for the report are one thing I'm trying to nail down.)

Do you mean units of measure? there are libraries available to help with these in most languages. F# even has them build into the language (though not for reporting)

One main problem is organizing result files to identify each with specific code changes. Note taking can be a pain, is there software to help with this?

the obvious solution here is to have your benchmark results committed to source control with the changes that made them, you could then even use commit hooks to signal any worsening in benchmarks

share|improve this answer
    
I agree with @jk. especially with the idea of putting variables in config files –  Adam Dyga Oct 18 '12 at 13:19
    
I don't think you should commit benchmark results, I would tag the results file with the revision of the software they came from. –  Joe Oct 18 '12 at 13:28
    
@Joe yep that would be another valid solution –  jk. Oct 18 '12 at 13:59

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.