I just added a note to that bug report.<br><br>There is already *a* way to do it, although perhaps not optimal, that can be demonstrated right now with CDash 1.6... You'll be able to try this on the ITK CDash database next week. The following link is a test from the VTKEdge project on <a href="http://www.kitware.com/CDash">www.kitware.com/CDash</a>.<br>
<br><br>There is an easy way to gather this data by hand in the forthcoming
CDash 1.6 using the "queryTests.php" page and filters. The following
hyperlink shows the passing test results for a given test in VTKEdge on
a given site/buildname combination for the last 30 days... :-)<br>
<br>
<a href="https://www.kitware.com/CDash/queryTests.php?project=VTKEdge&filtercount=5&showfilters=1&filtercombine=and&field1=testname/string&compare1=61&value1=PaintbrushTest2&field2=status/string&compare2=61&value2=Passed&field3=site/string&compare3=61&value3=Cairparavel.kitware&field4=buildname/string&compare4=61&value4=all-release-VS8&field5=buildstarttime/date&compare5=83&value5=30%20days%20ago">https://www.kitware.com/CDash/queryTests.php?project=VTKEdge&filtercount=5&showfilters=1&filtercombine=and&field1=testname/string&compare1=61&value1=PaintbrushTest2&field2=status/string&compare2=61&value2=Passed&field3=site/string&compare3=61&value3=Cairparavel.kitware&field4=buildname/string&compare4=61&value4=all-release-VS8&field5=buildstarttime/date&compare5=83&value5=30%20days%20ago</a> [<a href="https://www.kitware.com/CDash/queryTests.php?project=VTKEdge&filtercount=5&showfilters=1&filtercombine=and&field1=testname/string&compare1=61&value1=PaintbrushTest2&field2=status/string&compare2=61&value2=Passed&field3=site/string&compare3=61&value3=Cairparavel.kitware&field4=buildname/string&compare4=61&value4=all-release-VS8&field5=buildstarttime/date&compare5=83&value5=30%20days%20ago" target="_blank">^</a>]<br>
<br>
It may or may not be easily machine readable in this format, but you
can easily scan it as a human being and get a fairly good idea about
the timing of the test on that build for the number of days specified...<br><br><br>Cheers,<br>David C.<br><br><br><div class="gmail_quote">On Wed, Jan 20, 2010 at 2:12 PM, Luis Ibanez <span dir="ltr"><<a href="mailto:luis.ibanez@kitware.com">luis.ibanez@kitware.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hi Julien,<br>
<br>
<br>
I added a feature request entry<br>
to the MANTIS bug tracker:<br>
<br>
<a href="http://public.kitware.com/Bug/view.php?id=10170" target="_blank">http://public.kitware.com/Bug/view.php?id=10170</a><br>
<br>
<br>
Thanks<br>
<br>
<br>
Luis<br>
<br>
<br>
---------------------------------------------------------<br>
<div><div></div><div class="h5">On Wed, Jan 20, 2010 at 10:14 AM, Julien Jomier<br>
<<a href="mailto:julien.jomier@kitware.com">julien.jomier@kitware.com</a>> wrote:<br>
> Luis,<br>
><br>
> I like the idea very much and it seems that the work Zack (in CC) did for<br>
> running CTest in parallel might help. Basically newer version of CTest<br>
> generates a file with the time each test took to run, then on the next<br>
> submission CTest uses the times to schedule the parallel runs efficiently.<br>
><br>
> The plan in the future is to have CTest download the test time history from<br>
> CDash which is consistent with your idea. I think it would be good to log a<br>
> feature request (if not already documented) either in CMake or CDash bug<br>
> tracker and maybe point to a wiki page.<br>
><br>
> Julien<br>
><br>
> On 1/19/2010 8:31 PM, Luis Ibanez wrote:<br>
>><br>
>> Hi Brad,<br>
>><br>
>><br>
>> A) The problem:<br>
>><br>
>><br>
>> Maintainer of dashboard machines do not have a<br>
>> clear reference for how to set up their TIMEOUT<br>
>> values.<br>
>><br>
>> Is 10 minutes the right timeout value ?<br>
>> or is it 20 minutes ? or 2 minutes ?<br>
>><br>
>> Of course it all depends of the machine capabilities,<br>
>> (number of cores, RAM, disk speed), the OS, the<br>
>> compiler, and the compilation flags used (e.g. Debug<br>
>> Release...)<br>
>><br>
>><br>
>> If they under-estimate, many test may fail just because<br>
>> they are not allowed to run long enough for them to complete.<br>
>> As it was happening in some RogueResearch machines.<br>
>><br>
>> If they over-estimate, then their machines may get to<br>
>> waste time running tests that are trapped in infinite<br>
>> loops (like the itkStatisticsAlgorithmTests in llvm), or<br>
>> that take unrealistic times to complete, like running the<br>
>> large-memory write test in a machine that has low RAM<br>
>> and end up swapping to disk.<br>
>><br>
>><br>
>> B) A single TIMEOUT value for all test doesn't represents<br>
>> the very large range of time that different individual test<br>
>> in ITK require.<br>
>><br>
>> E.g. some test are expected to finish in 0.1 seconds<br>
>> while others require 20 minutes.<br>
>><br>
>> However, we control them all with a single TIMEOUT.<br>
>><br>
>> One size for all 1,742 different tests...<br>
>><br>
>><br>
>> C) I apologize for not having explained the idea clearly<br>
>> enough. I'm not suggesting that for anyone to "manually"<br>
>> define timeout factors for the tests. There is no need to<br>
>> do this manually. The process can certainly be automated.<br>
>><br>
>> As you pointed out, one possible mechanism is to simply<br>
>> harvest the statistical data that CDash has already stored<br>
>> for every machine that contributes to the Dashboard.<br>
>><br>
>> CDash already computes a mean and standard deviation<br>
>> for the amount of time that it take to run every test, and this<br>
>> is done independently for every machine that contributes<br>
>> to the Dashboard. This is how CDash can evaluate and<br>
>> report TIMING failures per tests.<br>
>><br>
>> We could simply use that information in order to compute<br>
>> better-adjusted timeouts on a test-by-test basis.<br>
>><br>
>><br>
>><br>
>> Luis<br>
>><br>
>><br>
>> -----------------------------------------------------------<br>
>> On Tue, Jan 19, 2010 at 1:26 PM, Bradley Lowekamp<br>
>> <<a href="mailto:blowekamp@mail.nih.gov">blowekamp@mail.nih.gov</a>> wrote:<br>
>>><br>
>>> Hello Luis,<br>
>>><br>
>>> Why? What is wrong with the current system and what are we trying to fix<br>
>>> or accomplish?<br>
>>><br>
>>> Having to manually define timeouts for all or even many tests sounds like<br>
>>> a lot of maintenance, and it should be avoided. It would only work if it<br>
>>> could be done automatically. It could be done as a batch analysis of the<br>
>>> cdash records to solve the linear system of equations proposed by Luis.<br>
>>><br>
>>> There are already some existing resources used in testing the could be<br>
>>> better automatically handled. The memory used of the program, and the number<br>
>>> of threads. These can play into the number of parallel tests that can be<br>
>>> run. Just last week, my system with 32GB, was running out of memory running<br>
>>> ctest in parallel.<br>
>>><br>
>>> Brad<br>
>>><br>
>>> On Jan 18, 2010, at 11:32 AM, Luis Ibanez wrote:<br>
>>><br>
>>>> As you may have noticed, the standard practice<br>
>>>> of using a single TIMEOUT number for all the<br>
>>>> ~1,700 test in ITK brings up the challenge of<br>
>>>> defining what a good timeout value is for each<br>
>>>> machine (and configuration: eg. Release/Debug).<br>
>>>><br>
>>>> The following proposal was raised in the past,<br>
>>>> but we have not acted upon:<br>
>>>><br>
>>>> 1) Add to ITK one or two test that can be considered<br>
>>>> a good benchmark for:<br>
>>>><br>
>>>> a) computation power<br>
>>>> b) input / output speed<br>
>>>><br>
>>>> 2) Run those tests and use their timings as a<br>
>>>> base value that characterize this machine.<br>
>>>><br>
>>>> 3) Define timeout for all tests that are based<br>
>>>> on the values found in (2), multiplied by<br>
>>>> a factor.<br>
>>>><br>
>>>><br>
>>>> Let's say that the computation benchmark takes<br>
>>>> 2 seconds to run in the machine foobar.kitware,<br>
>>>> then we can tell that the DiffeomorphicDemons<br>
>>>> registration test in the same machine should take<br>
>>>><br>
>>>> 153 x (time of benchmark1 )<br>
>>>><br>
>>>> (where the number "153" is a factor that we<br>
>>>> will have to estimate for each test).<br>
>>>><br>
>>>> CDash already does a similar thing with the<br>
>>>> historical record of the computation time that<br>
>>>> it takes to run every test on a given machine,<br>
>>>> although this is done on the CDash server,<br>
>>>> and therefore it happens too late to be used<br>
>>>> as a TIMEOUT mark.<br>
>>>><br>
>>>> An interesting option as well, could be for<br>
>>>> a machine to get access to the historical<br>
>>>> record that CDash has computed, and then<br>
>>>> use those values as a base for computing<br>
>>>> TIMEOUT at the moment of running ctest.<br>
>>>><br>
>>>><br>
>>>> What do people think of these options ?<br>
>>>><br>
>>>><br>
>>>> Luis<br>
>>>> _______________________________________________<br>
>>>> Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
>>>><br>
>>>> Visit other Kitware open-source projects at<br>
>>>> <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
>>>><br>
>>>> Kitware offers ITK Training Courses, for more information visit:<br>
>>>> <a href="http://kitware.com/products/protraining.html" target="_blank">http://kitware.com/products/protraining.html</a><br>
>>>><br>
>>>> Please keep messages on-topic and check the ITK FAQ at:<br>
>>>> <a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
>>>><br>
>>>> Follow this link to subscribe/unsubscribe:<br>
>>>> <a href="http://www.itk.org/mailman/listinfo/insight-developers" target="_blank">http://www.itk.org/mailman/listinfo/insight-developers</a><br>
>>><br>
>>><br>
>> _______________________________________________<br>
>> Cdash mailing list<br>
>> <a href="mailto:Cdash@public.kitware.com">Cdash@public.kitware.com</a><br>
>> <a href="http://public.kitware.com/cgi-bin/mailman/listinfo/cdash" target="_blank">http://public.kitware.com/cgi-bin/mailman/listinfo/cdash</a><br>
>><br>
><br>
_______________________________________________<br>
Cdash mailing list<br>
<a href="mailto:Cdash@public.kitware.com">Cdash@public.kitware.com</a><br>
<a href="http://public.kitware.com/cgi-bin/mailman/listinfo/cdash" target="_blank">http://public.kitware.com/cgi-bin/mailman/listinfo/cdash</a><br>
</div></div></blockquote></div><br>