diff --git a/CHANGELOG.md b/CHANGELOG.md index 0dfdf833a2..febce8449e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - **default.cfg** input data upgraded from rev4.117 to rev4.118, default for bioenergy demand and GHG prices changed from R32M46 to R34M410, `rcp4p5` used for SSP2-NPi2025 in line with MAGICC climate outcome and REMIND assumptions. - **default.cfg** changed running magpie by default with optfile for specified solver settings (Tol_Optimality) - **script/start/test_runs.R** Test runs adjusted based on availability from coupled runs for R34M410. +- **scenario_config.csv** SSP2 food system assumptions for ScenarioMIP VLLO to avoid sudden jump of calorie intake after 2025 +- **scripts** request 24h for SLURM jobs (except for medium which still requests 7 days) +- **scripts** disaggregation.R moved disaggregateLandConservation function to magpie4 ### added - **default.cfg** added option to set Tol_Optimality (GAMS solver setting) to a certain value (GAMS-default 1e-7, new MAgPIE-default 1e-8) @@ -21,6 +24,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### fixed - **18_residues** fixed equation for cluster level production of crop residues in flexreg_apr16 realization +- **44_biodiversity** expanded age-classes from 150 to 300 years in line with `ac` set. This bugfix is crucial for the BII indicator. ## [4.10.0] - 2025-04-03 diff --git a/DESCRIPTION b/DESCRIPTION index e91f4d21a0..f311e482d1 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -21,7 +21,7 @@ Imports: m4fsdp, madrat, magclass (>= 6.14.0), - magpie4 (>= 2.22.1), + magpie4 (>= 2.24.0), MagpieNCGains, magpiesets (>= 0.46.1), mip, diff --git a/config/default.cfg b/config/default.cfg index 7776f0afb7..dd496ae559 100644 --- a/config/default.cfg +++ b/config/default.cfg @@ -2212,14 +2212,11 @@ cfg$sequential <- NA # * options: short (24h max, 3 CPUs, no preemption) # * short_highMem (same as short but with 16 CPUs and 80GB of memory) # * medium (1 week max, 3 CPUs, no preemption) -# * priority (immediate start, 3 CPUs, but slots limited to 5 in parallel) +# * priority (immediate start, 24h max, 3 CPUs, but slots limited to 5 in parallel) # * priority_highMem (same as priority but with 16 CPUs and 80GB of memory) -# * standby (1 week max, 3 CPUs, preemption possible) -# * standby_dayMax (24h max, 3 CPUs, preemption possible) -# * standby_highMem_dayMax (same as standby_dayMax but with 16 CPUs and 80GB of memory) +# * standby (24h max, 3 CPUs, preemption possible) # * standby_highMem (same as standby but with 16 CPUs and 80GB of memory) -# * NULL (educated guess of best option based -# * available resources) +# * NULL (educated guess of best option based on available resources) cfg$qos <- NULL # def = NULL # How should log information be treated? diff --git a/config/scenario_config.csv b/config/scenario_config.csv index 8e0390f65a..4c613c49ad 100755 --- a/config/scenario_config.csv +++ b/config/scenario_config.csv @@ -4,7 +4,7 @@ gms$c09_pop_scenario;;;;SSP1;SSP2;SSP3;SSP4;SSP5;SSP1;SSP1;SSP1;SSP1;SSP1;SSP1;S gms$c09_gdp_scenario;;;;SSP1;SSP2;SSP3;SSP4;SSP5;SSP1;SDP_EI;SDP_RC;SDP_MC;SSP1;SSP1;SSP2;SSP3;SSP5;;;;;;;;;;;;;;;;;;;; gms$c09_pal_scenario;;;;SSP1;SSP2;SSP3;SSP4;SSP5;SSP1;SSP2;SSP1;SSP1;SSP1;;;;;;;;;;;;;;;;;;;;;;;; gms$c14_yields_scenario;cc;nocc;nocc_hist;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -gms$c15_food_scenario;;;;SSP1;SSP2;SSP3;SSP4;SSP5;SSP1;SSP2;SSP1;SSP1;SSP1;;;;;;;;;;;;;;;;;;;;;;;; +gms$c15_food_scenario;;;;SSP1;SSP2;SSP3;SSP4;SSP5;SSP1;SSP2;SSP1;SSP1;SSP2;;;;;;;;;;;;;;;;;;;;;;;; gms$s15_rumdairy_scp_substitution;;;;0;0;0;0;0;0;0.5;0;0;0;;;;;;;;;;;;;;;;;;;;;;;; gms$s15_food_subst_functional_form;;;;1;1;1;1;1;;2;;;;;;;;;;;;;;;;;;;;;;;;;;; gms$s15_food_substitution_start;;;;;;;;;;2025;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/modules/44_biodiversity/bii_target/sets.gms b/modules/44_biodiversity/bii_target/sets.gms index dfd525875c..87712f4395 100644 --- a/modules/44_biodiversity/bii_target/sets.gms +++ b/modules/44_biodiversity/bii_target/sets.gms @@ -19,10 +19,16 @@ sets ac_to_bii_class_secd(ac,bii_class_secd) Mapping between forest ageclasses and bii coefficent land cover classes / (ac0,ac5,ac10,ac15,ac20,ac25,ac30) . (secd_young) (ac35,ac40,ac45,ac50,ac55,ac60, - ac65,ac70,ac75,ac80,ac85,ac90, + ac65,ac70,ac75,ac80,ac85,ac90, ac95,ac100,ac105,ac110,ac115, ac120,ac125,ac130,ac135,ac140, - ac145,ac150,ac155,acx) . (secd_mature) / + ac145,ac150,ac155,ac160,ac165, + ac170,ac175,ac180,ac185,ac190, + ac195,ac200,ac205,ac210,ac215, + ac220,ac225,ac230,ac235,ac240, + ac245,ac250,ac255,ac260,ac265, + ac270,ac275,ac280,ac285,ac290, + ac295,ac300,acx) . (secd_mature) / biome44 biomes / AA1,AA2,AA4,AA7,AA8,AA10,AA11,AA14,AN11,AT1,AT2,AT7,AT8,AT9,AT10,AT12,AT13,AT14,IM1, diff --git a/modules/44_biodiversity/bv_btc_mar21/sets.gms b/modules/44_biodiversity/bv_btc_mar21/sets.gms index 2b8b68d73c..9e02784e66 100644 --- a/modules/44_biodiversity/bv_btc_mar21/sets.gms +++ b/modules/44_biodiversity/bv_btc_mar21/sets.gms @@ -19,9 +19,15 @@ sets ac_to_bii_class_secd(ac,bii_class_secd) Mapping between forest ageclasses and bii coefficent land cover classes / (ac0,ac5,ac10,ac15,ac20,ac25,ac30) . (secd_young) (ac35,ac40,ac45,ac50,ac55,ac60, - ac65,ac70,ac75,ac80,ac85,ac90, + ac65,ac70,ac75,ac80,ac85,ac90, ac95,ac100,ac105,ac110,ac115, ac120,ac125,ac130,ac135,ac140, - ac145,ac150,ac155,acx) . (secd_mature) / + ac145,ac150,ac155,ac160,ac165, + ac170,ac175,ac180,ac185,ac190, + ac195,ac200,ac205,ac210,ac215, + ac220,ac225,ac230,ac235,ac240, + ac245,ac250,ac255,ac260,ac265, + ac270,ac275,ac280,ac285,ac290, + ac295,ac300,acx) . (secd_mature) / ; diff --git a/modules/80_optimization/lp_nlp_apr17/preloop.gms b/modules/80_optimization/lp_nlp_apr17/preloop.gms new file mode 100644 index 0000000000..115c631cc6 --- /dev/null +++ b/modules/80_optimization/lp_nlp_apr17/preloop.gms @@ -0,0 +1,9 @@ +*** | (C) 2008-2025 Potsdam Institute for Climate Impact Research (PIK) +*** | authors, and contributors see CITATION.cff file. This file is part +*** | of MAgPIE and licensed under AGPL-3.0-or-later. Under Section 7 of +*** | AGPL-3.0, you are granted additional permissions described in the +*** | MAgPIE License Exception, version 1.0 (see LICENSE file). +*** | Contact: magpie@pik-potsdam.de + +File optfile /conopt4.opt/; + diff --git a/modules/80_optimization/lp_nlp_apr17/realization.gms b/modules/80_optimization/lp_nlp_apr17/realization.gms index 1ca3296af6..2de255020b 100644 --- a/modules/80_optimization/lp_nlp_apr17/realization.gms +++ b/modules/80_optimization/lp_nlp_apr17/realization.gms @@ -22,5 +22,6 @@ *####################### R SECTION START (PHASES) ############################## $Ifi "%phase%" == "declarations" $include "./modules/80_optimization/lp_nlp_apr17/declarations.gms" $Ifi "%phase%" == "input" $include "./modules/80_optimization/lp_nlp_apr17/input.gms" +$Ifi "%phase%" == "preloop" $include "./modules/80_optimization/lp_nlp_apr17/preloop.gms" $Ifi "%phase%" == "solve" $include "./modules/80_optimization/lp_nlp_apr17/solve.gms" *######################## R SECTION END (PHASES) ############################### diff --git a/modules/80_optimization/nlp_par/preloop.gms b/modules/80_optimization/nlp_par/preloop.gms new file mode 100644 index 0000000000..115c631cc6 --- /dev/null +++ b/modules/80_optimization/nlp_par/preloop.gms @@ -0,0 +1,9 @@ +*** | (C) 2008-2025 Potsdam Institute for Climate Impact Research (PIK) +*** | authors, and contributors see CITATION.cff file. This file is part +*** | of MAgPIE and licensed under AGPL-3.0-or-later. Under Section 7 of +*** | AGPL-3.0, you are granted additional permissions described in the +*** | MAgPIE License Exception, version 1.0 (see LICENSE file). +*** | Contact: magpie@pik-potsdam.de + +File optfile /conopt4.opt/; + diff --git a/modules/80_optimization/nlp_par/realization.gms b/modules/80_optimization/nlp_par/realization.gms index 85345eb91e..397caff86d 100644 --- a/modules/80_optimization/nlp_par/realization.gms +++ b/modules/80_optimization/nlp_par/realization.gms @@ -18,5 +18,6 @@ *####################### R SECTION START (PHASES) ############################## $Ifi "%phase%" == "declarations" $include "./modules/80_optimization/nlp_par/declarations.gms" $Ifi "%phase%" == "input" $include "./modules/80_optimization/nlp_par/input.gms" +$Ifi "%phase%" == "preloop" $include "./modules/80_optimization/nlp_par/preloop.gms" $Ifi "%phase%" == "solve" $include "./modules/80_optimization/nlp_par/solve.gms" *######################## R SECTION END (PHASES) ############################### diff --git a/scripts/output/extra/disaggregation.R b/scripts/output/extra/disaggregation.R index eac94dfbac..ade2a4afe5 100644 --- a/scripts/output/extra/disaggregation.R +++ b/scripts/output/extra/disaggregation.R @@ -87,99 +87,6 @@ if (length(map_file) > 1) { return(area_shr_hr) } -.dissagLandConsv <- function(gdx, cfg, map_file, wdpa_hr_file, consv_prio_hr_file) { - land_consv_lr <- readGDX(gdx, "pm_land_conservation", react = "silent") - land_consv_lr <- dimSums(land_consv_lr, dim=3.2) - wdpa_hr <- read.magpie(wdpa_hr_file) - map <- readRDS(map_file) - - # create full time series - land_consv_hr <- new.magpie(map[, "cell"], getYears(land_consv_lr), getItems(wdpa_hr, dim = 3.2), - fill = 0, sets = c("x.y.iso", "year", "data") - ) - - iso <- readGDX(gdx, "iso") - consv_iso <- readGDX(gdx, "policy_countries22") - consv_iso <- consv_iso[consv_iso %in% getItems(wdpa_hr, dim = 1.3)] - if (length(consv_iso) == 0) { - warning("No countries selected in land conservation disaggregation. Results may be erroneous") - } - - base_protect_select <- cfg$gms$c22_base_protect - base_protect_noselect <- cfg$gms$c22_base_protect_noselect - - if (!all(c(base_protect_select, base_protect_noselect) %in% "none")) { - - if (base_protect_noselect != "none") { - land_consv_hr[, getYears(land_consv_hr), ] <- collapseDim(wdpa_hr[, nyears(wdpa_hr), base_protect_noselect], dim = 3.1) - land_consv_hr[, getYears(wdpa_hr), ] <- collapseDim(wdpa_hr[, , base_protect_noselect], dim = 3.1) - } - if (base_protect_select != "none") { - land_consv_hr[consv_iso, , ] <- collapseDim(wdpa_hr[consv_iso, nyears(wdpa_hr), base_protect_select], dim = 3.1) - } else { - land_consv_hr[consv_iso, , ] <- 0 - } - } - - consv_select <- cfg$gms$c22_protect_scenario - consv_noselect <- cfg$gms$c22_protect_scenario_noselect - - if (!all(c(consv_select, consv_noselect) %in% "none")) { - if (file.exists(consv_prio_hr_file)) { - consv_prio_all <- read.magpie(consv_prio_hr_file) - consv_prio_hr <- new.magpie( - cells_and_regions = map[, "cell"], - names = getNames(consv_prio_all, dim = 2), fill = 0, - sets = c("x.y.iso", "year", "data") - ) - - if (consv_noselect != "none") { - consv_prio_hr <- collapseDim(consv_prio_all[, , consv_noselect], dim = 3.1) - } - if (consv_select != "none") { - consv_prio_hr[consv_iso, , ] <- collapseDim(consv_prio_all[consv_iso, , consv_select], dim = 3.1) - } else { - consv_prio_hr[consv_iso, , ] <- 0 - } - # future conservation only pertains to natveg - consv_prio_hr[, , c("crop", "past", "forestry", "urban")] <- 0 - consv_fader <- readGDX(gdx, "p22_conservation_fader", format = "first_found") - consv_prio_hr <- consv_prio_hr * consv_fader[, getYears(land_consv_hr), ] - - # add conservation priority areas - land_consv_hr <- (land_consv_hr + consv_prio_hr) - } else { - warning(paste( - "Future land conservation used in MAgPIE run but high resolution", - "conservation priority data for disaggregation not found." - )) - } - } - # Due to internal constraints and compensation (e.g. NDC forest conservation) - # the actual land conservation can sometimes be smaller than the land - # conservation in the input data (this can especially happen also if - # land restoration is switched off). Therefore a scaling is applied here separately - # for grassland and natural vegetation - natveg <- c("primforest", "secdforest", "other") - consv_sum_lr <- mbind( - land_consv_lr[, , "past"], - setNames(dimSums(land_consv_lr[, , natveg], dim = 3), "natveg") - ) - consv_sum_hr_agg <- mbind( - toolAggregate(land_consv_hr[, , "past"], map, from = "cell", to = "cluster"), - toolAggregate(setNames(dimSums(land_consv_hr[, , natveg], dim = 3), "natveg"), - map, - from = "cell", to = "cluster" - ) - ) - consv_scaling <- consv_sum_lr / consv_sum_hr_agg - consv_scaling[is.na(consv_scaling) | is.infinite(consv_scaling)] <- 1 - consv_scaling <- toolAggregate(consv_scaling, map, from = "cluster", to = "cell") - land_consv_hr[, , "past"] <- consv_scaling[, , "past"] * land_consv_hr[, , "past"] - land_consv_hr[, , natveg] <- consv_scaling[, , "natveg"] * land_consv_hr[, , natveg] - return(land_consv_hr) -} - .dissagBII <- function(gdx, map_file, dir) { # Biodiversity intactness indicator (BII) at cluster level bii_lr <- BII(gdx, @@ -281,7 +188,17 @@ message("Disaggregating conservation land") land_consv_hr <- NULL if (file.exists(wdpa_hr_file)) { - land_consv_hr <- .dissagLandConsv(gdx, cfg, map_file, wdpa_hr_file, consv_prio_hr_file) + if (file.exists(consv_prio_hr_file)) { + conservationPrioHr <- read.magpie(consv_prio_hr_file) + } else { + warning("Future land conservation used in MAgPIE run but high resolution ", + "conservation priority data for disaggregation not found.") + conservationPrioHr <- NULL + } + land_consv_hr <- magpie4::disaggregateLandConservation(gdx, cfg, + mapping = readRDS(map_file), + wdpaHr = read.magpie(wdpa_hr_file), + conservationPrioHr = conservationPrioHr) # Write gridded conservation land .writeDisagg(land_consv_hr, land_consv_hr_out_file, diff --git a/scripts/output/extra/highres.R b/scripts/output/extra/highres.R index 3e515ef7bd..074dfd2d1a 100644 --- a/scripts/output/extra/highres.R +++ b/scripts/output/extra/highres.R @@ -104,7 +104,7 @@ highres <- function(cfg = cfg, res = "c1000", tc = NULL) { cfg$gms$s_use_gdx <- 0 #max resources for parallel runs - cfg$qos <- "standby_highMem_dayMax" + cfg$qos <- "standby_highMem" # set force download to FALSE # otherwise data is download again when calling start_run(), which overwrites diff --git a/scripts/projects/fsec.R b/scripts/projects/fsec.R index f57b6da791..6a72a0e000 100644 --- a/scripts/projects/fsec.R +++ b/scripts/projects/fsec.R @@ -214,7 +214,7 @@ fsecScenario <- function(scenario) { # general cfg$title <- paste(v, scenario, sep = "") cfg$recalibrate <- FALSE - cfg$qos <- "standby_highMem_dayMax" + cfg$qos <- "standby_highMem" cfg$output <- c("extra/highres", "extra/disaggregation", "projects/FSEC_nitrogenPollution", diff --git a/scripts/run_submit/submit_priority.sh b/scripts/run_submit/submit_priority.sh index b23c5bd67e..60d00a38e0 100644 --- a/scripts/run_submit/submit_priority.sh +++ b/scripts/run_submit/submit_priority.sh @@ -6,5 +6,6 @@ #SBATCH --mail-type=END,FAIL #SBATCH --cpus-per-task=3 #SBATCH --mem-per-cpu=5G +#SBATCH --time=24:00:00 Rscript submit.R diff --git a/scripts/run_submit/submit_priority_highMem.sh b/scripts/run_submit/submit_priority_highMem.sh index feae971607..cf749a944f 100644 --- a/scripts/run_submit/submit_priority_highMem.sh +++ b/scripts/run_submit/submit_priority_highMem.sh @@ -6,5 +6,6 @@ #SBATCH --mail-type=END,FAIL #SBATCH --cpus-per-task=16 #SBATCH --mem-per-cpu=5G +#SBATCH --time=24:00:00 Rscript submit.R diff --git a/scripts/run_submit/submit_short.sh b/scripts/run_submit/submit_short.sh index 433ed3308c..9092201c63 100644 --- a/scripts/run_submit/submit_short.sh +++ b/scripts/run_submit/submit_short.sh @@ -6,5 +6,6 @@ #SBATCH --mail-type=END,FAIL #SBATCH --cpus-per-task=3 #SBATCH --mem-per-cpu=5G +#SBATCH --time=24:00:00 Rscript submit.R diff --git a/scripts/run_submit/submit_short_highMem.sh b/scripts/run_submit/submit_short_highMem.sh index cf8f9669a9..37be642e5b 100644 --- a/scripts/run_submit/submit_short_highMem.sh +++ b/scripts/run_submit/submit_short_highMem.sh @@ -6,6 +6,7 @@ #SBATCH --mail-type=END,FAIL #SBATCH --cpus-per-task=16 #SBATCH --mem-per-cpu=5G +#SBATCH --time=24:00:00 Rscript submit.R diff --git a/scripts/run_submit/submit_standby.sh b/scripts/run_submit/submit_standby.sh index e3ab2dd5b3..aa6b3673d0 100644 --- a/scripts/run_submit/submit_standby.sh +++ b/scripts/run_submit/submit_standby.sh @@ -6,5 +6,6 @@ #SBATCH --mail-type=END,FAIL #SBATCH --cpus-per-task=3 #SBATCH --mem-per-cpu=5G +#SBATCH --time=24:00:00 Rscript submit.R diff --git a/scripts/run_submit/submit_standby_dayMax.sh b/scripts/run_submit/submit_standby_dayMax.sh deleted file mode 100644 index aa6b3673d0..0000000000 --- a/scripts/run_submit/submit_standby_dayMax.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -#SBATCH --qos=standby -#SBATCH --job-name=mag-run -#SBATCH --output=slurm.log -#SBATCH --mail-type=END,FAIL -#SBATCH --cpus-per-task=3 -#SBATCH --mem-per-cpu=5G -#SBATCH --time=24:00:00 - -Rscript submit.R diff --git a/scripts/run_submit/submit_standby_highMem.sh b/scripts/run_submit/submit_standby_highMem.sh index 4791ed844d..674bc10f5a 100644 --- a/scripts/run_submit/submit_standby_highMem.sh +++ b/scripts/run_submit/submit_standby_highMem.sh @@ -6,5 +6,6 @@ #SBATCH --mail-type=END,FAIL #SBATCH --cpus-per-task=16 #SBATCH --mem-per-cpu=5G +#SBATCH --time=24:00:00 Rscript submit.R diff --git a/scripts/run_submit/submit_standby_highMem_dayMax.sh b/scripts/run_submit/submit_standby_highMem_dayMax.sh deleted file mode 100644 index 674bc10f5a..0000000000 --- a/scripts/run_submit/submit_standby_highMem_dayMax.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -#SBATCH --qos=standby -#SBATCH --job-name=mag-run -#SBATCH --output=slurm.log -#SBATCH --mail-type=END,FAIL -#SBATCH --cpus-per-task=16 -#SBATCH --mem-per-cpu=5G -#SBATCH --time=24:00:00 - -Rscript submit.R diff --git a/scripts/slurmOutput.yml b/scripts/slurmOutput.yml index d3e35abe57..55d858c990 100644 --- a/scripts/slurmOutput.yml +++ b/scripts/slurmOutput.yml @@ -1,5 +1,5 @@ slurmjobs: - SLURM standby: "sbatch --job-name=scripts-output --output=logs/out-%NAME-%j.out --error=logs/out-%NAME-%j.err --mail-type=END,FAIL --time=200 --wrap=\"Rscript %SCRIPT\" --qos=standby --mem-per-cpu=5G --cpus-per-task=3" - SLURM standby highMem: "sbatch --job-name=scripts-output --output=logs/out-%NAME-%j.out --error=logs/out-%NAME-%j.err --mail-type=END,FAIL --wrap=\"Rscript %SCRIPT\" --qos=standby --time=24:00:00 --mem-per-cpu=5G --cpus-per-task=16" - SLURM priority: "sbatch --job-name=scripts-output --output=logs/out-%NAME-%j.out --error=logs/out-%NAME-%j.err --mail-type=END,FAIL --time=200 --wrap=\"Rscript %SCRIPT\" --qos=priority --mem-per-cpu=5G --cpus-per-task=3" - SLURM priority highMem: "sbatch --job-name=scripts-output --output=logs/out-%NAME-%j.out --error=logs/out-%NAME-%j.err --mail-type=END,FAIL --wrap=\"Rscript %SCRIPT\" --qos=priority --time=24:00:00 --mem-per-cpu=5G --cpus-per-task=16" + SLURM standby: "sbatch --job-name=scripts-output --output=logs/out-%NAME-%j.out --error=logs/out-%NAME-%j.err --mail-type=END,FAIL --wrap=\"Rscript %SCRIPT\" --mem-per-cpu=5G --cpus-per-task=3 --qos=standby --time=200" + SLURM standby highMem: "sbatch --job-name=scripts-output --output=logs/out-%NAME-%j.out --error=logs/out-%NAME-%j.err --mail-type=END,FAIL --wrap=\"Rscript %SCRIPT\" --mem-per-cpu=5G --cpus-per-task=16 --qos=standby --time=24:00:00" + SLURM priority: "sbatch --job-name=scripts-output --output=logs/out-%NAME-%j.out --error=logs/out-%NAME-%j.err --mail-type=END,FAIL --wrap=\"Rscript %SCRIPT\" --mem-per-cpu=5G --cpus-per-task=3 --qos=priority --time=200" + SLURM priority highMem: "sbatch --job-name=scripts-output --output=logs/out-%NAME-%j.out --error=logs/out-%NAME-%j.err --mail-type=END,FAIL --wrap=\"Rscript %SCRIPT\" --mem-per-cpu=5G --cpus-per-task=16 --qos=priority --time=24:00:00" diff --git a/scripts/slurmStart.yml b/scripts/slurmStart.yml index 264a8c3414..5810795470 100644 --- a/scripts/slurmStart.yml +++ b/scripts/slurmStart.yml @@ -1,4 +1,4 @@ slurmjobs: - SLURM priority: "sbatch --job-name=%NAME --output=logs/%NAME-%j.out --mail-type=END,FAIL --wrap=\"Rscript %SCRIPT\" --qos=priority --cpus-per-task=3" - SLURM standby: "sbatch --job-name=%NAME --output=logs/%NAME-%j.out --mail-type=END,FAIL --wrap=\"Rscript %SCRIPT\" --qos=standby --cpus-per-task=3 --time=24:00:00" - SLURM medium: "sbatch --job-name=%NAME --output=logs/%NAME-%j.out --mail-type=END,FAIL --wrap=\"Rscript %SCRIPT\" --qos=medium --cpus-per-task=3" + SLURM priority: "sbatch --job-name=%NAME --output=logs/%NAME-%j.out --mail-type=END,FAIL --wrap=\"Rscript %SCRIPT\" --cpus-per-task=3 --time=24:00:00 --qos=priority" + SLURM standby: "sbatch --job-name=%NAME --output=logs/%NAME-%j.out --mail-type=END,FAIL --wrap=\"Rscript %SCRIPT\" --cpus-per-task=3 --time=24:00:00 --qos=standby" + SLURM medium: "sbatch --job-name=%NAME --output=logs/%NAME-%j.out --mail-type=END,FAIL --wrap=\"Rscript %SCRIPT\" --cpus-per-task=3 --qos=medium" diff --git a/scripts/start/projects/paper_peatlandTax.R b/scripts/start/projects/paper_peatlandTax.R index 35579248ac..593b866216 100644 --- a/scripts/start/projects/paper_peatlandTax.R +++ b/scripts/start/projects/paper_peatlandTax.R @@ -29,7 +29,7 @@ cfg$results_folder <- "output/:title:" cfg$results_folder_highres <- "output" cfg$force_replace <- TRUE cfg$force_download <- FALSE -cfg$qos <- "standby_dayMax" +cfg$qos <- "standby" # support function to create standardized title .title <- function(cfg, ...) diff --git a/scripts/start/projects/project_ABCDR.R b/scripts/start/projects/project_ABCDR.R index e7c6e9aafc..09cf74a8c4 100644 --- a/scripts/start/projects/project_ABCDR.R +++ b/scripts/start/projects/project_ABCDR.R @@ -25,7 +25,7 @@ cfg$results_folder <- "output/:title:" cfg$force_replace <- TRUE cfg$force_download <- FALSE -cfg$qos <- "standby_dayMax" +cfg$qos <- "standby" # support function to create standardized title .title <- function(cfg, ...) return(paste(cfg$info$flag, sep="_",...)) diff --git a/scripts/start/projects/project_EAT2p0.R b/scripts/start/projects/project_EAT2p0.R index ee615cdd9a..e0d00e1abe 100644 --- a/scripts/start/projects/project_EAT2p0.R +++ b/scripts/start/projects/project_EAT2p0.R @@ -27,7 +27,7 @@ cfg$results_folder <- "output/:title::date:" cfg$force_download <- TRUE # Special outputs required for Deep Dive -cfg$qos <- "standby_highMem_dayMax" +cfg$qos <- "standby_highMem" cfg$output <- c( "output_check", # "extra/highres", # do manually on last magpie run diff --git a/scripts/start/projects/project_EAT2p0_DeepDive.R b/scripts/start/projects/project_EAT2p0_DeepDive.R index b91dfeb51d..ecb377d052 100644 --- a/scripts/start/projects/project_EAT2p0_DeepDive.R +++ b/scripts/start/projects/project_EAT2p0_DeepDive.R @@ -27,7 +27,7 @@ cfg$results_folder <- "output/:title::date:" cfg$force_download <- TRUE # Special outputs required for Deep Dive -cfg$qos <- "standby_highMem_dayMax" +cfg$qos <- "standby_highMem" cfg$output <- c( "output_check", "extra/highres", diff --git a/scripts/start/projects/project_EAT2p0_DeepDive_Sensitivity.R b/scripts/start/projects/project_EAT2p0_DeepDive_Sensitivity.R index 30b0005929..072b256c70 100644 --- a/scripts/start/projects/project_EAT2p0_DeepDive_Sensitivity.R +++ b/scripts/start/projects/project_EAT2p0_DeepDive_Sensitivity.R @@ -27,7 +27,7 @@ cfg$results_folder <- "output/:title::date:" cfg$force_download <- TRUE # Special outputs required for Deep Dive -cfg$qos <- "standby_highMem_dayMax" +cfg$qos <- "standby_highMem" cfg$output <- c( "output_check", "extra/disaggregation", diff --git a/scripts/start/projects/project_ScenarioMIP.R b/scripts/start/projects/project_ScenarioMIP.R index c985a8a823..acd68cacb8 100644 --- a/scripts/start/projects/project_ScenarioMIP.R +++ b/scripts/start/projects/project_ScenarioMIP.R @@ -21,7 +21,8 @@ source("scripts/start_functions.R") source("config/default.cfg") # create additional information to describe the runs -cfg$info$flag <- "SMIP61" +cfg$info$flag <- "SMIP63" +cfg$qos <- "standby" cfg$results_folder <- "output/:title:" cfg$force_replace <- TRUE @@ -30,7 +31,7 @@ cfg$force_replace <- TRUE .title <- function(cfg, ...) return(paste(cfg$info$flag, sep="_",...)) #download default input data -cfg$input[["report_coupling"]] <- "SMIPv04_report_coupling.tgz" +cfg$input[["report_coupling"]] <- "SMIPv06_report_coupling.tgz" download_and_update(cfg) cfg$gms$c56_pollutant_prices <- "coupling" @@ -47,13 +48,15 @@ cfg$gms$s32_annual_aff_limit <- 0.03 cfg$title <- .title(cfg, "H-SSP3-rollBack") cfg <- setScenario(cfg,c("SSP3","NPI-revert","AR-natveg","nocc_hist")) cfg$gms$c56_mute_ghgprices_until <- "y2150" -cfg$path_to_report_ghgprices <- "input/REMIND_generic_C_SMIPv04-H-SSP3-rollBack-def-rem-7.mif" -cfg$path_to_report_bioenergy <- "input/REMIND_generic_C_SMIPv04-H-SSP3-rollBack-def-rem-7.mif" +cfg$path_to_report_ghgprices <- "input/REMIND_generic_C_SMIPv06-H-SSP3-rollBack-def-rem-7.mif" +cfg$path_to_report_bioenergy <- "input/REMIND_generic_C_SMIPv06-H-SSP3-rollBack-def-rem-7.mif" cfg$gms$c15_food_scenario <- "SSP2" cfg$gms$s32_npi_ndc_reversal <- 2030 cfg$gms$s35_npi_ndc_reversal <- 2030 cfg$gms$s29_treecover_target <- 0 cfg$gms$s44_bii_target <- 0 +cfg$gms$c44_bii_decrease <- 1 +cfg$gms$s44_start_year <- 2030 cfg$gms$s59_scm_target <- 0 cfg$gms$c60_1stgen_biodem <- "const2030" start_run(cfg, codeCheck = FALSE) @@ -62,10 +65,12 @@ start_run(cfg, codeCheck = FALSE) cfg$title <- .title(cfg, "M-SSP2-NPi2025") cfg <- setScenario(cfg,c("SSP2","NPI","AR-natveg","nocc_hist")) cfg$gms$c56_mute_ghgprices_until <- "y2150" -cfg$path_to_report_ghgprices <- "input/REMIND_generic_C_SMIPv04-M-SSP2-NPi2025-def-rem-7.mif" -cfg$path_to_report_bioenergy <- "input/REMIND_generic_C_SMIPv04-M-SSP2-NPi2025-def-rem-7.mif" +cfg$path_to_report_ghgprices <- "input/REMIND_generic_C_SMIPv06-M-SSP2-NPi2025-def-rem-7.mif" +cfg$path_to_report_bioenergy <- "input/REMIND_generic_C_SMIPv06-M-SSP2-NPi2025-def-rem-7.mif" cfg$gms$s29_treecover_target <- 0 cfg$gms$s44_bii_target <- 0 +cfg$gms$c44_bii_decrease <- 1 +cfg$gms$s44_start_year <- 2030 cfg$gms$s59_scm_target <- 0 cfg$gms$c60_1stgen_biodem <- "const2030" start_run(cfg, codeCheck = FALSE) @@ -74,10 +79,12 @@ start_run(cfg, codeCheck = FALSE) cfg$title <- .title(cfg, "ML-SSP2-PkBudg1500") cfg <- setScenario(cfg,c("SSP2","NPI","AR-natveg","nocc_hist")) cfg$gms$c56_mute_ghgprices_until <- "y2040" -cfg$path_to_report_ghgprices <- "input/REMIND_generic_C_SMIPv04-ML-SSP2-PkBudg1500-def-rem-7.mif" -cfg$path_to_report_bioenergy <- "input/REMIND_generic_C_SMIPv04-ML-SSP2-PkBudg1500-def-rem-7.mif" +cfg$path_to_report_ghgprices <- "input/REMIND_generic_C_SMIPv06-ML-SSP2-EcPrice310-var-rem-7.mif" +cfg$path_to_report_bioenergy <- "input/REMIND_generic_C_SMIPv06-ML-SSP2-EcPrice310-var-rem-7.mif" cfg$gms$s29_treecover_target <- 0 cfg$gms$s44_bii_target <- 0 +cfg$gms$c44_bii_decrease <- 1 +cfg$gms$s44_start_year <- 2030 cfg$gms$s59_scm_target <- 0 cfg$gms$c60_1stgen_biodem <- "const2030" start_run(cfg, codeCheck = FALSE) @@ -86,11 +93,13 @@ start_run(cfg, codeCheck = FALSE) cfg$title <- .title(cfg, "L-SSP2-PkBudg1000") cfg <- setScenario(cfg,c("SSP2","NDC","AR-natveg","nocc_hist")) cfg$gms$c56_mute_ghgprices_until <- "y2030" -cfg$path_to_report_ghgprices <- "input/REMIND_generic_C_SMIPv04-L-SSP2-PkBudg1000-def-rem-7.mif" -cfg$path_to_report_bioenergy <- "input/REMIND_generic_C_SMIPv04-L-SSP2-PkBudg1000-def-rem-7.mif" +cfg$path_to_report_ghgprices <- "input/REMIND_generic_C_SMIPv06-L-SSP2-PkPrice400-var-rem-7.mif" +cfg$path_to_report_bioenergy <- "input/REMIND_generic_C_SMIPv06-L-SSP2-PkPrice400-var-rem-7.mif" cfg$gms$s29_treecover_scenario_start <- 2030 cfg$gms$s29_treecover_target <- 0.01 cfg$gms$s44_bii_target <- 0 +cfg$gms$c44_bii_decrease <- 0 +cfg$gms$s44_start_year <- 2030 cfg$gms$s59_scm_scenario_start <- 2030 cfg$gms$s59_scm_target <- 0.1 cfg$gms$c60_1stgen_biodem <- "const2030" @@ -100,11 +109,13 @@ start_run(cfg, codeCheck = FALSE) cfg$title <- .title(cfg, "VLHO-SSP2-EcBudg400") cfg <- setScenario(cfg,c("SSP2","NPI","AR-plant","nocc_hist")) cfg$gms$c56_mute_ghgprices_until <- "y2030" -cfg$path_to_report_ghgprices <- "input/REMIND_generic_C_SMIPv04-VLHO-SSP2-EcBudg400-var_plantation-rem-7.mif" -cfg$path_to_report_bioenergy <- "input/REMIND_generic_C_SMIPv04-VLHO-SSP2-EcBudg400-var_plantation-rem-7.mif" +cfg$path_to_report_ghgprices <- "input/REMIND_generic_C_SMIPv06-VLHO-SSP2-EcPrice1250-var-rem-7.mif" +cfg$path_to_report_bioenergy <- "input/REMIND_generic_C_SMIPv06-VLHO-SSP2-EcPrice1250-var-rem-7.mif" cfg$gms$s29_treecover_scenario_start <- 2030 cfg$gms$s29_treecover_target <- 0.02 cfg$gms$s44_bii_target <- 0 +cfg$gms$c44_bii_decrease <- 0 +cfg$gms$s44_start_year <- 2050 cfg$gms$s59_scm_scenario_start <- 2030 cfg$gms$s59_scm_target <- 0.2 cfg$gms$c60_1stgen_biodem <- "const2030" @@ -114,11 +125,13 @@ start_run(cfg, codeCheck = FALSE) cfg$title <- .title(cfg, "VLLO-SSP1-PkBudg650") cfg <- setScenario(cfg,c("VLLO","NDC","AR-natveg","nocc_hist")) cfg$gms$c56_mute_ghgprices_until <- "y2030" -cfg$path_to_report_ghgprices <- "input/REMIND_generic_C_SMIPv04-VLLO-SSP1-PkBudg650-def-rem-7.mif" -cfg$path_to_report_bioenergy <- "input/REMIND_generic_C_SMIPv04-VLLO-SSP1-PkBudg650-def-rem-7.mif" +cfg$path_to_report_ghgprices <- "input/REMIND_generic_C_SMIPv06-VLLO-SSP1-PkPrice500-def-rem-7.mif" +cfg$path_to_report_bioenergy <- "input/REMIND_generic_C_SMIPv06-VLLO-SSP1-PkPrice500-def-rem-7.mif" cfg$gms$s29_treecover_scenario_start <- 2025 cfg$gms$s29_treecover_target <- 0.02 -cfg$gms$s44_bii_target <- 0.77 +cfg$gms$s44_bii_target <- 0.7 +cfg$gms$c44_bii_decrease <- 0 +cfg$gms$s44_start_year <- 2030 cfg$gms$s59_scm_scenario_start <- 2025 cfg$gms$s59_scm_target <- 0.2 cfg$gms$c60_1stgen_biodem <- "const2030" @@ -130,11 +143,13 @@ start_run(cfg, codeCheck = FALSE) cfg$title <- .title(cfg, "H-SSP3-NPi2025") cfg <- setScenario(cfg,c("SSP3","NPI","AR-natveg","nocc_hist")) cfg$gms$c56_mute_ghgprices_until <- "y2150" -cfg$path_to_report_ghgprices <- "input/REMIND_generic_C_SMIPv04-M-SSP3-NPi2025-var-rem-7.mif" -cfg$path_to_report_bioenergy <- "input/REMIND_generic_C_SMIPv04-M-SSP3-NPi2025-var-rem-7.mif" +cfg$path_to_report_ghgprices <- "input/REMIND_generic_C_SMIPv06-M-SSP3-NPi2025-def-rem-7.mif" +cfg$path_to_report_bioenergy <- "input/REMIND_generic_C_SMIPv06-M-SSP3-NPi2025-def-rem-7.mif" cfg$gms$c15_food_scenario <- "SSP2" cfg$gms$s29_treecover_target <- 0 cfg$gms$s44_bii_target <- 0 +cfg$gms$c44_bii_decrease <- 1 +cfg$gms$s44_start_year <- 2030 cfg$gms$s59_scm_target <- 0 cfg$gms$c60_1stgen_biodem <- "const2030" start_run(cfg, codeCheck = FALSE) @@ -143,11 +158,13 @@ start_run(cfg, codeCheck = FALSE) cfg$title <- .title(cfg, "VLHO-SSP2-EcBudg400-ARnatveg") cfg <- setScenario(cfg,c("SSP2","NPI","AR-natveg","nocc_hist")) cfg$gms$c56_mute_ghgprices_until <- "y2030" -cfg$path_to_report_ghgprices <- "input/REMIND_generic_C_SMIPv04-VLHO-SSP2-EcBudg400-var_plantation-rem-7.mif" -cfg$path_to_report_bioenergy <- "input/REMIND_generic_C_SMIPv04-VLHO-SSP2-EcBudg400-var_plantation-rem-7.mif" +cfg$path_to_report_ghgprices <- "input/REMIND_generic_C_SMIPv06-VLHO-SSP2-EcBudg400-var_natveg-rem-7.mif" +cfg$path_to_report_bioenergy <- "input/REMIND_generic_C_SMIPv06-VLHO-SSP2-EcBudg400-var_natveg-rem-7.mif" cfg$gms$s29_treecover_scenario_start <- 2030 cfg$gms$s29_treecover_target <- 0.02 cfg$gms$s44_bii_target <- 0 +cfg$gms$c44_bii_decrease <- 0 +cfg$gms$s44_start_year <- 2050 cfg$gms$s59_scm_scenario_start <- 2030 cfg$gms$s59_scm_target <- 0.2 cfg$gms$c60_1stgen_biodem <- "const2030" @@ -157,11 +174,13 @@ start_run(cfg, codeCheck = FALSE) cfg$title <- .title(cfg, "VLLO-SSP1-PkBudg650-noAnnualAffLimit") cfg <- setScenario(cfg,c("VLLO","NDC","AR-natveg","nocc_hist")) cfg$gms$c56_mute_ghgprices_until <- "y2030" -cfg$path_to_report_ghgprices <- "input/REMIND_generic_C_SMIPv04-VLLO-SSP1-PkBudg650-def-rem-7.mif" -cfg$path_to_report_bioenergy <- "input/REMIND_generic_C_SMIPv04-VLLO-SSP1-PkBudg650-def-rem-7.mif" +cfg$path_to_report_ghgprices <- "input/REMIND_generic_C_SMIPv06-VLLO-SSP1-PkPrice500-def-rem-7.mif" +cfg$path_to_report_bioenergy <- "input/REMIND_generic_C_SMIPv06-VLLO-SSP1-PkPrice500-def-rem-7.mif" cfg$gms$s29_treecover_scenario_start <- 2025 cfg$gms$s29_treecover_target <- 0.02 -cfg$gms$s44_bii_target <- 0.77 +cfg$gms$s44_bii_target <- 0.7 +cfg$gms$c44_bii_decrease <- 0 +cfg$gms$s44_start_year <- 2030 cfg$gms$s59_scm_scenario_start <- 2025 cfg$gms$s59_scm_target <- 0.2 cfg$gms$c60_1stgen_biodem <- "const2030" diff --git a/scripts/start/projects/project_WetHorizons.R b/scripts/start/projects/project_WetHorizons.R index caf5cdea44..2f43dfa01f 100644 --- a/scripts/start/projects/project_WetHorizons.R +++ b/scripts/start/projects/project_WetHorizons.R @@ -29,7 +29,7 @@ cfg$results_folder <- "output/:title:" cfg$results_folder_highres <- "output" cfg$force_replace <- TRUE cfg$force_download <- FALSE -cfg$qos <- "standby_dayMax" +cfg$qos <- "standby" # support function to create standardized title .title <- function(cfg, ...)