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.