Currently, the package's design relies on shared global state, which only allows a single experiment to run at a time. This prevents users from running multiple experiments concurrently.
FUTURE GOAL: Support for Python's threading and multiprocessing capabilities.
TODO:
- make core components thread-safe (e.g., using
threading.local for per-thread data, or locks for shared resources)
- ensure experiments running in different processes cannot have the same run name.
- stress and concurrency tests to verify that there is no leakage between experimental runs or interference in logging.
Currently, the package's design relies on shared global state, which only allows a single experiment to run at a time. This prevents users from running multiple experiments concurrently.
FUTURE GOAL: Support for Python's threading and multiprocessing capabilities.
TODO:
threading.localfor per-thread data, or locks for shared resources)