Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.1k views
in Technique[技术] by (71.8m points)

time - Stop processes from python multiprocessing that take too long

I want to evaluate a very complicated (and possibly slow) function for N different input values.

def f(x):
   # do something very complicated
   return out

Via multiprocessing I want to parallelize the calculation on a cluster with N cores, so I do

import multiprocessing  
pool = Pool(N)
results = pool.map(f, xlist)
pool.close()
pool.join()

with 'xlist' being a list (or numpy array) that contains all input values. My question is the following: There might be values of x, where the solution of f does not converge, but I don't want to occupy the whole cluster, just because one data point does not finish. So how can I time each process, and if the time's up, return None, or some different placeholder instead of the usual output of f?

question from:https://stackoverflow.com/questions/65928485/stop-processes-from-python-multiprocessing-that-take-too-long

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...