diff --git a/joj3_config_generator/models/task.py b/joj3_config_generator/models/task.py index f2e9c1d..7e1dc38 100644 --- a/joj3_config_generator/models/task.py +++ b/joj3_config_generator/models/task.py @@ -11,6 +11,7 @@ from joj3_config_generator.models.const import ( DEFAULT_CPU_LIMIT, DEFAULT_FILE_LIMIT, DEFAULT_MEMORY_LIMIT, + DEFAULT_PROC_LIMIT, ) @@ -66,6 +67,7 @@ class Limit(BaseModel): cpu: int = DEFAULT_CPU_LIMIT stdout: int = DEFAULT_FILE_LIMIT stderr: int = DEFAULT_FILE_LIMIT + proc: int = DEFAULT_PROC_LIMIT model_config = ConfigDict(validate_assignment=True) diff --git a/joj3_config_generator/transformers/task.py b/joj3_config_generator/transformers/task.py index ddd9362..0fd9277 100644 --- a/joj3_config_generator/transformers/task.py +++ b/joj3_config_generator/transformers/task.py @@ -8,7 +8,6 @@ from joj3_config_generator.models import result, task from joj3_config_generator.models.common import Memory, Time from joj3_config_generator.models.const import ( DEFAULT_CLOCK_LIMIT_MULTIPLIER, - DEFAULT_PROC_LIMIT, JOJ3_CONFIG_ROOT, ) from joj3_config_generator.models.task import Parser as ParserEnum @@ -97,8 +96,9 @@ def get_executor_with( copy_in_cached={file: file for file in cached}, copy_out_cached=file_export, cpu_limit=Time(task_stage.limit.cpu), - clock_limit=2 * Time(task_stage.limit.cpu), + clock_limit=DEFAULT_CLOCK_LIMIT_MULTIPLIER * Time(task_stage.limit.cpu), memory_limit=Memory(task_stage.limit.mem), + proc_limit=task_stage.limit.proc, stderr=result.Collector( name="stderr", pipe=True, max=Memory(task_stage.limit.stderr) ), @@ -203,7 +203,7 @@ def fix_diff( cpu_limit=case_stage.limit.cpu, clock_limit=DEFAULT_CLOCK_LIMIT_MULTIPLIER * case_stage.limit.cpu, memory_limit=case_stage.limit.mem, - proc_limit=DEFAULT_PROC_LIMIT, + proc_limit=task_stage.limit.proc, ) if cmd.args == executor.with_.default.args: cmd.args = None