def ipython_current(parallel, config): has_mincores = any(x.startswith("mincores=") for x in parallel["resources"]) cores = min(ip._get_common_cores(config["resources"]), parallel["system_cores"]) if cores > 1 and not has_mincores: adj_cores = max(1, int(math.floor(cores * float(parallel.get("mem_pct", 1.0))))) # if we have less scheduled cores than per machine, use the scheduled count if cores > parallel["cores"]: cores = parallel["cores"] # if we have less total cores required for the entire process, use that elif adj_cores > parallel["num_jobs"] * parallel["cores_per_job"]: cores = parallel["num_jobs"] * parallel["cores_per_job"] else: cores = adj_cores cores = ip.per_machine_target_cores(cores, parallel["num_jobs"] // cores) parallel["resources"].append("mincores=%s" % cores) return parallel
def ipython_fn(parallel, config): has_mincores = any(x.startswith("mincores=") for x in parallel["resources"]) common_cores = min(ip._get_common_cores(config["resources"]), parallel["system_cores"]) # if has_mincores, check memory usage use min(adj_cores, mincores) # min(common_cores, parallel[cores]) if common_cores > 1 and not has_mincores: adj_cores = max(1, int(math.floor(common_cores * float(parallel.get("mem_pct", 1.0))))) num_engines = adj_cores # if we have less scheduled cores than per machine, use the scheduled count if num_engines > parallel["cores"]: num_engines = parallel["cores"] print "common %s cores_per_job %s cores %s" % (common_cores, parallel['cores_per_job'], num_engines) if (parallel['cores_per_job'] * num_engines) > common_cores: num_engines = int(math.floor(float(common_cores) / parallel['cores_per_job'])) parallel["resources"].append("mincores=%s" % num_engines) return parallel