• Chad Austin's avatar
    limit parallelism based on available RAM · fa2f89f9
    Chad Austin authored
    Summary:
    A long time ago, getdeps scheduled each build up to the number of hardware threads. For some builds, that was too heavy, so it got throttled back to only ever use half the hardware threads. This left parallelism on the table for CPU-bound projects that don't use much RAM per compilation.
    
    This commit makes better use of the hardware with finer-grained logic that allows each manifest to specify a `job_weight_mib` estimate in MiB, and limit concurrency to `available_ram / job_weight`.
    
    Reviewed By: ahornby
    
    Differential Revision: D33754018
    
    fbshipit-source-id: 785bed6c6cfe3c473244e0806a77cec1fc119e1f
    fa2f89f9
builder.py 52.1 KB