From: Michael Tremer Date: Sun, 6 Feb 2011 21:29:50 +0000 (+0100) Subject: Automatically calculate parallelism flags. X-Git-Tag: 0.9.3~204 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d59bde4c650f6923659072fe36554791d5ea4221;p=pakfire.git Automatically calculate parallelism flags. --- diff --git a/pakfire/builder.py b/pakfire/builder.py index 23efb1267..927ddfa5c 100644 --- a/pakfire/builder.py +++ b/pakfire/builder.py @@ -3,6 +3,7 @@ import fcntl import grp import logging +import math import os import re import shutil @@ -304,10 +305,25 @@ class Builder(object): return ret + @staticmethod + def calc_parallelism(): + """ + Calculate how many processes to run + at the same time. + + We take the log10(number of processors) * factor + """ + num = os.sysconf("SC_NPROCESSORS_CONF") + if num == 1: + return 2 + else: + return int(round(math.log10(num) * 26)) + @property def environ(self): env = { "BUILDROOT" : self.buildroot, + "PARALLELISMFLAGS" : "-j%s" % self.calc_parallelism(), } # Inherit environment from distro