#12016: parallelism in Sage: just use value of 'MAKE'
---------------------------+------------------------------------------------
Reporter: jhpalmieri | Owner: GeorgSWeber
Type: enhancement | Status: needs_work
Priority: critical | Milestone: sage-4.8
Component: build | Keywords:
Work_issues: | Upstream: N/A
Reviewer: | Author: John Palmieri, Jeroen Demeyer
Merged: | Dependencies: #11969, #12096, #12098
---------------------------+------------------------------------------------
Description changed by jdemeyer:
Old description:
> With the attached patches, along with the changes from #11959, the
> various parallel aspects of Sage should be controlled by setting the `-j`
> flag in `MAKE`. That is, if `MAKE='make -j16'`, then
>
> - running `make` will build spkg's in parallel, using 16 processes (this
> was done in #11959). ''This is standard `make` behaviour, no patches are
> needed.''
>
> - running `make ptestlong` or `sage -tp 0 <files>` will doctest in
> parallel using 16 threads. If the `-j` flag in `MAKE` is not set, then
> determine the number of threads as before: `min(8, cpu_count())`.
>
> - running `./sage -b` will build the Sage library using 16 threads. If
> the `-j` flag in `MAKE` is not set, then use only 1 thread.
>
> In #6495, we should implement the same behavior for doc building.
>
> '''Apply''':
> 1. [attachment:12016-root.patch] to the `SAGE_ROOT` repository.
> 1. [attachment:12016-scripts.patch] to the `SCRIPTS` repository.
> 1. [attachment:12016-sage.patch] to the Sage library.
>
> '''Notes''':
> With the patches applied, building spkgs in parallel works well, except
> for a "jobserver unavailable" warning in:
> * ntl
> * singular
> * rubiks
New description:
With the attached patches, along with the changes from #11959, the various
parallel aspects of Sage should be controlled by setting the `-j` flag in
`MAKE`. That is, if `MAKE='make -j16'`, then
- running `make` will build spkg's in parallel, using 16 processes (this
was done in #11959). ''This is standard `make` behaviour, no patches are
needed.''
- running `make ptestlong` or `sage -tp 0 <files>` will doctest in
parallel using 16 threads. If the `-j` flag in `MAKE` is not set, then
determine the number of threads as before: `min(8, cpu_count())`.
- running `./sage -b` will build the Sage library using 16 threads. If
the `-j` flag in `MAKE` is not set, then use only 1 thread.
In #6495, we should implement the same behavior for doc building.
'''Apply''':
1. [attachment:12016-root.patch] to the `SAGE_ROOT` repository.
1. [attachment:12016-base.patch] to `spkg/base`.
1. [attachment:12016-scripts.patch] to the `SCRIPTS` repository.
1. [attachment:12016-sage.patch] to the Sage library.
'''Notes''':
With the patches applied, building spkgs in parallel works well, except
for a "jobserver unavailable" warning in:
* ntl
* singular
* rubiks
--
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/12016#comment:20>
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.