#9497: Fix the Singular spkg so it can take advantage of building in parallel
----------------------------------------------+-----------------------------
   Reporter:  was                             |       Owner:  GeorgSWeber 
       Type:  enhancement                     |      Status:  needs_review
   Priority:  minor                           |   Milestone:  sage-4.7    
  Component:  build                           |    Keywords:  singular    
     Author:  Martin Albrecht, John Palmieri  |    Upstream:  N/A         
   Reviewer:                                  |      Merged:              
Work_issues:                                  |  
----------------------------------------------+-----------------------------

Comment(by drkirkby):

 John,

 I thought the parallel builds of Singular 3-1-1-4 were fixed on #9946 -
 where I tested a parallel build of Singular  3-1-1-4 for 500 times, with
 no failures. I'm a bit puzzled why parallel builds need to be enabled in
 this package, when they should have been done on #9946

 The problem with builds that break in parallel is that they are very hard
 to test properly. Just because something builds a few times, does not mean
 it will build 100% of the time. Failures tend to be random in nature.
 Martin Albrecht has tested this 16 times, which I don't think is enough
 really. It took me more than 16 builds of Sage to find that
 {{{boehm_gc-7.1.p6}}} has a race condition.

 http://www.mail-archive.com/[email protected]/msg42997.html

 BTW,

 if you use my machine hawk, and change your path to use the compilers:

 {{{
 /usr/local/gcc-4.5.0-delayed/bin/gcc
 /usr/local/gcc-4.5.0-delayed/bin/g++
 /usr/local/gcc-4.5.0-delayed/bin/gfortran
 }}}

 then set an environment variable

 {{{
 MAX_COMPILER_DELAY_IN_MICRO_SECONDS
 }}}

 to something like 100000, then it will pause a random amount of time (in
 the range 0 to 100 ms) before invoking the compiler. These random delays
 will tend to help induce race problems, as it changes the order in which
 files are built. The file

 {{{
 /usr/local/gcc-4.5.0-delayed/bin/gcc
 }}}

 is just a shell script, which calls something to pause for a random time
 before actually compiling the C file.

 {{{
 #!/bin/sh
 /usr/local/bin/randomsleep
 /usr/local/gcc-4.5.0/bin/gcc "$@"
 drkirkby@hawk:~$
 }}}

 In fact, I use {{{/usr/local/gcc-4.5.0-delayed/bin/gcc}}} all the time,
 though I rarely have {{{MAX_COMPILER_DELAY_IN_MICRO_SECONDS}}} set.

 Perhaps you can clarify what has changed here since #9946 - I'm too tired
 to look now. It will have to wait until I have had some sleep.

 The changes from p5 to p6 look fine, but I've not investigated what has
 changed between #9946 and the p5 you have created.

 Dave

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/9497#comment:5>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to