One thing that bugged me that took a while to find a solution was how to use multiple arguments in Python’s multiprocessing Pool.map(*) function.
def original_function(arg1, arg2, arg3, arg4)
# do something with the four arguments
return the_result
def function_wrapper(args):
return original_function(*args)
def main()
iterable = list()
pool = mp.Pool()
for parameter in parameters:
iterable.append((arg1, arg2, arg3, parameter))
results = list(pool.map(func=function_wrapper, iterable=iterable))
You are simply passing the tuple into a wrapper function and then unzipping the arguments inside the wrapper. Good enough for me.