[ET Trac] [Einstein Toolkit] #899: Push testsuite results to a git repository

Einstein Toolkit trac-noreply at einsteintoolkit.org
Wed May 16 16:45:51 CDT 2012


#899: Push testsuite results to a git repository
--------------------------+-------------------------------------------------
  Reporter:  eschnett     |       Owner:     
      Type:  enhancement  |      Status:  new
  Priority:  major        |   Milestone:     
 Component:  Cactus       |     Version:     
Resolution:               |    Keywords:     
--------------------------+-------------------------------------------------

Comment (by hinder):

 >Would it make sense to have each test run as a single simulation with
 multiple restarts? This would fit better into the Simfactory scheme, but
 would prevent running them in parallel.

 At the moment, compilation on Datura takes about 10 minutes (on a good
 day), and each test run also takes about 10 minutes.  So yes, it would be
 useful to run them in parallel (30 mins down to 20 mins), but not
 essential.  Performance on other machines will vary, but I expect the
 compilation time to dominate (we have a relatively fast home filesystem).
 This is, of course, an abuse of the simfactory restart mechanism.  We
 could alternatively teach simfactory to run multiple test sets in a single
 simulation.  It already has special code for dealing with test suites.
 This would need some tweaking of mpirun/nprocs settings.

 >I usually have branches for configurations (not machines). That means
 that e.g. damiana-gcc and damiana-intel would be in different branches.

 >It is possible to expire old runs. This would probably make it necessary
 to not link the different commits into a sequence (but rather have a
 multi-headed repository). Each commit would also be tagged. Removing the
 tag would then expire a run. This may not be a good idea, because it may
 confuse many tools. I don't do this in Formaline.

 Having separate heads would indeed enable run expiry.  Why would tools get
 confused?  What we could also do is start a new head every time the tests
 pass successfully.  We are not usually interested in history before that
 point any more.  We could then expire old heads periodically if we wanted
 to.

 >I just checked, and a single test result uses 8 MB. This indicates an
 incremental cost of about 2 MB per test run. I assume you run "git gc"
 from time to time, and that 363 MB is measured after a gc?

 Yes, I ran a repack and a gc before measuring the repo.  Does your 8 MB
 include both 1 proc and 2 proc results?  That is quite a large incremental
 cost.  It should be much smaller than that.  It is probably not an
 incremental cost, but the cost of regenerating test data from time to
 time.  There are also one or two very fishy tests which generate different
 numerical results each time they are run (but within tolerance).  Having
 test results as separate commits in the same branch allowed me to detect
 this sort of behaviour.

 >I would store the output data as well. If we run out of space, we can
 reduce the size (but moving some of the files to a new repository).

 Or just starting a new repository in a state where all the tests pass,
 which could correspond to a 6-monthly release.

-- 
Ticket URL: <https://trac.einsteintoolkit.org/ticket/899#comment:3>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit


More information about the Trac mailing list