multithreading - Python multiprocessing Pool vs multiprocessing ThreadPool -


i have list of image paths want divide between processes or threads each process processes part of list. processing includes loading image disk, computation , return result. i'm using python 2.7 multiprocessing.pool

here's how create worker processes

def processparallel(classifier,path):     files=glob.glob(path+"\*.png")     files_sorted=sorted(files,key=lambda file_name:int(file_name.split('--')[1]))     p = multiprocessing.pool(processes=4,initializer=initializer,initargs=(classifier,))     data=p.map(loadandclassify, files_sorted)     return data 

the issue i'm facing when log initialization time in intializer function, came know workers aren't initialized in parallel , rather each worker initialized gap of 5 seconds , here logs reference

2016-08-08 12:38:32,043 - custom_logging - info - worker started 2016-08-08 12:38:37,647 - custom_logging - info - worker started 2016-08-08 12:38:43,187 - custom_logging - info - worker started 2016-08-08 12:38:48,634 - custom_logging - info - worker started  

i've tried using multiprocessing.pool.threadpool instead starts workers @ same time.
know how multiprocessing on windows work , have place main guard protect our code spawning infinite processes. issue in case i've hosted script on iis using fastcgi , script isn't main , it's being run fastcgi process (there's wfastcgi.py script responsible that). there main guard inside wfastcgi.py , logs indicate i'm not creating infinite no of processes.

now want know reason behind multiprocessing pool not creating worker threads simultaneously, i'll appreciate help.

edit 1: here's initializer function

def initializer(classifier):     global indexing_classifier     logger.info('worker started')     indexing_classifier=classifier 

i had many issues trying run multiprocessing under cgi/wsgi, works fine locally, not on real webservers... isn't compatible. if need multiprocessing, send async jobs off celery.


Comments

Popular posts from this blog

Spring Boot + JPA + Hibernate: Unable to locate persister -

go - Golang: panic: runtime error: invalid memory address or nil pointer dereference using bufio.Scanner -

c - double free or corruption (fasttop) -