#8306: Parallel inter/intra-spkg builds
----------------------------+-----------------------------------------------
   Reporter:  mpatel        |       Owner:  GeorgSWeber
       Type:  enhancement   |      Status:  needs_work 
   Priority:  major         |   Milestone:  sage-4.3.4 
  Component:  build         |    Keywords:             
     Author:  Mitesh Patel  |    Upstream:  N/A        
   Reviewer:  David Kirkby  |      Merged:             
Work_issues:                |  
----------------------------+-----------------------------------------------
Changes (by drkirkby):

  * status:  needs_review => needs_work
  * reviewer:  => David Kirkby


Comment:

 The idea seems excellent. Ir is such a waste on modern machines to

 I think it would be a lot better if an environment variable
 SAGE_PARALLEL_BUILD or SAGE_PARALLEL_SPKG_BUILD was set to "yes", rather
 than require the user to edit the spkg/install. Since virtually all other
 environement variables are prefixed with SAGE (e.g. SAGE_FORTRAN,
 SAGE_FORTRAN_LIB, SAGE64 ...) I would do likewise for consistency.

 It would be necessary to test this on different architectures and
 operating systems. It is quite possible that the time different packages
 take to build differs vastly by the processor and operating system. It is
 likely that package X always builds in parallel before package Y on
 sage.math, but Y would build before X on another system. That could well
 mean there are dependencies existing that are not apparerent in serial
 builds.

 For example, ATLAS takes at least 10x as long to build on 't2' as it does
 on my own SPARC, simply because there are no default tuning parameters for
 ATLAS on t2, so it is tuned each time. That is an extreme example, but it
 is well known some machine are faster at some tasks than others, but
 slower on other tasks. Some packages have assembly language support for
 certain processors, but not others. Several packages go through some sort
 of tuning process to determine the optimal build parameters. So the
 timings could be expected to be different on different operating systems.

 At the very least, this should be tested on t2 and bsd, as they run
 Solaris and OS X repectively. (When testing on t2, I would suggest using j
 of 256 or 512. That machine has 128 threads). For t2, one would need to
 use sage 4.3.0.1. (I think any changes to spkg/install and
 spkg/standard/deps should minimal between 4.3.0.1 and 4.3.3.  There are
 probably no changes at all.

 It would be safer to compare the md5 checksums of libraries & binaries
 built in series and parallel to prove they are indeed the same. It is
 quite possible that there are failures that just do not get exercised by
 doctests. However, that may not be fully possible, as perhaps some would
 have the build time information encoded in some way. But I would at least
 investigate.

 Overall, I think this is a really '''excellent''' idea, but it needs
 further testing before I'd want to give it a positive review.

 Dave

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/8306#comment:13>
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