conda-forge / scipoptsuite-feedstock

A conda-smithy repository for scipoptsuite.
BSD 3-Clause "New" or "Revised" License
25 stars 13 forks source link

Use ninja for build #55

Closed dg0yt closed 11 months ago

dg0yt commented 11 months ago

Checklist

conda-forge-webservices[bot] commented 11 months ago

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

I do have some suggestions for making it better though...

For recipe:

Documentation on acceptable licenses can be found here.

dg0yt commented 11 months ago

CI build time changes:

Target Before this PR ninja, this PR Remark
linux 30 min 42 min 12 min worse - unexpected!
win 55 min 43 min 12 min improvement
osx x64 54 min 45 min 9 min improvement
osx arm64 50 min 42 min 8 min improvement

NB: Build times in CI vary widely, but I only took single data points.

linux-64

make before this PR:

Resource usage statistics from building scipoptsuite:
   Process count: 16
   CPU time: Sys=0:00:57.0, User=0:27:37.2
   Memory: 5.0G
   Disk usage: 381.1K
   Time elapsed: 0:20:18.6

ninja with this PR:

Resource usage statistics from building scipoptsuite:
   Process count: 11
   CPU time: Sys=0:01:32.3, User=0:39:43.2
   Memory: 5.0G
   Disk usage: 318.0K
   Time elapsed: 0:27:36.9

I did expect at least a small improvement, similar to osx. Something strange going on here. Or simply a machine with less cores (cf. Process count).

dg0yt commented 11 months ago

ninja on another CI run:

Resource usage statistics from building scipoptsuite:
   Process count: 11
   CPU time: Sys=0:00:56.0, User=0:27:18.5
   Memory: 5.0G
   Disk usage: 154.6M
   Time elapsed: 0:19:43.0

So everything is okay, only CI machines vary.

h-vetinari commented 11 months ago

So everything is okay, only CI machines vary.

Yeah, the machines we get randomly assigned in Azure Pipelines can be quite different in capabilities. Depending on the recipe, a factor 2x can happen between the fastest and slowest build times.