本文整理汇总了Python中pathos.multiprocessing.ProcessingPool.map方法的典型用法代码示例。如果您正苦于以下问题:Python ProcessingPool.map方法的具体用法?Python ProcessingPool.map怎么用?Python ProcessingPool.map使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pathos.multiprocessing.ProcessingPool
的用法示例。
在下文中一共展示了ProcessingPool.map方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: run_all_control_analysis
# 需要导入模块: from pathos.multiprocessing import ProcessingPool [as 别名]
# 或者: from pathos.multiprocessing.ProcessingPool import map [as 别名]
def run_all_control_analysis(self):
dirs = dir_walker(self.encode_root)
control_dir = None
for d in dirs:
if 'control' in d.lower():
control_dir = d
assert control_dir is not None
replicates = dir_walker(control_dir, level=1)
pool = ProcessingPool(nodes=14)
pool.map(self.control_analysis, tuple(replicates))
return replicates
示例2: image_division
# 需要导入模块: from pathos.multiprocessing import ProcessingPool [as 别名]
# 或者: from pathos.multiprocessing.ProcessingPool import map [as 别名]
def image_division(self):
image_rows, image_cols = self.__image.shape[:2]
print self.__image.shape[:2]
grid_indices = [
np.array([x, y])
for x in xrange(0, image_cols - self.__GRID_SIZE, self.__GRID_SIZE)
for y in xrange(0, image_rows - self.__GRID_SIZE, self.__GRID_SIZE)
]
pool = Pool()
output = pool.map(self.grid_division, grid_indices)
threshod_sucess_sample = 6
ransacGrouper = RansacLine(1, threshod_sucess_sample, 25, 2)
for index, edgels in enumerate(output):
if len(edgels) > threshod_sucess_sample:
ransacGrouper.edgels = edgels
ransac_groups = ransacGrouper.applay_parallel_ransac()
self.line_segment(ransac_groups)
# print len(self.__lines)
# for line in self.__lines:
# print (line.slope, line.intercept)
# coefficients = np.array([line.slope, line.intercept])
# # print "cof: ", coefficients
# x = np.array([20, 50], dtype=np.int32)
# polynomial = np.poly1d(coefficients)
# # print "Poly: ", polynomial
# y = polynomial(x)
# y = [int(e) for e in y]
# print "x: ", x, "y: ", y
# cv2.line(self.__image, (x[0], y[0]), (x[1], y[1]), (0, 255, 0), 1)
cv2.imshow("image", self.__image)
cv2.waitKey(0)
cv2.destroyAllWindows()
示例3: _featurize_complexes
# 需要导入模块: from pathos.multiprocessing import ProcessingPool [as 别名]
# 或者: from pathos.multiprocessing.ProcessingPool import map [as 别名]
def _featurize_complexes(self, df, featurizer, parallel=True,
worker_pool=None):
"""Generates circular fingerprints for dataset."""
protein_pdbs = list(df["protein_pdb"])
ligand_pdbs = list(df["ligand_pdb"])
complexes = zip(ligand_pdbs, protein_pdbs)
def featurize_wrapper(ligand_protein_pdb_tuple):
ligand_pdb, protein_pdb = ligand_protein_pdb_tuple
print("Featurizing %s" % ligand_pdb[0:2])
molecule_features = featurizer.featurize_complexes([ligand_pdb], [protein_pdb])
return molecule_features
if worker_pool is None:
features = []
for ligand_protein_pdb_tuple in zip(ligand_pdbs, protein_pdbs):
features.append(featurize_wrapper(ligand_protein_pdb_tuple))
else:
if worker_pool is None:
worker_pool = ProcessingPool(mp.cpu_count())
features = worker_pool.map(featurize_wrapper,
zip(ligand_pdbs, protein_pdbs))
else:
features = worker_pool.map_sync(featurize_wrapper,
zip(ligand_pdbs, protein_pdbs))
#features = featurize_wrapper(zip(ligand_pdbs, protein_pdbs))
df[featurizer.__class__.__name__] = list(features)
示例4: map
# 需要导入模块: from pathos.multiprocessing import ProcessingPool [as 别名]
# 或者: from pathos.multiprocessing.ProcessingPool import map [as 别名]
def map(self, f, seq):
"""
Parallel implementation of map.
Parameters
----------
f : callable
A function to map to all the values in 'seq'
seq : iterable
An iterable of values to process with 'f'
Returns
-------
results : list, shape=[len(seq)]
The evaluated values
"""
if self.n_jobs < 1:
n_jobs = multiprocessing.cpu_count()
elif self.n_jobs == 1:
return list(map(f, seq))
else:
n_jobs = self.n_jobs
pool = Pool(n_jobs)
results = list(pool.map(f, seq))
# Closing/joining is not really allowed because pathos sees pools as
# lasting for the duration of the program.
return results
示例5: run
# 需要导入模块: from pathos.multiprocessing import ProcessingPool [as 别名]
# 或者: from pathos.multiprocessing.ProcessingPool import map [as 别名]
def run(non_iter_args, do_multiprocessing):
[
weightcalcdata,
weightcalculator,
box,
startindex,
size,
newconnectionmatrix,
method,
boxindex,
filename,
headerline,
writeoutput,
] = non_iter_args
partial_gaincalc_oneset = partial(
calc_weights_oneset,
weightcalcdata,
weightcalculator,
box,
startindex,
size,
newconnectionmatrix,
method,
boxindex,
filename,
headerline,
writeoutput,
)
if do_multiprocessing:
pool = Pool(processes=pathos.multiprocessing.cpu_count())
pool.map(partial_gaincalc_oneset, weightcalcdata.causevarindexes)
# Current solution to no close and join methods on ProcessingPool
# https://github.com/uqfoundation/pathos/issues/46
s = pathos.multiprocessing.__STATE["pool"]
s.close()
s.join()
pathos.multiprocessing.__STATE["pool"] = None
else:
for causevarindex in weightcalcdata.causevarindexes:
partial_gaincalc_oneset(causevarindex)
return None
示例6: compute_importance
# 需要导入模块: from pathos.multiprocessing import ProcessingPool [as 别名]
# 或者: from pathos.multiprocessing.ProcessingPool import map [as 别名]
def compute_importance(self, alpha):
"""
"""
pool = ProcessingPool(self._numJobs)
errors = pool.map(self._computeImportanceOfTree,
[alpha] * self._numTree, range(self._numTree))
return np.array(errors).mean(axis=0)
示例7: apply
# 需要导入模块: from pathos.multiprocessing import ProcessingPool [as 别名]
# 或者: from pathos.multiprocessing.ProcessingPool import map [as 别名]
def apply(values):
pool = Pool()
# result = []
result = pool.map(func, values)
# result.append(ret)
# pool.close()
# pool.join()
return result
示例8: alignAllShapes
# 需要导入模块: from pathos.multiprocessing import ProcessingPool [as 别名]
# 或者: from pathos.multiprocessing.ProcessingPool import map [as 别名]
def alignAllShapes( self ):
import pathos.multiprocessing as mp
start = time.time()
pool = Pool()
self.allShapes = pool.map( self.alignOneShape, self.allShapes )
# for sh in self.allShapes:
# self.alignOneShape( sh )
print 'alignAllShapes: %f' % (time.time() - start )
return
示例9: parallelmap
# 需要导入模块: from pathos.multiprocessing import ProcessingPool [as 别名]
# 或者: from pathos.multiprocessing.ProcessingPool import map [as 别名]
def parallelmap(func, data, nodes = None):
"""
Return the averaged signal and background (based on blank frames) over the given runs
"""
if not nodes:
nodes = multiprocessing.cpu_count() - 2
pool = ProcessingPool(nodes=nodes)
try:
return pool.map(func, data)
except KeyboardInterrupt:
pool.terminate()
pool.join()
示例10: register_stack_to_template
# 需要导入模块: from pathos.multiprocessing import ProcessingPool [as 别名]
# 或者: from pathos.multiprocessing.ProcessingPool import map [as 别名]
def register_stack_to_template(frames, template, regfn, njobs=4, **fnargs):
"""
Given stack of frames (or a FSeq obj) and a template image,
align every frame to template and return a list of functions,
which take an image and return warped image, aligned to template.
"""
if njobs > 1:
pool = ProcessingPool(nodes=njobs)
out = pool.map(partial(regfn, template=template, **fnargs), frames)
else:
out = np.array([regfn(img, template, **fnargs) for img in frames])
return out
示例11: main
# 需要导入模块: from pathos.multiprocessing import ProcessingPool [as 别名]
# 或者: from pathos.multiprocessing.ProcessingPool import map [as 别名]
def main():
from hyperopt import fmin,tpe,hp,Trials
from hyperopt.mongoexp import MongoTrials
import os
fit_params=eval(open('fit_parameters.txt').read())
fit_params['root']=os.getcwd()
directory=init_directory(fit_params)
if fit_params['optimization']=='hyperopt':
space=search_space(fit_params)
trials=Trials()
best=fmin(run,space=space,algo=tpe.suggest,max_evals=fit_params['max_evals'],trials=trials)
plot_results(trials.trials)
#https://github.com/hyperopt/hyperopt/wiki/Parallelizing-Evaluations-During-Search-via-MongoDB
''' commands for MongoDB
mongod --dbpath . --port 1234
export PYTHONPATH=$PYTHONPATH:/home/pduggins/influence_susceptibility_conformity
hyperopt-mongo-worker --mongo=localhost:1234/foo_db --poll-interval=0.1
'''
if fit_params['optimization']=='mongodb':
space=search_space(fit_params)
space['directory']=directory
trials=MongoTrials('mongo://localhost:1234/foo_db/jobs', exp_key='exp4')
best=fmin(run,space=space,algo=tpe.suggest,max_evals=fit_params['max_evals'],trials=trials)
plot_results(trials.trials)
if fit_params['optimization']=='evolve':
from pathos.multiprocessing import ProcessingPool as Pool
from pathos.helpers import freeze_support #for Windows
import numpy as np
import pandas as pd
# freeze_support()
evo_pop=init_evo_pop(fit_params)
pool = Pool(nodes=fit_params['threads'])
for g in range(fit_params['generations']):
exp_params=[value['P'] for value in evo_pop.itervalues()]
fitness_list=pool.map(run, exp_params)
# new_gen_list=tournament_selection(fitness_list,fit_params)
new_gen_list=rank_proportional_selection(fitness_list)
remade_pop=remake(evo_pop,new_gen_list)
mutated_pop=mutate(remade_pop,evo_pop,fit_params)
evo_pop=mutated_pop
# crossed_pop=crossover(mutated_pop)
# evo_pop=crossed_pop
mean_F=np.average([evo_pop[ind]['F'] for ind in evo_pop.iterkeys()])
std_F=np.std([evo_pop[ind]['F'] for ind in evo_pop.iterkeys()])
print '\nGeneration %s: mean_F=%s, std F=%s' %(g+1,mean_F,std_F)
out_pop=pd.DataFrame([evo_pop])
out_pop.reset_index().to_json('evo_pop.json',orient='records')
示例12: apply_warps
# 需要导入模块: from pathos.multiprocessing import ProcessingPool [as 别名]
# 或者: from pathos.multiprocessing.ProcessingPool import map [as 别名]
def apply_warps(warps, frames, njobs=4):
"""
returns result of applying warps for given frames (one warp per frame)
"""
if njobs > 1 :
pool = ProcessingPool(nodes=njobs)
out = np.array(pool.map(parametric_warp, frames, warps))
else:
out = np.array([parametric_warp(f,w) for f,w in itt.izip(frames, warps)])
if isinstance(frames, fseq.FrameSequence):
out = fseq.open_seq(out)
out.meta = frames.meta
return out
示例13: multi_ray_sim
# 需要导入模块: from pathos.multiprocessing import ProcessingPool [as 别名]
# 或者: from pathos.multiprocessing.ProcessingPool import map [as 别名]
def multi_ray_sim(self, sources, procs=8):
self.minener = 1e-10 # minimum energy threshold
self.itmax = 1000 # stop iteration after this many ray bundles were generated (i.e.
# after the original rays intersected some surface this many times).
# The multiprocessing raytracing method to call from the original engine.
if len(sources) != procs:
raise Exception('Number of sources and processors do not agree')
# Creates a pool of processes and makes them raytrace one different source each. The resm list returned is a list of copies of the original engine post raytrace.
pool = Pool(processes=procs)
resm = pool.map(self.trace, sources)
# New tree container and length envaluation to redimension it.
tree_len = N.zeros(len(resm), dtype=N.int)
trees = []
for eng in xrange(len(resm)):
# Get and regroup results in one tree and assembly only:
S = resm[eng]._asm.get_surfaces()
tree_len[eng] = len(resm[eng].tree._bunds)
trees.append(resm[eng].tree)
# Next loop is to get the optics callable objects and copy regroup their values without asumptions about what they are.
for s in xrange(len(S)):
part_res = S[s]._opt.__dict__
keys = S[s]._opt.__dict__.keys()
for k in xrange(len(keys)):
if (keys[k] == '_opt') or (keys[k] == '_abs'):
continue
if len(self._asm.get_surfaces()[s]._opt.__dict__[keys[k]]) < 1:
self._asm.get_surfaces()[s]._opt.__dict__[keys[k]] = part_res[keys[k]]
elif len(part_res[keys[k]]) < 1:
continue
else:
self._asm.get_surfaces()[s]._opt.__dict__[keys[k]][0] = N.append(self._asm.get_surfaces()[s]._opt.__dict__[keys[k]][0], part_res[keys[k]][0], axis=1)
# Regroup trees:
self.tree = RayTree() # Create a new tree for all
for t in xrange(N.amax(tree_len)): # Browse through general tree levels up to the maximum length that has been raytraced
for eng in xrange(len(resm)): # Browse through bundles of each parallel engine.
if t<(tree_len[eng]): # to not go over the length of the present parallel tree.
if t==len(self.tree._bunds): # if the index is greater than the actual length of the general tree, add a new bundle to the general tree with the present parallel bundle to initialise it.
bundt = trees[eng]._bunds[t]
else:
if t>0: # adapt parents indexing prior to concatenation
trees[eng]._bunds[t].set_parents(trees[eng]._bunds[t].get_parents()+len(self.tree._bunds[t].get_parents()))
bundt = concatenate_rays([bundt, trees[eng]._bunds[t]])
self.tree.append(bundt)
trees = 0
示例14: parallelmap
# 需要导入模块: from pathos.multiprocessing import ProcessingPool [as 别名]
# 或者: from pathos.multiprocessing.ProcessingPool import map [as 别名]
def parallelmap(func, lst, nodes = None):
"""
Return the averaged signal and background (based on blank frames) over the given runs using
multiprocessing (as opposed to MPI).
"""
from pathos.multiprocessing import ProcessingPool
from pathos import multiprocessing
if not nodes:
nodes = multiprocessing.cpu_count() - 2
pool = ProcessingPool(nodes=nodes)
try:
return pool.map(func, lst)
except KeyboardInterrupt:
pool.terminate()
pool.join()
示例15: launch_simulation_parallel
# 需要导入模块: from pathos.multiprocessing import ProcessingPool [as 别名]
# 或者: from pathos.multiprocessing.ProcessingPool import map [as 别名]
def launch_simulation_parallel(simulation_config,
max_iterations,
parallel_blocks=gtconfig.parallel_blocks,
show_progress=True):
"""
Parallel version of the simulation launch, to maximize CPU utilization.
:param catalog_size: Number of defects present on the system.
:param priority_generator: Generator for the priority of the defects.
:param team_capacity:
:param reporters_config:
:param resolution_time_gen:
:param max_iterations:
:param max_time:
:param dev_team_bandwidth:
:param gatekeeper_config:
:param inflation_factor:
:param quota_system:
:param parallel_blocks:
:return:
"""
pool = Pool(processes=parallel_blocks)
samples_per_worker = max_iterations / parallel_blocks
logger.info("Launching " + str(max_iterations) + " replications IN PARALLEL. Using " + str(parallel_blocks) +
" workers with " + str(samples_per_worker) + " samples each.")
worker_inputs = []
for block_id in range(parallel_blocks):
worker_input = {'simulation_config': simulation_config,
'max_iterations': samples_per_worker,
'block_id': block_id,
'show_progress': False}
worker_inputs.append(worker_input)
# Showing progress bar of first batch
worker_inputs[0]['show_progress'] = show_progress
worker_outputs = pool.map(launch_simulation_wrapper, worker_inputs)
logger.info(str(max_iterations) + " replications finished. Starting output consolidation.")
simulation_metrics = SimulationMetrics()
for output in worker_outputs:
simulation_metrics.append_results(output)
return simulation_metrics