comparison redelacSticsInputGenerator.R @ 15:413cec4dfe5f draft

"planemo upload for repository https://forgemia.inra.fr/redelac commit e5eb5cacd8c91c5a5a8fa571e31b54d30e988733"
author siwaa
date Sat, 20 Jan 2024 09:42:29 +0000
parents 812bb8097dac
children f2fe11a20371
comparison
equal deleted inserted replaced
14:812bb8097dac 15:413cec4dfe5f
2 library(dplyr) 2 library(dplyr)
3 library(lubridate) 3 library(lubridate)
4 library(parallel) 4 library(parallel)
5 library(doParallel) 5 library(doParallel)
6 library(doFuture) 6 library(doFuture)
7 library(stringr)
7 8
8 sessionInfo() 9 sessionInfo()
9 10
10 startTime <- Sys.time() 11 startTime <- Sys.time()
11 12
75 76
76 gen_sta_xml(param_df = sta_param, out_dir = workspace) 77 gen_sta_xml(param_df = sta_param, out_dir = workspace)
77 78
78 if (parallel) { 79 if (parallel) {
79 doFuture::registerDoFuture() 80 doFuture::registerDoFuture()
80 future::plan(multisession, workers = nbSlots) 81
82 future::plan(multicore, workers = nbSlots)
81 } 83 }
82 84
83 beforeGenXmlTime <- Sys.time() 85 beforeGenXmlTime <- Sys.time()
84 86
85 gen_usms_xml(file = file.path(workspace, "usms.xml"), 87 #gen_usms_xml(file = file.path(workspace, "usms.xml"),
86 param_df = usms_param) 88 # param_df = usms_param)
89
90 chunckSize <- 1000
91 nbUSMs <- nrow(usms_param)
92
93 ids <- seq(1, nbUSMs, chunckSize)
94
95 foreach (i = ids,
96 .options.future = list(packages = c("foreach", "SticsRFiles"))) %dofuture% {
97 gen_usms_xml(file = file.path(workspace, paste0("usms__", i, ".xml")),
98 param_df = usms_param[i:min(i + chunckSize - 1, nbUSMs),])
99 }
87 100
88 afterGenXmlTime <- Sys.time() 101 afterGenXmlTime <- Sys.time()
89 durGenX <- 102 durGenX <-
90 lubridate::as.duration(lubridate::interval(beforeGenXmlTime, 103 lubridate::as.duration(lubridate::interval(beforeGenXmlTime,
91 afterGenXmlTime)) 104 afterGenXmlTime))
105
92 beforeGenTxtTime <- Sys.time() 106 beforeGenTxtTime <- Sys.time()
93 107
94 gen_usms_xml2txt( 108
95 javastics = javastics_path, 109 print("betwin")
96 workspace = workspace, 110
97 out_dir = txt_path, 111
98 usms_file = "usms.xml", 112 foreach (i = ids,
99 redelac = redelac, 113 .options.future = list(packages = c("foreach", "SticsRFiles"))) %dofuture% {
100 parallel = parallel, 114 print("toto")
101 verbose = FALSE 115 gen_usms_xml2txt(
102 ) 116 javastics = javastics_path,
117 workspace = workspace,
118 out_dir = txt_path,
119 usms_file = paste0("usms__", i, ".xml"),
120 redelac = redelac,
121 parallel = parallel,
122 verbose = FALSE
123 )
124 print("titi")
125 }
103 126
104 afterGenTxtTime <- Sys.time() 127 afterGenTxtTime <- Sys.time()
105 durGenT <- 128 durGenT <-
106 lubridate::as.duration(lubridate::interval(beforeGenTxtTime, 129 lubridate::as.duration(lubridate::interval(beforeGenTxtTime, afterGenTxtTime))
107 afterGenTxtTime)) 130
108 131 afterGenTxtTime <- Sys.time()
132 durGenT <-
133 lubridate::as.duration(lubridate::interval(beforeGenTxtTime, afterGenTxtTime))
134
109 endTime <- Sys.time() 135 endTime <- Sys.time()
110 136
111 dur <- 137 dur <-
112 lubridate::as.period(lubridate::as.duration(lubridate::interval(startTime, endTime))) 138 lubridate::as.period(lubridate::as.duration(lubridate::interval(startTime, endTime)))
113 durGenXP <- lubridate::as.period(durGenX) 139 durGenXP <- lubridate::as.period(durGenX)
114 durGenTP <- lubridate::as.period(durGenT) 140 durGenTP <- lubridate::as.period(durGenT)
115 141
116 print("REDELACSticsInputGenerator Report") 142 print("REDELACSticsInputGenerator Report")
117 print("=================================") 143 print("=================================")
118 print(paste("number of usms: ", nrow(usms_param))) 144 print(paste("number of usms: ", nrow(usms_param)))
119 print(paste("redelac optimization:", redelac)) 145 print(paste("redelac optimization:", redelac))
120 print(paste("process in parallel:", parallel)) 146 print(paste("process in parallel:", parallel))
121 print(paste("nbslots:", nbSlots)) 147 print(paste("nbslots:", nbSlots))
122 148
123 sprintf( 149 sprintf(
124 'overall duration: %g jour(s) %g heure(s) %g minute(s) %g seconde(s)', 150 'overall duration: %g jour(s) %g heure(s) %g minute(s) %g seconde(s)',
125 lubridate::day(dur), 151 lubridate::day(dur),
126 lubridate::hour(dur), 152 lubridate::hour(dur),
127 lubridate::minute(dur), 153 lubridate::minute(dur),
128 lubridate::second(dur)) 154 lubridate::second(dur)
155 )
129 156
130 sprintf( 157 sprintf(
131 'inside gen_usms_xml duration: %g jour(s) %g heure(s) %g minute(s) %g seconde(s)', 158 'inside gen_usms_xml duration: %g jour(s) %g heure(s) %g minute(s) %g seconde(s)',
132 lubridate::day(durGenXP), 159 lubridate::day(durGenXP),
133 lubridate::hour(durGenXP), 160 lubridate::hour(durGenXP),
134 lubridate::minute(durGenXP), 161 lubridate::minute(durGenXP),
135 lubridate::second(durGenXP)) 162 lubridate::second(durGenXP)
163 )
136 164
137 sprintf( 165 sprintf(
138 'inside gen_usms_xml2txt duration: %g jour(s) %g heure(s) %g minute(s) %g seconde(s)', 166 'inside gen_usms_xml2txt duration: %g jour(s) %g heure(s) %g minute(s) %g seconde(s)',
139 lubridate::day(durGenTP), 167 lubridate::day(durGenTP),
140 lubridate::hour(durGenTP), 168 lubridate::hour(durGenTP),
141 lubridate::minute(durGenTP), 169 lubridate::minute(durGenTP),
142 lubridate::second(durGenTP)) 170 lubridate::second(durGenTP)
143 print("===================================================================================") 171 )
172 print(
173 "==================================================================================="
174 )