diff --git a/config/config.default.yaml b/config/config.default.yaml index a328d7593..90a01dfe8 100644 --- a/config/config.default.yaml +++ b/config/config.default.yaml @@ -1025,6 +1025,7 @@ solving: rtol: 0.01 mem_mb: 30000 #memory in MB; 20 GB enough for 50+B+I+H2; 100 GB for 181+B+I+H2 + memory_logging_frequency: 30 # in seconds runtime: 6h #runtime in humanfriendly style https://humanfriendly.readthedocs.io/en/latest/ diff --git a/doc/configtables/solving.csv b/doc/configtables/solving.csv index bc2b7ee62..9b1e87152 100644 --- a/doc/configtables/solving.csv +++ b/doc/configtables/solving.csv @@ -38,3 +38,4 @@ solver,,, -- options,--,Key listed under ``solver_options``.,Link to specific parameter settings. solver_options,,dict,Dictionaries with solver-specific parameter settings. mem,MB,int,Estimated maximum memory requirement for solving networks. +mem_logging_frequency,s,int,Interval in seconds at which memory usage is logged. diff --git a/scripts/solve_network.py b/scripts/solve_network.py index d5126a963..92c4d9e9d 100644 --- a/scripts/solve_network.py +++ b/scripts/solve_network.py @@ -1083,8 +1083,11 @@ def solve_network(n, config, params, solving, **kwargs): co2_sequestration_potential=snakemake.params["co2_sequestration_potential"], ) + logging_frequency = snakemake.config.get("solving", {}).get( + "mem_logging_frequency", 30 + ) with memory_logger( - filename=getattr(snakemake.log, "memory", None), interval=30.0 + filename=getattr(snakemake.log, "memory", None), interval=logging_frequency ) as mem: n = solve_network( n,