diff options
author | OszkarSemerath <oszkar.semerath@gmail.com> | 2018-09-14 16:43:01 +0200 |
---|---|---|
committer | OszkarSemerath <oszkar.semerath@gmail.com> | 2018-09-14 16:43:01 +0200 |
commit | 1656194bb55cfccb78132df252de3bdea51bd869 (patch) | |
tree | 20742b65197097bbb82c7d8189630e091a1fb123 /Application | |
parent | Scope in partial model initialised by the given model scope (diff) | |
download | VIATRA-Generator-1656194bb55cfccb78132df252de3bdea51bd869.tar.gz VIATRA-Generator-1656194bb55cfccb78132df252de3bdea51bd869.tar.zst VIATRA-Generator-1656194bb55cfccb78132df252de3bdea51bd869.zip |
Updated progress monitor for huge amount instance generation processes
Diffstat (limited to 'Application')
3 files changed, 21 insertions, 14 deletions
diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/EclipseBasedProgressMonitor.xtend b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/EclipseBasedProgressMonitor.xtend index 624e75a5..be35b64a 100644 --- a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/EclipseBasedProgressMonitor.xtend +++ b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/EclipseBasedProgressMonitor.xtend | |||
@@ -9,9 +9,15 @@ class EclipseBasedProgressMonitor extends SolverProgressMonitor{ | |||
9 | public new(IProgressMonitor internalMonitor) { | 9 | public new(IProgressMonitor internalMonitor) { |
10 | this.internalMonitor = internalMonitor | 10 | this.internalMonitor = internalMonitor |
11 | } | 11 | } |
12 | var double currentDouble = 0.0 | ||
13 | var int currentInt = 0 | ||
12 | 14 | ||
13 | override protected processWorked(double amount) { | 15 | override protected processWorked(double amount) { |
14 | internalMonitor.worked((amount*1000).intValue) | 16 | val newDouble = currentDouble+amount |
17 | val newInt = (newDouble*1000).intValue | ||
18 | internalMonitor.worked(newInt-currentInt) | ||
19 | currentDouble = newDouble | ||
20 | currentInt = newInt | ||
15 | } | 21 | } |
16 | 22 | ||
17 | override isCancelled() { | 23 | override isCancelled() { |
diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/GenerationTaskExecutor.xtend b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/GenerationTaskExecutor.xtend index ad950fc8..c9d38c7d 100644 --- a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/GenerationTaskExecutor.xtend +++ b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/GenerationTaskExecutor.xtend | |||
@@ -186,6 +186,7 @@ class GenerationTaskExecutor { | |||
186 | console.writeMessage("Model generation started") | 186 | console.writeMessage("Model generation started") |
187 | for(run : 1..runs) { | 187 | for(run : 1..runs) { |
188 | monitor.subTask('''Solving problem«IF runs>0» «run»/«runs»«ENDIF»''') | 188 | monitor.subTask('''Solving problem«IF runs>0» «run»/«runs»«ENDIF»''') |
189 | val visualisationProgressMonitor= new EclipseBasedProgressMonitor(monitor) | ||
189 | 190 | ||
190 | // 6.2 For each run, the configuration and the workspace is adjusted | 191 | // 6.2 For each run, the configuration and the workspace is adjusted |
191 | solverLoader.setRunIndex(solverConfig,configurationMap,run,console) | 192 | solverLoader.setRunIndex(solverConfig,configurationMap,run,console) |
@@ -240,44 +241,44 @@ class GenerationTaskExecutor { | |||
240 | dotRepresentations += outputWorkspaceForRun.getFile(dotFileName) | 241 | dotRepresentations += outputWorkspaceForRun.getFile(dotFileName) |
241 | } | 242 | } |
242 | else { | 243 | else { |
243 | dotRepresentations += null | 244 | dotRepresentations.add(null) |
244 | } | 245 | } |
245 | } else { | 246 | } else { |
246 | gmlRepresentations += null | 247 | gmlRepresentations.add(null) |
247 | dotRepresentations += null | 248 | dotRepresentations.add(null) |
248 | } | 249 | } |
249 | } | 250 | } |
250 | monitor.worked(100) | 251 | visualisationProgressMonitor.worked(1.0/interpretations.size) |
251 | } | 252 | } |
252 | if(!emfRepresentations.empty) { | 253 | if(!emfRepresentations.empty) { |
253 | console.writeMessage( | 254 | console.writeMessage( |
254 | '''Models: «FOR f : emfRepresentations»#«ENDFOR»''', | 255 | '''Models: «FOR f : emfRepresentations.filterNull»#«ENDFOR»''', |
255 | "#", | 256 | "#", |
256 | emfRepresentations.map[ | 257 | emfRepresentations.filterNull.map[ |
257 | new ScriptConsoleDecorator('''«it.fileRepresentationInConsole»''',it) | 258 | new ScriptConsoleDecorator('''«it.fileRepresentationInConsole»''',it) |
258 | ] | 259 | ] |
259 | ) | 260 | ) |
260 | } | 261 | } |
261 | if(!gmlRepresentations.empty) { | 262 | if(!gmlRepresentations.empty) { |
262 | console.writeMessage( | 263 | console.writeMessage( |
263 | '''Visualisations: «FOR f : gmlRepresentations»#«ENDFOR»''', | 264 | '''Visualisations: «FOR f : gmlRepresentations.filterNull»#«ENDFOR»''', |
264 | "#", | 265 | "#", |
265 | gmlRepresentations.map[ | 266 | gmlRepresentations.filterNull.map[ |
266 | new ScriptConsoleDecorator('''«it.fileRepresentationInConsole»''',it) | 267 | new ScriptConsoleDecorator('''«it.fileRepresentationInConsole»''',it) |
267 | ] | 268 | ] |
268 | ) | 269 | ) |
269 | } | 270 | } |
270 | if(!dotRepresentations.empty) { | 271 | if(!dotRepresentations.empty) { |
271 | console.writeMessage( | 272 | console.writeMessage( |
272 | '''Visualisations: «FOR f : dotRepresentations»#«ENDFOR»''', | 273 | '''Visualisations: «FOR f : dotRepresentations.filterNull»#«ENDFOR»''', |
273 | "#", | 274 | "#", |
274 | dotRepresentations.map[ | 275 | dotRepresentations.filterNull.map[ |
275 | new ScriptConsoleDecorator('''«it.fileRepresentationInConsole»''',it) | 276 | new ScriptConsoleDecorator('''«it.fileRepresentationInConsole»''',it) |
276 | ] | 277 | ] |
277 | ) | 278 | ) |
278 | } | 279 | } |
279 | } else { | 280 | } else { |
280 | monitor.worked(solverConfig.solutionScope.numberOfRequiredSolution*100) | 281 | visualisationProgressMonitor.worked(1.0) |
281 | } | 282 | } |
282 | solutionVisualisationTime = System.nanoTime - solutionVisualisationTime | 283 | solutionVisualisationTime = System.nanoTime - solutionVisualisationTime |
283 | 284 | ||
diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ScriptExecutor.xtend b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ScriptExecutor.xtend index b9813040..c9ec68bb 100644 --- a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ScriptExecutor.xtend +++ b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ScriptExecutor.xtend | |||
@@ -102,12 +102,12 @@ class ScriptExecutor { | |||
102 | /** | 102 | /** |
103 | * Mapping time = 100 | 103 | * Mapping time = 100 |
104 | * Solving = 1000 * runs | 104 | * Solving = 1000 * runs |
105 | * Visualisation = runs * number * 100 | 105 | * Visualisation = 1000 * runs |
106 | */ | 106 | */ |
107 | def protected dispatch getTotalWork(GenerationTask task) { | 107 | def protected dispatch getTotalWork(GenerationTask task) { |
108 | val runs = if(task.runSpecified) { task.runs } else { 1 } | 108 | val runs = if(task.runSpecified) { task.runs } else { 1 } |
109 | val number = if(task.numberSpecified) { task.number } else { 1 } | 109 | val number = if(task.numberSpecified) { task.number } else { 1 } |
110 | return 100 + runs*1000 +runs*number*100 | 110 | return 100 + runs*1000 +runs*1000 |
111 | } | 111 | } |
112 | def protected dispatch getTotalWork(Task task) { | 112 | def protected dispatch getTotalWork(Task task) { |
113 | throw new IllegalArgumentException('''Unsupported task type: «task.class.simpleName»!''') | 113 | throw new IllegalArgumentException('''Unsupported task type: «task.class.simpleName»!''') |