[CMake] parallel ctest spawning too many threads

Kelly Thompson kgt at lanl.gov
Thu Apr 21 11:46:24 EDT 2011


David,

 

The project is not publicly available (sorry - nothing I can do about that).
This is also the reason I made fictitious test names.  I'm trying to
reproduce the issue by creating a standalone project that I can
redistribute.   Once that is done, I will post it.  

 

% ctest --version

ctest version 2.8.4

 

-kt

 

From: David Cole [mailto:david.cole at kitware.com] 
Sent: Thursday, April 21, 2011 6:34 AM
To: kgt at lanl.gov
Cc: cmake at cmake.org
Subject: Re: [CMake] parallel ctest spawning too many threads

 

This is the first I've ever heard of it...

Cool bug!
  (that was just a wee bit of sarcasm accompanied by a wry smile...)

What version of ctest?

Is this a project that is publicly available, so that I can try to reproduce
it here and help these "innocent" coders...?


Thanks,
David



On Wed, Apr 20, 2011 at 6:35 PM, Kelly Thompson <kgt at lanl.gov> wrote:

Fellow CMake users:

I'm having a problem with one of my projects when I run 'ctest -j<N>'.  The
problem is that after 70-90 tests, ctest decides to submit all of the
remaining tests at once (~200 tests worth).  For example (actual test names
replaced to protect the innocent :-)

% ctest -j16
Test project /var/tmp/foo
       Start 192: testA_2
       Start 191: testB_4
       Start 190: testC_3
       Start 189: testD_2
       Start 188: testE_4
 1/279 Test #189: testD_2 .................................   Passed
1.81 sec
       Start 187: testF_3
 2/279 Test #192: testA_2 .................................   Passed
2.98 sec
 3/279 Test #191: testB_4 .................................   Passed
2.81 sec
       Start 186: testG_2
       Start 185: testH_4
 4/279 Test #188: testE_4 .................................   Passed
2.81 sec
 5/279 Test #190: testC_3 .................................   Passed
2.92 sec
       Start 184: testI_3
       Start 183: testJ_2
 6/279 Test #187: testF_3 .................................   Passed
2.02 sec
       Start 182: testK_4
 7/279 Test #186: testG_2 .................................   Passed
2.44 sec

...

 82/279 Test #249: testZA_2 ................................   Passed
8.46 sec
 83/279 Test #245: testZB_2 ................................   Passed
3.12 sec
       Start 278: testZC_4
 84/279 Test #278: testZC_4 ................................   Passed
4.27 sec
       Start 266: testZD_4
       Start 263: testZE_4
       Start 275: testZF_4
       Start 270: testZG_4
       Start 269: testZH_4

# ...        about 190 tests started all at the same time.

       Start  89: testZZA_1
       Start  88: testZZB_1
^C

These tests are running under mpirun (trailing number indicates number of
cores needed for the test) and so the total load on my machine jumps to
about 400!

My tests are registered using commands similar to this:

           add_test(
              NAME    testA_4
              COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 4
                      ${MPIEXEC_POSTFLAGS}
                      $<TARGET_FILE:Ut_testA_4_exe>
              )
           set_tests_properties( testA_4
              PROPERTIES PROCESSORS "4" )

Has anyone seen this 'many threads spawning' behavior for ctest (I couldn't
find anything in the bug tracker).  Is there a known resolution?



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20110421/72a83823/attachment-0001.htm>


More information about the CMake mailing list