From e1ed5669d5c73479ffc3b6105886e0de6a103311 Mon Sep 17 00:00:00 2001 From: Mashiro <57566630+HAOCHENYE@users.noreply.github.com> Date: Wed, 15 Jun 2022 21:01:13 +0800 Subject: [PATCH] set resource limit in runner (#306) --- mmengine/runner/runner.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/mmengine/runner/runner.py b/mmengine/runner/runner.py index 0d829e13..067dd48b 100644 --- a/mmengine/runner/runner.py +++ b/mmengine/runner/runner.py @@ -3,6 +3,7 @@ import copy import os.path as osp import platform import random +import resource import shutil import time import warnings @@ -604,6 +605,7 @@ class Runner: opencv_num_threads=0 ), dist_cfg=dict(backend='nccl'), + resource_limit=4096 ) Args: @@ -628,6 +630,18 @@ class Runner: self._timestamp = time.strftime('%Y%m%d_%H%M%S', time.localtime(timestamp.item())) + # https://github.com/pytorch/pytorch/issues/973 + # set resource limit + if platform.system() != 'Windows': + rlimit = resource.getrlimit(resource.RLIMIT_NOFILE) + base_soft_limit = rlimit[0] + hard_limit = rlimit[1] + soft_limit = min( + max(env_cfg.get('resource_limit', 4096), base_soft_limit), + hard_limit) + resource.setrlimit(resource.RLIMIT_NOFILE, + (soft_limit, hard_limit)) + def set_randomness(self, seed, deterministic: bool = False) -> None: """Set random seed to guarantee reproducible results.