Browse Source

!1244 fix the multiprocessing context from fork to forkserver

From: @jiang-shuqiang
Reviewed-by: @yelihua,@ouwenchang
Signed-off-by: @ouwenchang
tags/v1.2.0-rc1
mindspore-ci-bot Gitee 4 years ago
parent
commit
06d8c3a182
1 changed files with 2 additions and 15 deletions
  1. +2
    -15
      mindinsight/utils/computing_resource_mgr.py

+ 2
- 15
mindinsight/utils/computing_resource_mgr.py View File

@@ -13,12 +13,10 @@
# limitations under the License.
# ============================================================================
"""Compute resource manager."""
import sys
import fractions
import math
import threading
from concurrent import futures
import signal
import multiprocessing

from mindinsight.utils.log import setup_logger
@@ -26,7 +24,7 @@ from mindinsight.utils.constant import GeneralErrors
from mindinsight.utils.exceptions import MindInsightException


_MP_CONTEXT = multiprocessing.get_context(method="fork")
_MP_CONTEXT = multiprocessing.get_context(method="forkserver")
terminating = False


@@ -51,18 +49,7 @@ class ComputingResourceManager:
for ind in range(self._executors_cnt)
}
self._remaining_executors = len(self._executors)

def initializer():
origin_handler = signal.getsignal(signal.SIGTERM)

def handler(sig, frame):
origin_handler(sig, frame)
sys.exit(0)

signal.signal(signal.SIGTERM, handler)

self._backend = futures.ProcessPoolExecutor(max_workers=max_processes_cnt, mp_context=_MP_CONTEXT,
initializer=initializer)
self._backend = futures.ProcessPoolExecutor(max_workers=max_processes_cnt, mp_context=_MP_CONTEXT)
self.logger = setup_logger("utils", "utils")
self.logger.info("Initialized ComputingResourceManager with executors_cnt=%s, max_processes_cnt=%s.",
executors_cnt, max_processes_cnt)


Loading…
Cancel
Save