Rebuild graph-tool against libboost
Depends on D8527
Details
- Reviewers
DataDrake - Group Reviewers
Triage Team - Commits
- R4213:c49a707e7f7c: Update graph-tool to 2.32 and rebuild for cgal and libboost
Rebuild it against libboost
Diff Detail
- Repository
- R4213 graph-tool
- Branch
- arcpatch-D8528
- Lint
No Linters Available - Unit
No Unit Test Coverage
Event Timeline
on ermos advice I used the LLVM_PARALLEL_LINK_JOBS=1 with -j4, which cut down the build time on my system from ~190m to ~68m and a max usage of RAM ~18GB while still using my system
package.yml | ||
---|---|---|
34–39 | Scratch that, my maximum observed resident size of 1 compile job is just under 8GiB with a compile time for said job of 15+ minutes (!) Have seen a max of 2GiB + 6 Gib + 7.5 GiB compile jobs on my latest -j3 run, which pushed me into swap on my 16GiB physical RAM box w/ff + konsole + services. |
My results with LLVM_PARALLEL_LINK_JOBS=1 on an FX-8350 w/16 GiB RAM + 4GiB swap:
-j2:
real 206m23.818s user 383m30.154s sys 6m24.131s
-j3: (max RAM usage by compile jobs was 2GiB + 6-ish GiB + 7.5-ish GiB)
real 162m49.967s user 412m23.566s sys 6m40.476s
So decent scaling with -j2 (~86%) and -j3 (~85%). I wouldn't go higher than -j3 on a 16 GiB system if I was planning on working at the same time. Crazy to think that -j1 on Girt's box is quicker than -j2 on mine. =)
-j4 is probably more than fine with LLVM_PARALLEL_LINK_JOBS=1 on 32GiB systems (worked fine on Girt's 64 GiB box).
The highest link job memory usage I saw was 11.5-ish GiB, but since that's just one at a time now due to make's depth-first approach, that's a non-issue.
With what we now know, I suppose this knowledge could be captured in the following comment in the build section:
# Maximum observed single compile job size is around 8 GiB Resident with sizes in the range 1.5-5 GiB the most common. # Likely due to poor job parallelism in make, the build will fan out to $CPUs -> 4-6 CPUs -> 1-2 CPUs. # For systems with 16 GiB RAM, make -j3 is barely suitable and make -j2 is recommended if the system will be in use during the build. # For systems with 32 GiB RAM, make -j8 is probably the maximum. # For systems with 64 GiB RAM, make -j24 is probably the maximum, but won't be appreciably faster than make -j8 make %JOBS%