Mercurial > repos > siwaa > redelac_stics_g
diff redelacSticsInputGenerator.R @ 14:812bb8097dac draft
"planemo upload for repository https://forgemia.inra.fr/redelac commit d16b9ecdb4dd51b69a6aaa4ab298b82455fe0267"
author | siwaa |
---|---|
date | Tue, 12 Dec 2023 10:38:20 +0000 |
parents | f707c2fb725b |
children | 413cec4dfe5f |
line wrap: on
line diff
--- a/redelacSticsInputGenerator.R Fri Oct 27 09:17:06 2023 +0000 +++ b/redelacSticsInputGenerator.R Tue Dec 12 10:38:20 2023 +0000 @@ -3,6 +3,7 @@ library(lubridate) library(parallel) library(doParallel) +library(doFuture) sessionInfo() @@ -21,9 +22,11 @@ args = commandArgs(trailingOnly = TRUE) -genUSMsXmlOneAfterOther <- (args[1] == "usmx_one_after_other") +redelac <- (args[1] == "optim") parallel <- (args[2] == "parallel") +print(paste("parallel:", parallel, args[2])) nbSlots <- as.integer(args[3]) +print(paste("nbslots:", nbSlots)) # USMs file loading @@ -72,92 +75,37 @@ gen_sta_xml(param_df = sta_param, out_dir = workspace) -if (genUSMsXmlOneAfterOther) { - - durGenX <- lubridate::as.duration(0) - durGenT <- lubridate::as.duration(0) - - if (parallel) { - cl <- makeCluster(nbSlots) - print(cl) - registerDoParallel(cl) - `%dordopar%` <- `%dopar%` - } else { - `%dordopar%` <- `%do%` - } - - # looping on USMs - loopRes <- foreach::foreach(i = 1:nrow(usms_param), - .packages = c("SticsRFiles", "lubridate")) %dordopar% { - - beforeGenXmlTimeI <- Sys.time() - - usmxFileName = paste0("usms", as.character(i) , ".xml") - - usmxFilePath = file.path(workspace, usmxFileName) - - gen_usms_xml(file = usmxFilePath, - param_df = usms_param[i, ]) - - afterGenXmlTimeI <- Sys.time() - durGenXI <- - lubridate::as.duration(lubridate::interval(beforeGenXmlTimeI, - afterGenXmlTimeI)) - - # one after the other generating txt folder - - beforeGenTxtTimeI <- Sys.time() - - gen_usms_xml2txt( - usms_file = usmxFileName, - javastics = javastics_path, - workspace = workspace, - out_dir = txt_path, - verbose = TRUE - ) - - afterGenTxtTimeI <- Sys.time() - durGenTI <- - lubridate::as.duration(lubridate::interval(beforeGenTxtTimeI, - afterGenTxtTimeI)) - - return(c(durGenXI, durGenTI)) - } - - if (parallel) stopCluster(cl) - - durDS <- as.data.frame(do.call(rbind, loopRes)) - durGenX <- sum(durDS[1]) - durGenT <- sum(durDS[2]) - -} else { - - beforeGenXmlTime <- Sys.time() - - gen_usms_xml(file = file.path(workspace, "usms.xml"), - param_df = usms_param) - - afterGenXmlTime <- Sys.time() - durGenX <- - lubridate::as.duration(lubridate::interval(beforeGenXmlTime, - afterGenXmlTime)) - - beforeGenTxtTime <- Sys.time() - - gen_usms_xml2txt( - javastics = javastics_path, - workspace = workspace, - out_dir = txt_path, - verbose = TRUE - ) - - afterGenTxtTime <- Sys.time() - durGenT <- - lubridate::as.duration(lubridate::interval(beforeGenTxtTime, - afterGenTxtTime)) - +if (parallel) { + doFuture::registerDoFuture() + future::plan(multisession, workers = nbSlots) } +beforeGenXmlTime <- Sys.time() + +gen_usms_xml(file = file.path(workspace, "usms.xml"), + param_df = usms_param) + +afterGenXmlTime <- Sys.time() +durGenX <- + lubridate::as.duration(lubridate::interval(beforeGenXmlTime, + afterGenXmlTime)) +beforeGenTxtTime <- Sys.time() + +gen_usms_xml2txt( + javastics = javastics_path, + workspace = workspace, + out_dir = txt_path, + usms_file = "usms.xml", + redelac = redelac, + parallel = parallel, + verbose = FALSE +) + +afterGenTxtTime <- Sys.time() +durGenT <- + lubridate::as.duration(lubridate::interval(beforeGenTxtTime, + afterGenTxtTime)) + endTime <- Sys.time() dur <- @@ -167,8 +115,10 @@ print("REDELACSticsInputGenerator Report") print("=================================") -print(paste0("number of usms: ", nrow(usms_param))) -print(paste("usms.xml one after the other:", genUSMsXmlOneAfterOther)) +print(paste("number of usms: ", nrow(usms_param))) +print(paste("redelac optimization:", redelac)) +print(paste("process in parallel:", parallel)) +print(paste("nbslots:", nbSlots)) sprintf( 'overall duration: %g jour(s) %g heure(s) %g minute(s) %g seconde(s)',