You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Python has a good ecosystem of libraries for parallelising the processing of
tasks, as well as asynchronous processing.
Parallelisation in Python is typically process-based with code parallelised
across multiple Python processes each with their own interpreter or makes use of
tools which run the tasks to be parallelised outside of the Python interpreter,
using for example Python wrappers around external code which uses thread-based
parallelism.
Good tools in the following should be chosen, if there are external reasons to use
a specific interface or parallelisation scheme. Possibly due to the nature of
the research problem, the high-performance computing resources available or
simply due to pre-existing code using a library like pandas.
A fork of multiprocessing which uses dill instead of pickle to allow serializing wider range of object types including nested / anonymous functions. We've found this easier to use than multiprocessing.
Another Python standard library for asynchronous processing. Provides a common interface for thread and process based concurrency as an alternative to using multiprocess(ing) or threading directly.