FAQ
Thank you for the response. Processing time is very important so I suspect
having to write to disk will take more time than letting the other
processes complete without finding the answer. So I did some profiling one
process finds the answer in about 250ms, but since I can't stop the other
processes, it takes about 800ms before I can use the answer. Do you
recommend a global variable flag? Any other suggestions?
On Nov 2, 2013 8:17 AM, "William Ray Wing" wrote:

On Nov 2, 2013, at 1:03 AM, smhall05 wrote:
On Friday, November 1, 2013 10:52:40 PM UTC-4, MRAB wrote:
On 02/11/2013 02:35, smhall05 wrote:

I am using a basic multiprocessing snippet I found:

#-----------------------------------------------------
from multiprocessing import Pool

def f(x):
return x*x

if __name__ == '__main__':
pool = Pool(processes=4) # start 4 worker processes
result = pool.apply_async(f, [10]) # evaluate "f(10)"
asynchronously
print result.get(timeout=1)
print pool.map(f, range(10)) # prints "[0, 1, 4,..., 81]"
#---------------------------------------------------------

I am using this code to have each process go off and solve the same
problem, just with different inputs to the problem. I need to be able to
kill all processes once 1 of n processes has come up with the solution.
There will only be one answer.
I have tried:

sys.exit(0) #this causes the program to hang
pool.close()
pool.terminate
Did you actually mean "pool.terminate", or is that a typo for

"pool.terminate()"?
These still allow further processing before the program terminates.
What else can I try? I am not able to share the exact code at this time. I
can provide more detail if I am unclear. Thank you
I am not sure to be honest, however it turns out that I can't use
pool.terminate() because pool is defined in main and not accessible under
my def in which I check for the correct answer.
So, the simplest solution to that situation is to have whichever
subprocess that finds the correct answer set a flag which the calling
process can check. Depending on your OS, that flag can be anything from
setting a lock to something as simple as creating a file which the calling
process periodically wakes up and looks for, maybe just a file in which the
subprocess has written the answer.

Bill
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20131102/cf0ece75/attachment-0001.html>

Search Discussions

Discussion Posts

Previous

Follow ups

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 5 of 8 | next ›
Discussion Overview
grouppython-list @
categoriespython
postedNov 2, '13 at 2:35a
activeNov 3, '13 at 10:24a
posts8
users5
websitepython.org

People

Translate

site design / logo © 2022 Grokbase