From 27e58b3d8cc192f5c31871115124ab0c8059cd3d Mon Sep 17 00:00:00 2001 From: OutisLi Date: Mon, 20 Oct 2025 19:03:12 +0800 Subject: [PATCH 1/2] fix: set multiprocessing start method to 'fork' in main function(python3.14 defaults to forkserver) --- deepmd/main.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/deepmd/main.py b/deepmd/main.py index d829f11ba2..753dcbea35 100644 --- a/deepmd/main.py +++ b/deepmd/main.py @@ -984,6 +984,15 @@ def main(args: Optional[list[str]] = None) -> None: RuntimeError if no command was input """ + try: + import multiprocessing + + # Force fork multiprocessing start method. + multiprocessing.set_start_method("fork", force=True) + logging.info("Successfully set multiprocessing start method to 'fork'.") + except Exception as e: + logging.warning(f"Could not set multiprocessing start method: {e}") + args = parse_args(args=args) if args.backend not in BACKEND_TABLE: From a4262d6d1cced3ca7cd48c615cf7f75145c8f425 Mon Sep 17 00:00:00 2001 From: OutisLi Date: Mon, 20 Oct 2025 19:12:29 +0800 Subject: [PATCH 2/2] refactor and exclude windows --- deepmd/main.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/deepmd/main.py b/deepmd/main.py index 753dcbea35..a507904fa2 100644 --- a/deepmd/main.py +++ b/deepmd/main.py @@ -986,11 +986,15 @@ def main(args: Optional[list[str]] = None) -> None: """ try: import multiprocessing + import sys - # Force fork multiprocessing start method. - multiprocessing.set_start_method("fork", force=True) - logging.info("Successfully set multiprocessing start method to 'fork'.") - except Exception as e: + # Force fork multiprocessing start method (not available on Windows) + if sys.platform != "win32": + multiprocessing.set_start_method("fork", force=True) + logging.debug("Successfully set multiprocessing start method to 'fork'.") + else: + logging.debug("Skipping fork start method on Windows (not supported).") + except (RuntimeError, ValueError) as e: logging.warning(f"Could not set multiprocessing start method: {e}") args = parse_args(args=args)