<div>
                    Hi Marco,
                </div>
                <div><div><br></div><div>Thank you for your interest, see my answers below.</div><div><br></div></div>
                 
                <blockquote type="cite" style="border-left-style:solid;border-width:1px;margin-left:0px;padding-left:10px;"><span><div><div><div dir="ltr"><div><div><blockquote type="cite"><div>Firstly it estimates how long it takes to solve single problems with default parameters. </div></blockquote><div><br></div><div>How would you do that, in particular for those runs that hit the time limit? I believe a LOT of people would be interested in such an estimate.<br></div></div></div></div></div></div></span></blockquote><div>So far I only work with problems that do not hit the time limit. So I have no special technique to make such estimates. I see it should be a challenging problem.</div><div><br></div><blockquote type="cite" style="border-left-style:solid;border-width:1px;margin-left:0px;padding-left:10px;"><span><div dir="ltr"><blockquote type="cite"><div>

Then we do a single run (for every problem) for every special value (e.g. -1 or 0) of every parameter and two runs for ranged parameters (bigger and lower than default values). That is about 3000 runs for every problem in a test set so I use a cluster of virtual machines in a cloud for the computations. After this step the tool compares the impact which parameters and their values make on the solving time. </div></blockquote><div><br></div><div>How? Considering a single parameter at a time? Or their combination? Or pairs? Or ...<br></div></div></span></blockquote><div>Suppose we have three problems (P1, P2, P3) for which we would like to tweak parameters. For parameter P with value 123 three runs (one per problem) are made:</div><div>P=123 N1 P1 => T1</div><div>P=123 N2 P2 => T2</div><div>P=123 N1 P3 => T3</div><div><br></div><div>Earlier every problem was evaluated on every node (two nodes for example, N1 and N2) with default parameters:</div><div>"" P1 => N1_Td1, N2_Td1</div><div>"" P2 => N1_Td1, N2_Td1</div><div>"" P3 => N1_Td1, N2_Td1</div><div><br></div><div>Now we calculate a score based on times Ti and Nj_Tdi:</div><div>Mi = Ti / Nj_Tdi</div><div>Tmax_i = max(j, Nj_Tdi)</div><div>score = sum(i, Mi * Tmax_i) / sum(i, Tmax_i)</div><div>So that we have one number for P=123, other numbers for other parameters or other values. Then we sort the parameter-value pairs based on their scores.</div><div><br></div><blockquote type="cite" style="border-left-style:solid;border-width:1px;margin-left:0px;padding-left:10px;"><span><div><div><div dir="ltr"><div><div><blockquote type="cite"><div>Finally the tool takes four parameters (and their values) with the biggest impact and finds their best combination. This step is repeated for a fey times </div></blockquote><div><br></div><div>"This step"? Why repeating the four-parameter-combinations? For taking into account performance variability?<br></div></div></div></div></div></div></span></blockquote><div>I was not clear enough here. I meant we repeat this step with next four parameters who are less significant (see the scores mentioned above) than the former four. That is after two such steps we have the best combination of the first four parameters combined with next four parameters.</div><div><br></div><div>Best regards,</div><div>Sergey</div><div><br></div>